Skip to content

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.

Deletes · 2Final · 2Changes · 9

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

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/mcp

Tools

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/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.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.