Give your agent an API key, and it can request and fund a virtual card on your behalf using USDG or ETH on Robinhood Chain.
Sign in to get one.
Claude Desktop supports remote MCP servers on every plan, including free, with no special setup needed. Here is how to add Paygent.
Paygenthttps://mcp.paygent.tech/sse?api_key=pgt_live_your_api_key_here
Claude will show you what it is about to do and ask for confirmation before calling any tool that funds or modifies something, so you stay in control at every step.
Most MCP clients, including Claude Code and other agent frameworks, accept a config block like this instead.
{
"mcpServers": {
"paygent": {
"type": "remote",
"url": "https://mcp.paygent.tech/sse",
"headers": {
"Authorization": "Bearer pgt_live_your_api_key_here"
}
}
}
}
Send USDG or ETH on Robinhood Chain to your deposit address (shown on your
dashboard, or returned by create_card below). Send anywhere
between the minimum and maximum shown in the response, and a card is issued
automatically for exactly what arrives. Deposits are detected automatically,
with no manual step needed once funds land on chain.
| Tool | Purpose | Parameters |
|---|---|---|
| create_card | Get a deposit address; a card is issued automatically for whatever arrives | none |
| card_details | Retrieve live card details — card number, security code, expiry, status, and balance, once funded and active | none |
| card_balance | Check just the current balance and last four digits, always fresh, no sensitive fields | none |
| card_transactions | List recent card transactions | limit (default 10, max 100) |
| close_card | Close the card and refund the remaining balance to your wallet | none |
| deposit_history | View on chain deposit (top-up) history | limit (default 10, max 100) |
| release_hold | Release any on hold deposits to a given address | address (required) |
| wallet_balance | Current USDG and ETH wallet balances | none |
| withdraw_link | Get a link to withdraw wallet balance externally | none |
| withdrawal_history | View on-chain withdrawal status history | limit (default 20, max 100) |
| how_it_works | Get a full explanation of funding, card issuance, top-ups, and closing a card — useful before getting started, or whenever your agent needs a refresher | none |
Step 1, request a card:
// Call: create_card
// Arguments: {}
// Response:
{
"cardId": null,
"depositAddress": "0x4384B5305D7d416D0f876e281b1FdF54062B4895",
"depositQrCodeUrl": "https://.../qrcode.html?text=0x4384...",
"network": "Robinhood Chain",
"minAmount": "1.00",
"maxAmount": "2000.00",
"acceptedCurrencies": ["USDG", "ETH"],
"message": "Send between $1.00 and $2000.00 worth of USDG or ETH to this address on Robinhood Chain. A card will be issued automatically for the exact amount received."
}
Step 2, send funds to depositAddress, then poll:
// Call: card_details
// Arguments: {}
// Response, before funding clears:
"No active card yet. Fund your deposit address to have one issued automatically."
// Response, once funded:
{
"cardId": "e217e507-08e0-4ead-a3b8-a6bdbba29a16",
"cardNumber": "4549241817900517",
"securityCode": "892",
"expiryMonth": "07",
"expiryYear": "2029",
"lastFour": "0517",
"status": "ACTIVE",
"balance": "5.00"
}
Step 3, check just the balance any time, lighter than card_details and with no sensitive fields:
// Call: card_balance
// Arguments: {}
// Response:
{
"lastFour": "0517",
"balance": "1.00",
"status": "ACTIVE"
}
Step 4, check wallet balance any time:
// Call: wallet_balance
// Arguments: {}
// Response:
{
"balances": [
{ "currency": "USDG", "available": "0.00", "pending": "0.00", "frozen": "0.00", "walletId": "wal_...", "updatedAt": 1783732276771 },
{ "currency": "ETH", "available": "0.000000", "pending": "0.000000", "frozen": "0.000000", "walletId": "wal_...", "updatedAt": 1783732304919 }
],
"message": "Here are your current wallet balances."
}
Step 5, ask for a full explanation any time, useful before getting started or as a refresher:
// Call: how_it_works
// Arguments: {}
// Response:
{
"network": "Robinhood Chain",
"acceptedCurrencies": ["USDG", "ETH"],
"minAmount": "1.00",
"maxAmount": "2000.00",
"steps": [
"Call create_card to get a deposit address.",
"Send between $1.00 and $2000.00 worth of USDG or ETH to that address on Robinhood Chain.",
"Once the deposit confirms on-chain, a card is issued automatically for the exact amount received — no need to specify an amount in advance.",
"Call card_details to see the full card once it's active (card number, security code, expiry), or card_balance for a lighter, balance-only check.",
"Sending more funds to the same deposit address after a card is already active tops up that card automatically, rather than creating a second one.",
"Call close_card to close the card and refund any remaining balance back to your wallet.",
"Only one active card is allowed per account at a time — close the existing one before requesting another."
],
"tools": { "create_card": "...", "card_details": "...", "card_balance": "...", "...": "one line per tool" },
"message": "That's the full picture — ask about any specific part (funding, card limits, top-ups, closing a card) and I can go deeper."
}
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
const API_KEY = process.env.PAYGENT_API_KEY; // never hardcode this
async function main() {
const transport = new SSEClientTransport(new URL("https://mcp.paygent.tech/sse"), {
requestInit: { headers: { Authorization: `Bearer ${API_KEY}` } }
});
const client = new Client({ name: "my-agent", version: "1.0.0" }, { capabilities: {} });
await client.connect(transport);
const created = await client.callTool({ name: "create_card", arguments: {} });
console.log(created.content[0].text);
await client.close();
}
main();
close_card closes the card and refunds any remaining balance back to your wallet.create_card, there is no need to specify an amount upfront.