Home / MCP Server

Your agent hits "where do I send the money?" One tool call.

DNS://Money · Remote MCP server · api.dnsofmoney.com/mcp/rpc

MCP gave your agent tools and context. It did not give it an address book. So agents hard-code wallet addresses — strings that can't be rotated, carry no compliance signal, and silently misroute funds the day a recipient changes chains.

DNS://Money is the resolution layer that fixes that. Your agent asks for pay:acme.user and gets back the deterministic payment endpoints behind that name. The name is permanent; the rail behind it can be repointed without breaking a single agent that pays it.

Install

Claude Code — one command
claude mcp add --transport http dnsofmoney https://api.dnsofmoney.com/mcp/rpc

That is the entire install. It is a remote streamable-HTTP MCP server: nothing to download, no npm package, no local process to babysit, no version of ours to keep in sync with yours.

Any MCP client — config file
{
  "mcpServers": {
    "dnsofmoney": {
      "type": "http",
      "url": "https://api.dnsofmoney.com/mcp/rpc"
    }
  }
}
With a free API key (unlocks payment endpoints)
claude mcp add --transport http dnsofmoney https://api.dnsofmoney.com/mcp/rpc \
  --header "X-API-Key: YOUR_KEY"

We're listed in the official MCP registry as io.github.sparkmastergrape/dns-of-money, so clients that browse the registry can find and add it without touching a config file.

The tools your agent gets

ToolWhat it answers
resolve_aliasWhere do I send the money? Returns the preferred rail, fallback endpoints, an ISO 20022 hint, and a compliance signal.
check_alias_availableCan I claim this name? Exactly three answers: available, taken, reserved.
discover_agentWhat can this counterparty do? The AP2/A2A agent-commerce block — capabilities only, never credentials.
get_payment_requirementsWhat exactly do I owe, and how do I pay it? The x402 accepts block for the 402 handshake.
get_agent_registration_infoHow does my agent get its own free pay:agent.* name?

Every one of them is read-only. Not one of them moves money.

What you see without a key

Install and call it anonymously — there is no signup wall, and you do not need a key to pay. get_payment_requirements returns a payable address and amount to any caller, so an agent can settle against a pay: alias with zero credentials. Anonymous callers can also check name availability and confirm that an alias resolves.

What a free API key — no credit card — adds is the directory view from resolve_alias: the endpoint set behind a name, which rails and currencies it accepts, priorities and fallbacks. Raw destination addresses and internal routing metadata stay at the highest tier.

CallerGets
AnonymousName availability · resolution status · x402 payment requirements (payable address + amount)
Free developer keyEverything above · the endpoint set — rails, currencies, priorities, fallbacks
Business / agentEverything above · raw routing metadata · agent-commerce block · ISO 20022 hint

That line is deliberate. Paying should never require asking permission — but the full address book behind a name sits behind an identified caller.

curl -s -X POST https://api.dnsofmoney.com/api/v1/access-requests \
  -H 'Content-Type: application/json' \
  -d '{"name":"Your Name","email":"you@example.com","use_case":"agent payments"}'

Free, manually reviewed, typically within 24 hours.

The line we don't cross

DNS://Money is not a bank, a custodian, or a settlement institution. It resolves names, returns endpoints, and verifies and records settlements that already happened on-chain. Your agent signs and submits its own payment on its own rail. Funds are never received, pooled, held, or forwarded by us.

And no model picks a rail. Routing is deterministic — the same inputs produce the same endpoint every time, which is the property that makes a payment address worth trusting. The intelligence lives in your agent; we serve verifiable tools.

The flow, end to end

  1. Your agent decides it needs to pay, and has a pay: name.
  2. It calls resolve_alias and gets ranked endpoints back.
  3. It picks a rail on your policy — amount, speed, asset, whatever you decide.
  4. It signs and submits the payment with its own wallet or x402 tooling.
  5. It keeps the signed resolve + settlement + screen attestation for the audit trail.

No addresses in your prompts. No addresses in your source. Just a name that keeps working.

Read the agent quickstart →

FAQ

Do I need an API key to install it?

No — not to install it, not to call it, and not even to pay. get_payment_requirements returns a payable address and amount to any caller, so an agent can settle against a pay: alias with no credentials. Anonymous callers can also check name availability and confirm that an alias resolves. A free API key — no credit card — adds the directory view from resolve_alias: the endpoint set behind a name, the rails and currencies it accepts, priorities and fallbacks. Raw destination addresses and internal routing metadata stay at the highest tier.

Is there an npm package to install?

No, and you don't want one. This is a remote streamable-HTTP MCP server, which every current MCP client speaks natively. A local stdio wrapper would just be another dependency to install, another supply-chain surface, and another place for the tool list to drift out of sync with the live server.

Does it ever move or hold my money?

Never. Every tool is read-only. DNS://Money resolves names, returns payment endpoints, and verifies settlements that already happened on-chain. Your agent signs and submits its own payment. We never receive, hold, pool, or forward funds.

Which clients work with it?

Any MCP client that speaks streamable-HTTP — Claude Code, Claude Desktop, and Cursor among them. The endpoint is https://api.dnsofmoney.com/mcp/rpc, and the server is listed in the official MCP registry as io.github.sparkmastergrape/dns-of-money.

Why not just hard-code the wallet address?

Because a hard-coded address is a permanent liability. It can't be rotated, it carries no compliance signal, and it breaks — or worse, silently misroutes funds — the day the recipient changes wallets or chains. A pay: name stays stable while the endpoint behind it can be repointed, so a recipient can change rails without breaking every agent that pays them.

Can my agent claim its own name?

Yes. Call get_agent_registration_info for the current self-registration path for a free pay:agent.* name — the endpoint, the credential requirements, and the rate limit. The tool is read-only reflection; registration itself is a separate credential-gated request.

DNS://Money is payment infrastructure, not a bank, broker, custodian, or money transmitter, and nothing here is financial or legal advice. Tool availability reflects the live production server; some tools are feature-flagged and appear only when their feature is enabled.