Doti Protocol (.i) MCP Server

Sovereign .i Web3 identity and multi-chain domain tools across four EVM networks.

Should I use this

Quality & Safety

A
Description quality
96%
Schema completeness
92%
Naming quality
85%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,122Tokens (tool definitions)
~872 BTypical response size
Moderate attention impact (1.66% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "doti-mcp": {
      "url": "https://doti.my/api/ai/mcp"
    }
  }
}

Remote endpoints

https://doti.my/api/ai/mcpstreamable-http

What it can do

Tool inventory

Tools (19)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢check_domain_availability(domainName)

Check if a .i sovereign domain is available for registration across all 4 supported chains (Arbitrum One, Optimism, Ethereum, Robinhood).

Input Schema

{
  "type": "object",
  "properties": {
    "domainName": {
      "type": "string",
      "description": "The .i domain name or label (e.g. \"alex\" or \"alex.i\")"
    }
  },
  "required": [
    "domainName"
  ]
}
⚪resolve_domain_identity(identifier, chainId)

Resolve a .i web3 domain name or 0x Ethereum wallet address to its sovereign identity, owner, metadata, social links, and current chain location.

Input Schema

{
  "type": "object",
  "properties": {
    "identifier": {
      "type": "string",
      "description": "The .i domain name (e.g. \"genesis.i\") or EVM wallet address (0x...)"
    },
    "chainId": {
      "type": "number",
      "description": "Optional filter for target network (42161: Arbitrum One, 10: Optimism, 1: Ethereum, 4663: Robinhood)"
    }
  },
  "required": [
    "identifier"
  ]
}
🟢get_supported_chains

Retrieve technical network specifications, Chainlink CCIP selectors, router contracts, and registry addresses for all 4 supported chains.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢estimate_registration(domainName, targetChainId)

Calculate registration fee, escrow payment requirements, and cross-chain CCIP bridging costs on any of the 4 supported networks.

Input Schema

{
  "type": "object",
  "properties": {
    "domainName": {
      "type": "string",
      "description": "The .i domain name to estimate"
    },
    "targetChainId": {
      "type": "number",
      "description": "Target payment network: 42161 (Arbitrum), 10 (Optimism), 1 (Ethereum), or 4663 (Robinhood). Defaults to 42161."
    }
  },
  "required": [
    "domainName"
  ]
}
🟡set_primary_domain(domainName, ownerAddress)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "domainName": {
      "type": "string",
      "description": "The .i domain name (e.g. \"agent.i\")"
    },
    "ownerAddress": {
      "type": "string",
      "description": "The 0x EVM owner address"
    }
  },
  "required": [
    "domainName",
    "ownerAddress"
  ]
}
🟡update_domain_profile(domainName, ownerAddress, socialLinks, websiteUrl, imageMode, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "domainName": {
      "type": "string",
      "description": "The .i domain name"
    },
    "ownerAddress": {
      "type": "string",
      "description": "Owner wallet address"
    },
    "socialLinks": {
      "type": "object",
      "description": "Key-value map of social usernames (twitter, github, telegram, farcaster, discord)"
    },
    "websiteUrl": {
      "type": "string",
      "description": "Decentralized or Web2 website URL"
    },
    "imageMode": {
      "type": "string",
      "enum": [
        "DEFAULT",
        "GENERATED_MATRIX",
        "CUSTOM_IPFS"
      ],
      "description": "Avatar visual style mode"
    },
    "profileImageCid": {
      "type": "string",
      "description": "IPFS CID hash for custom avatar image"
    }
  },
  "required": [
    "domainName",
    "ownerAddress"
  ]
}
⚪marketplace_browse_listings(limit)

Browse active .i domains listed on the decentralized secondary marketplace across Arbitrum One and satellite networks.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "Max number of listings to return (default 20)"
    }
  }
}
🟢marketplace_get_domain_details(domainName)

Inspect full marketplace status for any .i domain: active listing, price history, highest offer, and bids.

Input Schema

{
  "type": "object",
  "properties": {
    "domainName": {
      "type": "string",
      "description": "The .i domain name (e.g. \"ai.i\")"
    }
  },
  "required": [
    "domainName"
  ]
}
⚪register_domain(domainName, recipientAddress, targetChainId)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "domainName": {
      "type": "string",
      "description": "The .i domain name to register (e.g. \"mybot.i\")"
    },
    "recipientAddress": {
      "type": "string",
      "description": "The 0x EVM wallet address that will own the domain"
    },
    "targetChainId": {
      "type": "number",
      "description": "Network where registration/deposit is made: 42161 (Arbitrum One), 10 (Optimism), 1 (Ethereum), 4663 (Robinhood). Defaults to 42161."
    }
  },
  "required": [
    "domainName",
    "recipientAddress"
  ]
}
🟢marketplace_list_domain(domainName, sellerAddress, priceInEth, durationDays)

Prepare an unsigned transaction payload to list an owned .i domain for sale on the secondary marketplace. Requires owner wallet signature.

Input Schema

{
  "type": "object",
  "properties": {
    "domainName": {
      "type": "string",
      "description": "The .i domain name to list for sale"
    },
    "sellerAddress": {
      "type": "string",
      "description": "The 0x seller address (must be current domain owner)"
    },
    "priceInEth": {
      "type": "string",
      "description": "Listing price in ETH (e.g. \"0.05\")"
    },
    "durationDays": {
      "type": "number",
      "description": "Duration of listing in days (defaults to 30)"
    }
  },
  "required": [
    "domainName",
    "sellerAddress",
    "priceInEth"
  ]
}
⚪marketplace_buy_domain(domainName, buyerAddress, priceInEth)

Prepare an unsigned payable transaction payload with ETH value to purchase an actively listed .i domain from the marketplace contract. Requires buyer wallet signature.

Input Schema

{
  "type": "object",
  "properties": {
    "domainName": {
      "type": "string",
      "description": "The .i domain name to purchase"
    },
    "buyerAddress": {
      "type": "string",
      "description": "The 0x buyer address purchasing the domain"
    },
    "priceInEth": {
      "type": "string",
      "description": "Optional expected purchase price in ETH for slippage protection"
    }
  },
  "required": [
    "domainName",
    "buyerAddress"
  ]
}
🟡marketplace_make_offer(domainName, buyerAddress, offerPriceInEth, durationDays)

Prepare an unsigned transaction payload to submit an offer in ETH to purchase any registered .i domain. Requires buyer wallet signature.

Input Schema

{
  "type": "object",
  "properties": {
    "domainName": {
      "type": "string",
      "description": "The .i domain name to make an offer on"
    },
    "buyerAddress": {
      "type": "string",
      "description": "The 0x buyer address making the offer"
    },
    "offerPriceInEth": {
      "type": "string",
      "description": "Offer amount in ETH (e.g. \"0.02\")"
    },
    "durationDays": {
      "type": "number",
      "description": "Validity of offer in days (defaults to 7)"
    }
  },
  "required": [
    "domainName",
    "buyerAddress",
    "offerPriceInEth"
  ]
}
⚪marketplace_accept_offer(domainName, sellerAddress, buyerAddress)

Prepare an unsigned atomic swap transaction payload accepting a buyer offer on your .i domain. Requires seller wallet signature.

Input Schema

{
  "type": "object",
  "properties": {
    "domainName": {
      "type": "string",
      "description": "The .i domain name being sold"
    },
    "sellerAddress": {
      "type": "string",
      "description": "The 0x seller address (current owner)"
    },
    "buyerAddress": {
      "type": "string",
      "description": "The 0x buyer address whose offer is being accepted"
    }
  },
  "required": [
    "domainName",
    "sellerAddress",
    "buyerAddress"
  ]
}
🔴marketplace_cancel_listing(domainName, sellerAddress)

Prepare an unsigned transaction payload to cancel an active marketplace listing. Requires seller wallet signature.

Input Schema

{
  "type": "object",
  "properties": {
    "domainName": {
      "type": "string",
      "description": "The .i domain name to delist"
    },
    "sellerAddress": {
      "type": "string",
      "description": "The 0x seller address who created the listing"
    }
  },
  "required": [
    "domainName",
    "sellerAddress"
  ]
}
🔴marketplace_cancel_offer(domainName, buyerAddress)

Prepare an unsigned transaction payload to cancel an active marketplace offer. Requires buyer wallet signature.

Input Schema

{
  "type": "object",
  "properties": {
    "domainName": {
      "type": "string",
      "description": "The .i domain name"
    },
    "buyerAddress": {
      "type": "string",
      "description": "The 0x buyer address who submitted the offer"
    }
  },
  "required": [
    "domainName",
    "buyerAddress"
  ]
}
⚪transfer_domain(domainName, currentOwner, newOwner)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "domainName": {
      "type": "string",
      "description": "The .i domain name to transfer"
    },
    "currentOwner": {
      "type": "string",
      "description": "The 0x address of the current domain owner"
    },
    "newOwner": {
      "type": "string",
      "description": "The 0x recipient address to receive domain ownership"
    }
  },
  "required": [
    "domainName",
    "currentOwner",
    "newOwner"
  ]
}
⚪bridge_domain(domainName, ownerAddress, destinationChainId)

Prepare an unsigned CCIP cross-chain bridge transaction payload to teleport a .i domain to another supported EVM chain. Requires owner wallet signature.

Input Schema

{
  "type": "object",
  "properties": {
    "domainName": {
      "type": "string",
      "description": "The .i domain name to bridge"
    },
    "ownerAddress": {
      "type": "string",
      "description": "The 0x owner address initiating the bridge"
    },
    "destinationChainId": {
      "type": "number",
      "description": "Target EVM chain ID: 42161 (Arbitrum One), 10 (OP Mainnet), 1 (Ethereum), 4663 (Robinhood)"
    }
  },
  "required": [
    "domainName",
    "ownerAddress",
    "destinationChainId"
  ]
}
⚪claim_escrow_refund(escrowId, claimantAddress)

Prepare an unsigned transaction payload to claim an eligible escrow refund from the Escrow contract. Requires claimant wallet signature.

Input Schema

{
  "type": "object",
  "properties": {
    "escrowId": {
      "type": "string",
      "description": "The escrow deposit ID to refund"
    },
    "claimantAddress": {
      "type": "string",
      "description": "The 0x address eligible for the escrow refund"
    }
  },
  "required": [
    "escrowId",
    "claimantAddress"
  ]
}
🟢get_protocol_stats

Fetch live protocol metrics including total registered domains, active secondary marketplace listings, and cross-chain CCIP bridge health.

Input Schema

{
  "type": "object",
  "properties": {}
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded19 tools
verifiedversion not recorded19 tools
verifiedversion not recorded19 tools
verifiedversion not recorded19 tools
verifiedversion not recorded19 tools
verifiedversion not recorded19 tools