Doti Protocol (.i) MCP Server
by robdomain · remote · no sign-in to list tools · v1.0.0 · published by GitHub user robdomain
Sovereign .i Web3 identity and multi-chain domain tools across four EVM networks.
19 tools: 2 can delete or cancel things, 2 do something that can't be undone, 9 change things and 6 only read.
Scanned Oct 21, 2026
- Deletes or cancels2Claude Code: deny: see these tools
- Can't be undone2Claude Code: ask: see these tools
- Changes things9Claude Code: ask: see these tools
- Only reads6Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http doti https://doti.my/api/ai/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
19 tools
Deletes or cancels 2Claude Code: deny
marketplace_cancel_listingPrepare an unsigned transaction payload to cancel an active marketplace listing.No findings
Why it is in this group
- The name "marketplace_cancel_listing" says "cancel": a word for removing or ending something.
Description, as the server wrote it Prepare an unsigned transaction payload to cancel an active marketplace listing. Requires seller wallet signature.
marketplace_cancel_offerPrepare an unsigned transaction payload to cancel an active marketplace offer.No findings
Why it is in this group
- The name "marketplace_cancel_offer" says "cancel": a word for removing or ending something.
Description, as the server wrote it Prepare an unsigned transaction payload to cancel an active marketplace offer. Requires buyer wallet signature.
Can't be undone 2Claude Code: ask
claim_escrow_refundPrepare an unsigned transaction payload to claim an eligible escrow refund from the Escrow contract.No findings
Why it is in this group
- The name "claim_escrow_refund" says "refund": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it Prepare an unsigned transaction payload to claim an eligible escrow refund from the Escrow contract. Requires claimant wallet signature.
transfer_domainPrepare an unsigned ERC-721 transferFrom transaction payload to transfer sovereign ownership of a .i domain to another 0x EVM wallet address.No findings
Why it is in this group
- The name "transfer_domain" says "transfer": a word for a change that another call does not undo.
Description, as the server wrote it Prepare an unsigned ERC-721 transferFrom transaction payload to transfer sovereign ownership of a .i domain to another 0x EVM wallet address. Requires owner wallet signature.
Changes things 9Claude Code: ask
bridge_domainPrepare an unsigned CCIP cross-chain bridge transaction payload to teleport a .i domain to another supported EVM chain.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 Prepare an unsigned CCIP cross-chain bridge transaction payload to teleport a .i domain to another supported EVM chain. Requires owner wallet signature.
check_domain_availabilityCheck if a .i sovereign domain is available for registration across all 4 supported chains (Arbitrum One, Optimism, Ethereum, Robinhood).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 if a .i sovereign domain is available for registration across all 4 supported chains (Arbitrum One, Optimism, Ethereum, Robinhood).
estimate_registrationCalculate registration fee, escrow payment requirements, and cross-chain CCIP bridging costs on any of the 4 supported networks.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 Calculate registration fee, escrow payment requirements, and cross-chain CCIP bridging costs on any of the 4 supported networks.
marketplace_accept_offerPrepare an unsigned atomic swap transaction payload accepting a buyer offer on your .i domain.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 Prepare an unsigned atomic swap transaction payload accepting a buyer offer on your .i domain. Requires seller wallet signature.
marketplace_buy_domainPrepare an unsigned payable transaction payload with ETH value to purchase an actively listed .i domain from the marketplace contract.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 Prepare an unsigned payable transaction payload with ETH value to purchase an actively listed .i domain from the marketplace contract. Requires buyer wallet signature.
marketplace_make_offerPrepare an unsigned transaction payload to submit an offer in ETH to purchase any registered .i domain.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 Prepare an unsigned transaction payload to submit an offer in ETH to purchase any registered .i domain. Requires buyer wallet signature.
register_domainPrepare an unsigned on-chain transaction payload to permanently register a .i sovereign domain (0.001 ETH).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 Prepare an unsigned on-chain transaction payload to permanently register a .i sovereign domain (0.001 ETH). Returns contract calldata, destination address, and value for user wallet signature.
set_primary_domainPrepare an unsigned transaction payload to set or update the primary reverse resolution domain identity for a given wallet address on Arbitrum One.No findings
Why it is in this group
- The name "set_primary_domain" says "set": a word for a change.
Description, as the server wrote it Prepare an unsigned transaction payload to set or update the primary reverse resolution domain identity for a given wallet address on Arbitrum One. Requires user wallet signature.
update_domain_profilePrepare an unsigned transaction payload to update decentralized identity profile metadata, social links, website URL, and IPFS avatar CID on-chain.No findings
Why it is in this group
- The name "update_domain_profile" says "update": a word for a change.
Description, as the server wrote it Prepare an unsigned transaction payload to update decentralized identity profile metadata, social links, website URL, and IPFS avatar CID on-chain. Requires owner wallet signature.
Only reads 6Claude Code: allow
get_protocol_statsFetch live protocol metrics including total registered domains, active secondary marketplace listings, and cross-chain CCIP bridge health.No findings
Why it is in this group
- The name "get_protocol_stats" says "get": a word for reading.
Description, as the server wrote it Fetch live protocol metrics including total registered domains, active secondary marketplace listings, and cross-chain CCIP bridge health.
get_supported_chainsRetrieve technical network specifications, Chainlink CCIP selectors, router contracts, and registry addresses for all 4 supported chains.No findings
Why it is in this group
- The name "get_supported_chains" says "get": a word for reading.
Description, as the server wrote it Retrieve technical network specifications, Chainlink CCIP selectors, router contracts, and registry addresses for all 4 supported chains.
marketplace_browse_listingsBrowse active .i domains listed on the decentralized secondary marketplace across Arbitrum One and satellite networks.No findings
Why it is in this group
- The name "marketplace_browse_listings" says "browse": a word for reading.
Description, as the server wrote it Browse active .i domains listed on the decentralized secondary marketplace across Arbitrum One and satellite networks.
marketplace_get_domain_detailsInspect full marketplace status for any .i domain: active listing, price history, highest offer, and bids.No findings
Why it is in this group
- The name "marketplace_get_domain_details" says "get": a word for reading.
Description, as the server wrote it Inspect full marketplace status for any .i domain: active listing, price history, highest offer, and bids.
marketplace_list_domainPrepare an unsigned transaction payload to list an owned .i domain for sale on the secondary marketplace.No findings
Why it is in this group
- The name "marketplace_list_domain" says "list": a word for reading.
Description, as the server wrote it Prepare an unsigned transaction payload to list an owned .i domain for sale on the secondary marketplace. Requires owner wallet signature.
resolve_domain_identityResolve a .i web3 domain name or 0x Ethereum wallet address to its sovereign identity, owner, metadata, social links, and current chain location.No findings
Why it is in this group
- The name "resolve_domain_identity" says "resolve": a word for reading.
Description, as the server wrote it Resolve a .i web3 domain name or 0x Ethereum wallet address to its sovereign identity, owner, metadata, social links, and current chain location.
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 doti https://doti.my/api/ai/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__doti__resolve_domain_identity",
"mcp__doti__get_supported_chains",
"mcp__doti__marketplace_browse_listings",
"mcp__doti__marketplace_get_domain_details",
"mcp__doti__marketplace_list_domain",
"mcp__doti__get_protocol_stats"
],
"ask": [
"mcp__doti__check_domain_availability",
"mcp__doti__estimate_registration",
"mcp__doti__set_primary_domain",
"mcp__doti__update_domain_profile",
"mcp__doti__register_domain",
"mcp__doti__marketplace_buy_domain",
"mcp__doti__marketplace_make_offer",
"mcp__doti__marketplace_accept_offer",
"mcp__doti__transfer_domain",
"mcp__doti__bridge_domain",
"mcp__doti__claim_escrow_refund"
],
"deny": [
"mcp__doti__marketplace_cancel_listing",
"mcp__doti__marketplace_cancel_offer"
]
}
}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 doti. Review it before you use it.
