Agent.chain.tokyo Address Contracts

Rent a real Japan mailing address for an AI agent via MCP + Solana USDC x402.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
68%
Naming quality
98%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~965Tokens (tool definitions)
~542 BTypical response size
Moderate attention impact (0.75% 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": {
    "address-contracts": {
      "url": "https://mainnet.agent.chain.tokyo/mcp"
    }
  }
}

Remote endpoints

https://mainnet.agent.chain.tokyo/mcpstreamable-http

What it can do

Tool inventory

Tools (9)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢list_locations

List safe Location summaries and virtual floor ranges using the connected Google OAuth account. Exact addresses are never included in this catalog.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢get_floor_availability(locationId, floor)

Check a virtual floor for the authenticated owner without disclosing another owner's identity.

Input Schema

{
  "type": "object",
  "properties": {
    "locationId": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"
    },
    "floor": {
      "type": "integer",
      "minimum": 1,
      "maximum": 65535
    }
  },
  "required": [
    "locationId",
    "floor"
  ],
  "additionalProperties": false
}
🟢list_contracts

List the authenticated owner's contracts. Only current active paid contracts with valid assent include their snapshotted mailbox address. Private forwarding destinations are omitted.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢list_events(after, limit)

Read the authenticated owner's durable event Inbox after an optional cursor.

Input Schema

{
  "type": "object",
  "properties": {
    "after": {
      "type": "string"
    },
    "limit": {
      "default": 50,
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "additionalProperties": false
}
🟡create_payment_intent(locationId, floor, applicantKind, termsVersion, termsAccepted, ...)

Reserve one Location floor for the authenticated owner and create a fixed 55 USDC native-USDC x402 exact Payment Intent.

Input Schema

{
  "type": "object",
  "properties": {
    "locationId": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"
    },
    "floor": {
      "type": "integer",
      "minimum": 1,
      "maximum": 65535
    },
    "applicantKind": {
      "type": "string",
      "const": "individual"
    },
    "termsVersion": {
      "type": "string",
      "const": "individual-v1"
    },
    "termsAccepted": {
      "type": "boolean",
      "const": true
    },
    "accountOwnerAuthorityConfirmed": {
      "type": "boolean",
      "const": true
    }
  },
  "required": [
    "locationId",
    "floor",
    "applicantKind",
    "termsVersion",
    "termsAccepted",
    "accountOwnerAuthorityConfirmed"
  ],
  "additionalProperties": false
}
🔴create_wallet_handoff(intentId)

Create a short-lived owner login link for an existing 55 USDC Intent. Show the URL to the owner; wait for their Phantom wallet connection before preparing. Never request a token or private key. Do not automatically retry.

Input Schema

{
  "type": "object",
  "properties": {
    "intentId": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"
    }
  },
  "required": [
    "intentId"
  ],
  "additionalProperties": false
}
🔴prepare_wallet_signature(handoffId)

After the owner connects Phantom, prepare the immutable transaction for this handoff. Then ask the owner to review and sign in the existing owner page. This does not sign or send. Do not automatically retry or request a replacement after expiry.

Input Schema

{
  "type": "object",
  "properties": {
    "handoffId": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    }
  },
  "required": [
    "handoffId"
  ],
  "additionalProperties": false
}
🔴submit_wallet_payment(handoffId)

Only after the owner explicitly signs the 55 USDC payment in Phantom, submit the server-saved proof once. Acknowledgement is not settlement. Always follow with get_wallet_payment_status; never automatically retry submission, including after a timeout.

Input Schema

{
  "type": "object",
  "properties": {
    "handoffId": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    }
  },
  "required": [
    "handoffId"
  ],
  "additionalProperties": false
}
🟢get_wallet_payment_status(handoffId)

Read server-recorded settlement evidence for this handoff without sending, observing the chain or repairing a payment. settlement_recorded is historical evidence, not proof of currently active service. Unknown/review results require operator review. Never resend automatically.

Input Schema

{
  "type": "object",
  "properties": {
    "handoffId": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    }
  },
  "required": [
    "handoffId"
  ],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded9 tools