io. github. sparkmastergrape/ dns-of-money
by sparkmastergrape · remote · no sign-in to list tools · v1.0.0 · published by GitHub user sparkmastergrape
Resolve, discover & pay pay: aliases for AI agents; returns a signed OFAC-screen attestation.
6 tools: 1 change things and 5 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things1Claude Code: ask: see these tools
- Only reads5Claude Code: allow: see these tools
2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http dns-of-money https://api.dnsofmoney.com/mcp/rpcFindings
Matches of fixed checks, with the text they matched.
- Infodiscover_agent
The description mentions "credentials".
What this check looks forMatched text
description: "...rns agent capabilities only; NO payment credentials. Example: discover_agent('pay:acme.user..."
The description mentions "credential".
What this check looks forMatched text
description: "...Read-only — registration itself is the credential-gated POST this tool points at. Example..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
6 tools
Changes things 1Claude Code: ask
check_alias_availableCheck whether a pay: alias can still be claimed.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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').
Only reads 5Claude Code: allow
discover_agentGet the AP2/A2A agent-commerce block for a pay: address — the DNS of Money equivalent of an A2A agent-card lookup.1 finding
Why it is in this group
- The description's first verb is "get": a word for reading.
Findings
- Info
The description mentions "credentials".
What this check looks forMatched text
description: "...rns agent capabilities only; NO payment credentials. Example: discover_agent('pay:acme.user..."
Description, as the server wrote it 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').
get_agent_registration_infoLearn how to self-register a FREE pay:agent.<label> alias for your agent.1 finding
Why it is in this group
- The name "get_agent_registration_info" says "get": a word for reading.
Findings
- Info
The description mentions "credential".
What this check looks forMatched text
description: "...Read-only — registration itself is the credential-gated POST this tool points at. Example..."
Description, as the server wrote it 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().
get_payment_requirementsGet x402 PaymentRequirements for paying a pay: alias.No findings
Why it is in this group
- The name "get_payment_requirements" says "get": a word for reading.
Description, as the server wrote it 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').
get_payment_statusCheck whether a payment you already attempted was recorded, BEFORE you retry and risk spending twice.No findings
Why it is in this group
- The name "get_payment_status" says "get": a word for reading.
Description, as the server wrote it 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.
resolve_aliasResolve a human-readable financial alias (pay: address) to payment endpoints and routing metadata.No findings
Why it is in this group
- The name "resolve_alias" says "resolve": a word for reading.
Description, as the server wrote it 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').
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http dns-of-money https://api.dnsofmoney.com/mcp/rpcRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__dns-of-money__resolve_alias",
"mcp__dns-of-money__discover_agent",
"mcp__dns-of-money__get_payment_requirements",
"mcp__dns-of-money__get_payment_status",
"mcp__dns-of-money__get_agent_registration_info"
],
"ask": [
"mcp__dns-of-money__check_alias_available"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as dns-of-money. Review it before you use it.
