send21
Crypto pay links and API for people and AI agents. Non-custodial: send21 creates payment drafts and pay links; a person signs in their own wallet. 14 MCP tools. Sign in with OAuth at https://send21.io/mcp/oauth, or use an API key.
Hosted MCP Server
npx add-mcp 'https://send21.io/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation

send21 MCP
Remote Model Context Protocol server for send21: crypto pay links and API for people and AI agents.
send21 prepares payment instructions for BTC (on-chain and Lightning), USDC, USDT, EURC, SOL and ETH. The payer signs in their own wallet. send21 never holds keys, never signs, and never broadcasts.
Live endpoint (Streamable HTTP): https://send21.io/mcp (API key), https://send21.io/mcp/oauth (OAuth sign-in)
Descriptor: https://send21.io/.well-known/mcp.json
Agent docs: https://send21.io/llms.txt
OpenAPI: https://send21.io/swagger/v1/swagger.json
Site: https://send21.io
Connect
Point an MCP client at the remote server:
{
"mcpServers": {
"send21": {
"url": "https://send21.io/mcp",
"transport": "streamable-http",
"headers": {
"Authorization": "Bearer s21_YOUR_API_KEY"
}
}
}
}
Auth: API key or OAuth sign-in.
- API key: create scoped keys at https://send21.io/api-keys (
s21_…) and send them as above. - OAuth sign-in: use
https://send21.io/mcp/oauthwith no headers; see Sign in instead of an API key below. - Scopes such as
drafts:write,drafts:read,webhooks:managecannot move funds. tools/listandget_fee_schedulework without authentication.
Sign in instead of an API key
Clients that support MCP sign-in (OAuth) can connect to https://send21.io/mcp/oauth with no key and no headers. The client opens send21 in your browser; you sign in, see what the app asks for, and approve. A connected app only ever uses receiving addresses you approved. It is listed under API keys as a connected app, where Disconnect ends it at once, and a connection nobody uses for 90 days ends by itself.
Claude Code
claude mcp add --transport http send21 https://send21.io/mcp/oauth
# then run /mcp in Claude Code and choose send21 to sign in
# (or, from your shell: claude mcp login send21)
Cursor (.cursor/mcp.json in your project, or ~/.cursor/mcp.json for all projects)
{
"mcpServers": {
"send21": {
"url": "https://send21.io/mcp/oauth"
}
}
}
VS Code (.vscode/mcp.json)
{
"servers": {
"send21": {
"type": "http",
"url": "https://send21.io/mcp/oauth"
}
}
}
Any MCP client that supports OAuth: add https://send21.io/mcp/oauth as a remote (Streamable HTTP) MCP server with no headers, then sign in when the client asks.
Prefer an API key? It still works: use https://send21.io/mcp with Authorization: Bearer s21_..., a scoped key you create at https://send21.io/api-keys in your account. tools/list and get_fee_schedule work without either. Details: https://send21.io/docs/mcp
What the tools do
14 tools (see live tools/list): create_draft, get_draft, get_draft_status, list_draft_quotes, get_transaction_template, submit_lightning_proof, create_payment_request, get_payment_request, list_address_book, propose_receiving_address, get_account_status, create_account, get_rate, get_fee_schedule. Signing and broadcast stay in the user’s wallet.
Agents onboard themselves; humans approve where the money lands. An agent proposes a receiving address (propose_receiving_address) and the owner approves it after signing in, with a passkey or an authenticator code; no API key can approve an address, and any other address is refused (422 address_not_approved). An agent without a key can sign its owner up (create_account), but it cannot create anything until the owner takes the account over from an emailed link (403 owner_not_confirmed until then). Details: https://send21.io/docs/mcp
Brand
send21: crypto pay links and API for people and AI agents.
Contact: info@send21.io
License
MIT