DNS of Money MCP
A remote MCP server providing six read-only tools to resolve human-readable pay: names into deterministic payment instructions, check alias availability, discover agents, and retrieve payment requirements or status, enabling AI agents to settle payments autonomously on multiple blockchains.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://api.dnsofmoney.com/mcp/rpcWhat its tools do
6 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Resolve a pay: alias to payment instructions
- Check if a pay: alias is available
- Discover agent registration info
- Get payment status for a transaction
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- project-o-dns-of-money 1.1.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 6 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
6 advertised
resolve_alias
Resolve a human-readable financial alias (pay: address) to payment endpoints and routing metadata. Call this before initiating any payment to a pay: address. Returns the preferred rail, fallback endpoints, an ISO 20022 hint, and a compliance signal. Anonymous calls return status only; a free API key (no credit card) unlocks the endpoint set — which rails and currencies the alias accepts — via POST /api/v1/access-requests. You do NOT need a key to pay: get_payment_requirements returns a payable address to any caller. Example: resolve_alias('pay:acme.user').
{
"type": "object",
"required": [
"alias_uri"
],
"properties": {
"amount": {
"type": "string",
"description": "Optional payment amount (decimal string) — refines rail scoring."
},
"currency": {
"type": "string",
"description": "Optional ISO 4217 currency code. Defaults to USD."
},
"alias_uri": {
"type": "string",
"description": "The pay: address to resolve. E.g. 'pay:acme.user'."
},
"preferred_rail": {
"type": "string",
"description": "Optional rail hint (e.g. 'xrpl', 'fednow'). Advisory only."
}
}
}discover_agent
Get the AP2/A2A agent-commerce block for a pay: address — the DNS of Money equivalent of an A2A agent-card lookup. Use this during agent discovery before initiating a mandate flow. Returns agent capabilities only; NO payment credentials. Example: discover_agent('pay:acme.user').
{
"type": "object",
"required": [
"alias_uri"
],
"properties": {
"alias_uri": {
"type": "string",
"description": "The pay: address to discover. E.g. 'pay:acme.user'."
}
}
}check_alias_available
Check whether a pay: alias can still be claimed. Returns exactly one of three states: 'available' (free to register), 'taken' (already registered), or 'reserved' (protected namespace). When available, also returns the number of founding spots remaining. Public — no API key required. Read-only: this never reserves or registers the name. Example: check_alias_available('pay:acme.user').
{
"type": "object",
"required": [
"alias_uri"
],
"properties": {
"alias_uri": {
"type": "string",
"description": "Candidate pay: address, e.g. 'pay:acme.user'. A bare name without the 'pay:' prefix is accepted too."
}
}
}get_payment_requirements
Get x402 PaymentRequirements for paying a pay: alias. Returns the 402 `accepts` block (scheme, network, payTo, asset, amount, invoiceId) an x402 agent needs to construct and submit the payment. currency='XRP' settles on the XRP Ledger (amount in drops); currency='USDC' settles USDC on Algorand via the GoPlausible facilitator (amount in atomic micro-USDC, feePayer in `extra`). The deterministic resolver chooses the rail; this tool never moves money. Example: get_payment_requirements('pay:acme.user', amount='1.5').
{
"type": "object",
"required": [
"alias_uri"
],
"properties": {
"amount": {
"type": "string",
"description": "Amount to pay — decimal string in the asset's display unit (XRP). Omit it to be quoted the alias's declared price; required for an alias that declares no price."
},
"currency": {
"type": "string",
"description": "Asset to pay in: 'XRP' (XRPL) or 'USDC' (Algorand). Defaults to XRP."
},
"alias_uri": {
"type": "string",
"description": "The pay: address to pay. E.g. 'pay:acme.user'."
}
}
}get_payment_status
Check whether a payment you already attempted was recorded, BEFORE you retry and risk spending twice. Pass the request_key you sent as the Idempotency-Key header on the paid request. Returns state 'settled' (we hold a receipt — do NOT pay again) or 'not_found' (we have no record — retrying is safe). Use this when a paid call timed out or its response was lost: on rails where the facilitator broadcasts, you never learn the transaction hash unless our response reaches you, so this key is the only thing that can answer. The key is a bearer secret — whoever presents it gets the receipt.
{
"type": "object",
"required": [
"request_key"
],
"properties": {
"request_key": {
"type": "string",
"description": "The exact Idempotency-Key you sent with the paid request. 32-128 characters of [A-Za-z0-9_-], generated from a CSPRNG with at least 128 bits of entropy."
}
}
}get_agent_registration_info
Learn how to self-register a FREE pay:agent.<label> alias for your agent. Returns the registration endpoint, the AgentAuthorityCredential verifiable-presentation requirements (intent binding + domain), the rate limit, and the Merkle anchor-proof endpoint. Read-only — registration itself is the credential-gated POST this tool points at. Example: get_agent_registration_info().
{
"type": "object",
"properties": {}
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 388 ms
- 95th percentile latency
- 388 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 388 ms · metadata changed · 6 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http dns-of-money-mcp https://api.dnsofmoney.com/mcp/rpcCodex
codex mcp add dns-of-money-mcp --url https://api.dnsofmoney.com/mcp/rpcCursor
{
"mcpServers": {
"dns-of-money-mcp": {
"url": "https://api.dnsofmoney.com/mcp/rpc"
}
}
}Cline
{
"mcpServers": {
"dns-of-money-mcp": {
"type": "streamableHttp",
"url": "https://api.dnsofmoney.com/mcp/rpc",
"disabled": false
}
}
}VS Code
{
"servers": {
"dns-of-money-mcp": {
"type": "http",
"url": "https://api.dnsofmoney.com/mcp/rpc"
}
}
}Gemini CLI
gemini mcp add --transport http dns-of-money-mcp https://api.dnsofmoney.com/mcp/rpcClaude Desktop
https://api.dnsofmoney.com/mcp/rpcWindsurf
{
"mcpServers": {
"dns-of-money-mcp": {
"serverUrl": "https://api.dnsofmoney.com/mcp/rpc"
}
}
}Let your agent find its tools
Find servers like DNS of Money MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.