MPPFinance bridges the Machine Payments Protocol to the real world. Your AI agent pays via MPP — gets a virtual Visa card — spends anywhere online. No humans in the loop.
import { MPPFinance } from 'mppfinance'
const card = await MPPFinance.issue({
agentId: 'agent-7x2k',
amount: 50_00, // $50.00
currency: 'USD',
rules: {
merchant: 'aws.com',
singleUse: true,
expiresIn: 300,
},
})
// card.number → ready in 0.3s
console.log(card.number) // "4111 •••• •••• 9821"| Feature | Description |
|---|---|
| ⚡ 300ms issuance | Virtual Visa ready in under 300ms |
| 🔒 On-chain rules | Spending limits enforced by MPP protocol |
| 🎯 Merchant whitelist | Restrict card to exact domains |
| 🔥 Single-use cards | Card burns after first charge |
| 🤖 MCP native | Works with Claude, GPT-4, Cursor out of the box |
| 🔑 Non-custodial | Your keys, your funds |
npm install mppfinance
# or
pnpm add mppfinance
# or
yarn add mppfinanceimport { MPPFinance } from 'mppfinance'
const client = new MPPFinance({
agentId: 'your-agent-id',
network: 'solana', // 'solana' | 'ethereum'
testnet: true, // use testnet for development
})const card = await client.issue({
amount: 100_00, // $100.00
currency: 'USD',
rules: {
merchant: 'stripe.com',
singleUse: false,
expiresIn: 86400, // 24 hours
maxPerTx: 50_00, // $50 per transaction
},
})
console.log(card.id) // "card_7x2k..."
console.log(card.number) // "4111 •••• •••• 9821"
console.log(card.cvv) // "***" (revealed once)
console.log(card.expiry) // "12/27"const cards = await client.list()
cards.forEach(card => {
console.log(`${card.id} — ${card.merchant} — $${card.spent}`)
})await client.revoke('card_7x2k...')client.on('charge', (event) => {
console.log(`Charged $${event.amount} at ${event.merchant}`)
})
client.on('expired', (event) => {
console.log(`Card ${event.cardId} expired`)
})MPPFinance ships with an MCP tool for direct agent integration:
{
"mcpServers": {
"mppfinance": {
"command": "npx",
"args": ["-y", "mppfinance", "--mcp"],
"env": {
"MPPFINANCE_AGENT_ID": "your-agent-id",
"MPPFINANCE_NETWORK": "solana"
}
}
}
}Available MCP tools:
issue_card— issue a new virtual card with ruleslist_cards— list all active cardsrevoke_card— revoke a card by IDget_balance— get agent wallet balanceget_history— get transaction history
| Param | Type | Description |
|---|---|---|
agentId |
string |
Your agent identifier |
network |
'solana' | 'ethereum' |
Blockchain network |
testnet |
boolean |
Use testnet (default: false) |
webhookUrl |
string? |
Webhook endpoint for events |
| Param | Type | Description |
|---|---|---|
amount |
number |
Amount in cents (e.g. 50_00 = $50) |
currency |
'USD' | 'EUR' |
Card currency |
rules.merchant |
string? |
Allowed merchant domain |
rules.singleUse |
boolean |
Burn after first charge |
rules.expiresIn |
number |
TTL in seconds |
rules.maxPerTx |
number? |
Max charge per transaction (cents) |
- Core SDK (TypeScript)
- Solana network support
- MCP tool
- Single-use cards
- Merchant whitelisting
- Ethereum mainnet (Q2 2026)
- Python SDK (Q2 2026)
- Rust SDK (Q3 2026)
- Recurring card billing (Q3 2026)
- Multi-agent sub-accounts (Q4 2026)
MIT © 2026 MPPFinance // v4 - Wed Jan 22 14:35:29 MSK 2025 // v10 - Sun Feb 2 14:34:27 MSK 2025 // v16 - Thu Feb 13 18:02:07 MSK 2025 // v22 - Mon Feb 24 19:30:03 MSK 2025 // v28 - Fri Mar 7 21:32:48 MSK 2025 // v34 - Tue Mar 18 21:55:54 MSK 2025
