Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.azeth-protocol/mcp-server

NPM · @AZETH/MCP-SERVER · SCANNED SEP 20

Smart accounts, x402 payments, on-chain reputation, and service discovery for AI agents

Available components

0 this week 89 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security99
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 34 of 131 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to azeth-protocol/mcp-server). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 79 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability63
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 11366 tokens (~334/item across 34 items; 34 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management83
  • Stability observed for 25 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 7 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "azeth_create_account" implies "deploy" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 34 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the io.github.azeth-protocol/mcp-server server?

io.github.azeth-protocol/mcp-server runs locally as an npm package, launched with npx -y @azeth/mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @azeth/mcp-server

# add to Claude Code
claude mcp add azeth-protocol-mcp-server -- npx -y @azeth/mcp-server
// .cursor/mcp.json
{
  "mcpServers": {
    "azeth-protocol-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@azeth/mcp-server"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "azeth-protocol-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@azeth/mcp-server"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add azeth-protocol-mcp-server -- npx -y @azeth/mcp-server
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "azeth-protocol-mcp-server": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@azeth/mcp-server"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add azeth-protocol-mcp-server --command npx --arg -y --arg @azeth/mcp-server
# ~/.hermes/config.yaml
mcp_servers:
  azeth-protocol-mcp-server:
    command: "npx"
    args: ["-y", "@azeth/mcp-server"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "azeth-protocol-mcp-server": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@azeth/mcp-server"
      ]
    }
  }
}
# add to Vellum
assistant mcp add azeth-protocol-mcp-server -t stdio -c npx -a -y @azeth/mcp-server
// mcp.json
{
  "mcpServers": {
    "azeth-protocol-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@azeth/mcp-server"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

  • 19 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 18 Sept 26 0
    • Stability: 0.97 → pass security
  • 17 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 15 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

  • 13 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

  • 12 Sept 26 −3
    • Security disclosure: unverified → fail functional
    • Stability: pass → 0.80 functional
  • 11 Sept 26 0
    • Stability: 0.97 → pass security
    • Security disclosure: fail → unverified functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed npm/@azeth/mcp-server@0.2.22

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo azeth-protocol/mcp-server
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/azeth-protocol/mcp-server/.github/workflows/publish.yml@refs/heads/main
Rekor log index 1725518905
Predicate type https://slsa.dev/provenance/v1
Subject digest sha512:63014ac6bdba72a9f98cd4cad98262df8c71da7d58fd95e37b72b22681e1efd4345200f9b253036344340dc94c3867e1fd9356cdbea12894e34808fc8

Background: How many MCP packages publish verified provenance →

Dependencies 131 packages
Packages resolved 131
Stale 34
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 34 exposed · ~11,366 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
azeth_accounts ~195

List all your Azeth smart accounts with their names, addresses, and trust registry token IDs. Use this when: You want to see all your accounts at a glance, find an account by name, or get the "#N" index for use in other tools. Returns: Your EOA owner address and an indexed list of smart accounts. Each account shows its #N index (usable in other tools), name, address, and tokenId. Note: This is a read-only operation. Names come from the trust registry. The owner is determined by the AZETH_PRIVATE_KEY environment variable.

NameTypeReqDescription
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…

No output schema declared.

No examples provided.

azeth_balance ~250

Check all balances with USD values for your EOA and all Azeth smart accounts. Use this when: You need to know how much ETH, USDC, or WETH your accounts hold, or you want a total portfolio value in USD before making a transfer or payment. Returns: Multi-account breakdown with per-token USD values and grand total. EOA is shown first (index 0), followed by smart accounts in deployment order. Optionally filter to a single smart account by providing its address. Note: This is a read-only, single-RPC-call operation and safe to call repeatedly. The owner is determined by the AZETH_PRIVATE_KEY environment variable. Example: {} or { "smartAccount": "#1" }

NameTypeReqDescription
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…
smartAccountstringSmart account address, name, or "#N" (account index). If omitted, shows all accounts.

No output schema declared.

No examples provided.

azeth_cancel_agreement ~192

Cancel an active payment agreement. Only the payer (agreement creator) can cancel. Use this when: You want to stop a recurring payment subscription or data feed. Cancellation is immediate — no timelock, no penalty. Already-paid amounts are not refunded. Returns: Transaction hash and final agreement state (total paid, execution count).

NameTypeReqDescription
agreementIdintegeryesThe agreement ID to cancel.
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…
smartAccountstringYOUR smart account that owns the agreement: address or "#N". Only your own accounts can be cancelled. Defaults to first smart account.

No output schema declared.

No examples provided.

azeth_check_reachability ~255

Check if an Ethereum address is reachable on the XMTP messaging network. Use this when: You want to verify a participant can receive XMTP messages before sending. This is a read-like operation and safe to retry. The "address" field accepts: an Ethereum address, a participant name, "me", or "#N" (account index). Returns: The address and whether it is reachable (boolean). Note: Reachability is cached for 5 minutes. An address is reachable if it has an active XMTP identity. The checking account is determined by the AZETH_PRIVATE_KEY environment variable. Example: { "address": "Alice" } or { "address": "0x1234567890abcdef1234567890abcdef12345678" }

NameTypeReqDescription
addressstringyesAddress to check: Ethereum address, participant name, "me", or "#N".
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…

No output schema declared.

No examples provided.

azeth_create_account ~603

Deploy a new Azeth smart account with guardian guardrails and register it on the ERC-8004 trust registry. Use this when: An AI agent or service needs its own on-chain identity with spending limits and trust registry presence. One EOA can own multiple smart accounts. Single atomic transaction: deploys smart account proxy, installs all 4 modules (Guardian, TrustRegistry, PaymentAgreement, Reputation), registers on ERC-8004, and permanently revokes factory access. Returns: The deployed smart account address, trust registry token ID, and transaction hash. Gas is automatically sponsored — no ETH required. The SDK uses a gasless relay (EIP-712 signature) so the account can be created without any pre-funding. On testnet, USDC is also auto-funded. Guardian: By default, the guardian is derived from AZETH_GUARDIAN_KEY env var. If not set, falls back to self-guardian (owner address). For production, always use a separate guardian key. Set AZETH_GUARDIAN_KEY in your .env file. Example: { "name": "PriceFeedBot", "entityType": "service", "description": "Real-time crypto price data", "capabilities": ["price-feed", "market-data"] }

NameTypeReqDescription
capabilitiesarrayyesList of capabilities this participant offers (e.g., ["swap", "price-feed", "translation"]).
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…
dailySpendLimitUSDnumberMax USD per day (default: $1000 testnet, $500 mainnet).
descriptionstringyesHuman-readable description of what this participant does.
emergencyWithdrawTostringAddress where funds are sent during emergency withdrawal. Defaults to the owner EOA address (derived from AZETH_PRIVATE_KEY). Must be a trusted address you control — this is your recovery destination.
endpointstringOptional HTTP endpoint (http:// or https://) where this participant can be reached.
entityTypestringyesParticipant type: "agent" (AI agent), "service" (API/oracle), or "infrastructure" (bridge/relay).
guardianstringGuardian address for co-signing operations that exceed spending limits. If omitted, derived from AZETH_GUARDIAN_KEY env var. If neither is set, defaults to the owner address (self-guardian, NOT recom…
maxTxAmountUSDnumberMax USD per transaction (default: $100 testnet, $50 mainnet).
namestringyesDisplay name for this participant in the trust registry.

No output schema declared.

No examples provided.

azeth_create_payment_agreement ~415

Set up a recurring payment agreement to another participant. Payments execute on a fixed interval. Use this when: You need automated recurring payments (subscriptions, data feeds, scheduled transfers) between participants. Returns: The agreement ID and creation transaction hash. Note: This creates an on-chain agreement via the PaymentAgreementModule. The payee or anyone can call execute once each interval has elapsed. Requires sufficient token balance for each execution. The payer account is determined by the AZETH_PRIVATE_KEY environment variable. Example: { "payee": "Alice", "token": "0x036CbD53842c5426634e7929541eC2318f3dCF7e", "amount": "1.00", "intervalSeconds": 86400 }

NameTypeReqDescription
amountstringyesPayment amount per interval in human-readable units (e.g., "10.00" for 10 USDC).
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…
decimalsintegerToken decimals. Defaults to 6 (USDC). Use 18 for WETH or native ETH.
intervalSecondsintegeryesTime between payments in seconds (minimum 60). E.g., 86400 for daily, 604800 for weekly.
maxExecutionsintegerMaximum number of payments. 0 or omit for unlimited.
payeestringyesRecipient: Ethereum address, participant name, "me", or "#N" (account index).
tokenstringyesPayment token address. Use an ERC-20 contract address (e.g., USDC) or 0x0000000000000000000000000000000000000000 for native ETH.

No output schema declared.

No examples provided.

azeth_deposit ~400

Deposit ETH or ERC-20 tokens from your EOA wallet into your own Azeth smart account. Use this when: Your smart account needs funding for transfers, x402 payments, or other operations. SECURITY: This verifies ON-CHAIN that the target is a real Azeth smart account owned by you. You cannot deposit to someone else's smart account. Returns: Transaction hash and deposit details. Note: If no target account is specified, deposits to your first smart account. For ETH deposits, omit the token parameter. For ERC-20 tokens, provide the token contract address AND decimals. The amount is in human-readable units (e.g., "0.01" for 0.01 ETH, "100" for 100 USDC). Example: { "amount": "0.01" } or { "amount": "50", "token": "0x036CbD53842c5426634e7929541eC2318f3dCF7e", "decimals": 6 }

NameTypeReqDescription
amountstringyesAmount to deposit in human-readable units (e.g., "0.01" for 0.01 ETH).
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…
decimalsintegerToken decimals for ERC-20 deposits. REQUIRED when token is specified. Use 6 for USDC, 18 for WETH.
smartAccountstringTarget smart account address, name, or "#N" (account index). If omitted, deposits to your first Azeth account.
tokenstringERC-20 token contract address. Omit for native ETH deposit.

No output schema declared.

No examples provided.

azeth_discover_agent_capabilities ~300

Discover what services an agent offers by sending them a capabilities request over XMTP. Use this when: You want to find out what services another agent provides, their pricing, and how to use them — before making a service request or payment. Sends a JSON capabilities request to the target agent and waits for their response. The target agent must be online and have a MessageRouter configured to respond. The "agentAddress" field accepts: an Ethereum address, a participant name, "me", or "#N" (account index). Returns: The agent's capabilities including services, pricing, and usage instructions. If no response within the timeout, returns an error indicating the agent may be offline. Example: { "agentAddress": "0x1234567890abcdef1234567890abcdef12345678" }

NameTypeReqDescription
agentAddressstringyesTarget agent: Ethereum address, participant name, "me", or "#N" (account index).
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…
timeoutMsintegerTimeout in milliseconds to wait for response. Defaults to 15000 (15 seconds). Max 60000.

No output schema declared.

No examples provided.

azeth_discover_services ~372

Find services, agents, and infrastructure on the trust registry by capability, entity type, and reputation. Use this when: You need to find a participant that offers a specific capability (e.g., "swap", "price-feed"), or you want to browse available services filtered by type and minimum reputation score. Returns: Array of registry entries with token ID, owner, entity type, name, capabilities, endpoint, and status. Note: This queries the Azeth server API. Set AZETH_SERVER_URL env var if the server is not at the default location. Results are ranked by reputation (highest first) by default; pass minReputation to also filter out providers below a threshold. Each result carries a usableEndpoint flag (false for blank/placeholder/ephemeral-tunnel endpoints). No private key is required for read-only discovery. Example: { "capability": "price-feed" } or { "entityType": "service", "minReputation": 50, "limit": 5 }

NameTypeReqDescription
capabilitystringFilter by capability (e.g., "swap", "price-feed", "translation").
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…
entityTypestringFilter by participant type.
limitintegerMaximum number of results. Defaults to 10.
minReputationnumberMinimum reputation score (0-100). Higher means more trusted.
offsetintegerNumber of results to skip for pagination. Defaults to 0.

No output schema declared.

No examples provided.

azeth_execute_agreement ~307

Execute a due payment from an on-chain agreement. Anyone can call this — the payer, payee, or a third-party keeper. Use this when: You are a service provider collecting a recurring payment owed to you, a payer triggering your own agreement manually, or a keeper bot executing due agreements. Keeper support: When the "account" is a foreign address (not owned by your private key), execution routes through your own account or EOA automatically. No special configuration needed. The contract validates all conditions on-chain: interval elapsed, active, within caps and limits. Pro-rata accrual means the payout scales with elapsed time (capped at 3x the interval). Returns: Transaction hash, amount paid, execution count, and next execution time. If the agreement soft-fails (insufficient balance, guardian limit), it returns the failure reason without reverting.

NameTypeReqDescription
accountstringyesThe payer smart account whose agreement to execute: Ethereum address, participant name, "me", or "#N".
agreementIdintegeryesThe agreement ID to execute (from azeth_create_payment_agreement or azeth_list_agreements).
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…

No output schema declared.

No examples provided.

azeth_get_active_opinion ~225

Check if you have an active reputation opinion for a specific agent. Use this when: You want to verify whether you have already submitted a reputation opinion for an agent before submitting a new one (which would overwrite the existing one). The agentId is the ERC-8004 token ID of the agent you want to check. Use azeth_discover_services or azeth_get_registry_entry to find token IDs. Returns: Whether an active opinion exists and its opinion index on the reputation registry. This is read-only and safe to call at any time. Example: { "agentId": "3" }

NameTypeReqDescription
agentIdstringyesThe ERC-8004 token ID of the agent to check your opinion for.
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…

No output schema declared.

No examples provided.

azeth_get_agreement ~218

View full details of a payment agreement including status, payment history, and next execution time. Use this when: You want to inspect an agreement before executing or cancelling it, verify terms after creation, or check how much has been paid so far. Returns: Complete agreement details with human-readable amounts, status, and timing. Note: This is a read-only on-chain query. No gas or private key required for the query itself, but account resolution may need your key if using "me" or "#N".

NameTypeReqDescription
accountstringyesThe payer smart account: Ethereum address, participant name, "me", or "#N".
agreementIdintegeryesThe agreement ID to query.
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…

No output schema declared.

No examples provided.

azeth_get_due_agreements ~208

Find all payment agreements that are due for execution across one or more accounts. Use this when: You are a keeper bot looking for agreements to execute, or a service provider checking which of your customers' payments are collectible. Returns: Array of due agreements with payer account, agreement ID, and expected payout. Each entry can be passed directly to azeth_execute_agreement. Note: This scans all agreements for the specified accounts. For large-scale keeper operations, consider filtering by specific accounts rather than scanning all.

NameTypeReqDescription
accountsarrayAccounts to scan: addresses, names, "me", or "#N". Defaults to ["me"].
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…

No output schema declared.

No examples provided.

azeth_get_guardrails ~205

View the guardian security configuration for a smart account. Use this when: You want to check spending limits, token/protocol whitelists, daily spend tracking, emergency withdrawal status, or pending guardrail changes. Returns: Full guardian state including spending limits (USD), whitelisted tokens and protocols, daily spend progress, and any pending timelock changes. This is read-only and safe to call at any time. Example: { "smartAccount": "me" }

NameTypeReqDescription
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…
smartAccountstringSmart account to inspect. Accepts address, "me", "#N", or account name. Defaults to first account.

No output schema declared.

No examples provided.

azeth_get_net_paid ~415

Check how much one account has paid another — either total USD or per-token. Use this when: You want to verify payment history between two accounts, which determines feedback weight in the payment-gated reputation system. Two modes: • No token (default): Returns total net paid in 18-decimal USD, aggregated across all tokens via the on-chain oracle. Always >= 0. • With token: Returns the signed per-token delta. Positive = "from" paid more, negative = "to" paid more. Use 0x0...0 for native ETH. "from" defaults to your own address ("me") if omitted. "to" accepts a name, address, or "me". Note: This is a read-only on-chain query. No private key or gas is required (unless "me" or a name is used for resolution). Example: { "to": "Alice" } or { "from": "#1", "to": "Bob", "token": "0x036CbD53842c5426634e7929541eC2318f3dCF7e" }

NameTypeReqDescription
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…
fromstringPayer address, name, "me", or "#N" (account index). Defaults to "me" (your first smart account).
tostringyesPayee address, name, "me", or "#N" (account index).
tokenstringToken address for per-token delta. Omit for total USD across all tokens. Use "0x0000000000000000000000000000000000000000" for native ETH.

No output schema declared.

No examples provided.

azeth_get_registry_entry ~253

Look up a specific participant on the trust registry by token ID or smart account address. Use this when: You know a specific agent/service address or token ID and want to see their registration details, capabilities, and reputation. Provide EITHER tokenId OR address (at least one required). If address is provided, it is resolved to a token ID via on-chain lookup. Returns: Full registry entry including name, description, entity type, capabilities, endpoint, and weighted reputation score. This is read-only and safe to call at any time. Example: { "address": "0x1234..." } or { "tokenId": "5" }

NameTypeReqDescription
addressstringSmart account address of the participant. Resolved to tokenId on-chain.
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…
tokenIdstringERC-8004 token ID of the participant to look up.

No output schema declared.

No examples provided.

azeth_get_weighted_reputation ~263

Get USD-weighted reputation for an agent from the on-chain ReputationModule. Use this when: You want to check the reputation of an agent or service before interacting. Returns a weighted average where each rater's influence is proportional to their USD payment to the agent. Returns: Weighted reputation with weightedValue (int256), totalWeight, and opinionCount. Note: This is a read-only on-chain query. No private key or gas is required. Leave raters empty to aggregate across all raters who have submitted opinions. Example: { "agentId": "1024" } or { "agentId": "1024", "raters": ["0x1234...abcd"] }

NameTypeReqDescription
agentIdstringyesTarget agent's ERC-8004 token ID (numeric string).
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…
ratersarraySpecific rater addresses to include (optional). Empty = all raters.

No output schema declared.

No examples provided.

azeth_guardian_approve ~408

Review and approve or reject guardian approval requests from agents you protect. Azeth smart accounts have a guardian who co-signs high-value operations. When an agent exceeds its autonomous spending limits, it sends you (the guardian) an approval request via XMTP. Use this tool to review and respond to those requests. Three modes: 1. No request_id: Lists all pending guardian approval requests from your XMTP inbox 2. request_id + decision "approve": Co-signs the userOpHash and sends approval via XMTP 3. request_id + decision "reject": Sends rejection with optional reason via XMTP When approving, this tool signs the userOpHash with your AZETH_PRIVATE_KEY (which is the guardian key on your MCP instance) and sends the signature back to the requesting agent. Returns: List of pending requests (mode 1), or confirmation of approve/reject (mode 2/3). Example (list): { } Example (approve): { "request_id": "abc-123", "decision": "approve" } Example (reject): { "request_id": "abc-123", "decision": "reject", "reason": "Amount too high" }

NameTypeReqDescription
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…
decisionstringDecision: "approve" to co-sign the operation, "reject" to deny it. Required when request_id is provided.
reasonstringOptional reason for rejection. Only used when decision is "reject".
request_idstringThe request ID to approve or reject. If omitted, lists all pending guardian approval requests from your XMTP messages.

No output schema declared.

No examples provided.

azeth_guardian_status ~253

Check the status of a pending guardian approval request. Use this when: You previously submitted an operation that required guardian co-signature and received a timeout with a request_id. This tool checks if the guardian has since responded via XMTP. Status outcomes: - "approved": Guardian approved. Returns the guardian signature. Retry your original operation — it will now succeed with the guardian co-signature. - "rejected": Guardian rejected with a reason. - "pending": Guardian has not responded yet. Check again later. - "expired": Request expired after 5 minutes. Retry your original operation. Returns: Current status and relevant details (signature if approved, reason if rejected). Example: { "request_id": "abc-123" }

NameTypeReqDescription
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…
request_idstringyesThe guardian approval request ID returned by a previous operation.

No output schema declared.

No examples provided.

azeth_history ~270

Get recent transaction history for your Azeth smart account. Use this when: You need to review past transactions, verify a payment was sent, or audit account activity. Returns: Array of transaction records with hash, from, to, value, block number, and timestamp. Note: Complete history requires the Azeth indexer. When it is unavailable, this returns a best-effort recent-only window the RPC can serve and sets indexedHistoryUnavailable=true (it never errors) — treat a flagged result as partial, not as "no activity". The account is determined by the AZETH_PRIVATE_KEY environment variable. Example: { "limit": 5 } or { "smartAccount": "#2", "limit": 20 }

NameTypeReqDescription
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…
limitintegerMaximum number of transactions to return. Defaults to 10.
smartAccountstringSmart account address, name, or "#N" (account index). If omitted, uses your first smart account.

No output schema declared.

No examples provided.

azeth_list_agreements ~225

List all payment agreements for a smart account with summary status. Use this when: You need to find an agreement ID, see all active subscriptions, check which agreements are due for execution, or get an overview of payment commitments. Returns: Array of agreement summaries sorted by ID (newest first), with status and timing. Note: This is a read-only on-chain query. Iterates through all agreements for the account. For accounts with many agreements, this may take a few seconds.

NameTypeReqDescription
accountstringSmart account to query: address, name, "me", or "#N". Defaults to "me".
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…
statusstringFilter by status. "due" shows only agreements ready for execution right now.

No output schema declared.

No examples provided.

azeth_list_conversations ~142

List all active XMTP messaging conversations. Use this when: You want to see who you have been communicating with, or check if a conversation exists with a specific peer. Returns: Array of conversations with peer address and creation time. Note: First call may be slow due to XMTP initialization. Example: { }

NameTypeReqDescription
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…

No output schema declared.

No examples provided.

azeth_pay ~445

Pay for an x402-gated HTTP service. Makes the request, handles 402 payment automatically, and returns the response. Use this when: You need to access a paid API or service that uses the x402 payment protocol (HTTP 402). The tool automatically detects if you have an active payment agreement (subscription) with the service. If an agreement exists, access is granted without additional payment. Otherwise, a fresh USDC payment is signed. Returns: Whether payment was made, the payment method used ("smart-account" for a fresh smart-account settlement, "session" for SIWx-granted access incl. an active agreement, "x402" for a direct EOA settlement, or "none"), the HTTP status, and the response body. Note: Requires USDC balance to pay (unless an agreement grants access). Set maxAmount to cap spending. Only HTTPS URLs to public endpoints are accepted. The payer account is determined by the AZETH_PRIVATE_KEY environment variable. Example: { "url": "https://api.example.com/data" } or { "url": "https://api.example.com/data", "maxAmount": "1.00" }

NameTypeReqDescription
bodystringRequest body for POST/PUT/PATCH requests (JSON string, max 100KB).
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…
maxAmountstringMaximum USDC amount willing to pay (e.g., "5.00"). Rejects if service costs more.
methodstringHTTP method. Defaults to "GET".
smartAccountstringSmart account to pay from. Use "#1", "#2", etc. (index from azeth_accounts) or a full address. Defaults to your first smart account.
urlstringyesThe HTTPS URL of the x402-gated service to access. Must be a public endpoint.

No output schema declared.

No examples provided.

azeth_publish_service ~448

Register a service, agent, or infrastructure on the ERC-8004 trust registry with metadata and capabilities. Use this when: You want to make your agent or service discoverable by other participants in the Azeth network. Returns: The trust registry token ID and creation transaction hash. Note: This is a state-changing on-chain operation. The token ID is your permanent identity in the trust registry. Other participants can discover you by capability, entity type, and reputation score. The account is determined by the AZETH_PRIVATE_KEY environment variable. Example: { "name": "MarketOracle", "description": "Real-time market data API", "entityType": "service", "capabilities": ["price-feed", "market-data"], "endpoint": "https://api.example.com" }

NameTypeReqDescription
capabilitiesarrayyesList of capabilities offered (e.g., ["swap", "price-feed", "translation"]).
catalogarrayOff-chain service catalog for multi-service providers. Included in initial registration as a snapshot; providers should serve their live catalog from their endpoint. Each entry: name, path, method (G…
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…
descriptionstringyesHuman-readable description of what this participant does.
endpointstringOptional HTTP endpoint where this participant can be reached.
entityTypestringyesParticipant type: "agent" (AI agent), "service" (API/oracle), or "infrastructure" (bridge/relay).
namestringyesDisplay name for this participant in the trust registry.
pricingstringListed price for this service (e.g., "$0.01/request", "Free", "$10/month"). Informational — actual x402 settlement price may differ.

No output schema declared.

No examples provided.

azeth_receive_messages ~324

Read incoming encrypted messages from the XMTP messaging network. Use this when: You want to check for messages from other agents or services. This is the "inbox" view — it lets you read what others have sent you. Two modes: 1. With "from": Read messages from a specific sender (up to "limit" messages) 2. Without "from": Read the latest message from each conversation (inbox overview) The "from" field accepts: an Ethereum address, a participant name, "me", or "#N" (account index). Returns: Array of messages with sender address, content, timestamp, and conversation ID. Note: XMTP messages are end-to-end encrypted. The account reading messages is determined by the AZETH_PRIVATE_KEY environment variable. First call may be slow due to XMTP initialization. Example: { "from": "Alice", "limit": 10 } or { } (all conversations)

NameTypeReqDescription
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…
fromstringRead messages from a specific sender. Accepts: address, name, "me", "#N". Omit for inbox overview.
limitintegerMaximum messages to return. Defaults to 20. Max 100.

No output schema declared.

No examples provided.

azeth_send_message ~297

Send an encrypted message to another participant via the XMTP messaging network. Use this when: You need to communicate with another agent or service using end-to-end encrypted messaging. The recipient must be reachable on the XMTP network (use azeth_check_reachability first if unsure). The "to" field accepts: an Ethereum address, a participant name, "me", or "#N" (account index). Returns: The conversation ID and recipient address confirming delivery. Note: This is NOT idempotent — each call sends a new message. The sender account is determined by the AZETH_PRIVATE_KEY environment variable. Messages are limited to 10,000 characters. Example: { "to": "Alice", "content": "Hello, I would like to use your price-feed service." }

NameTypeReqDescription
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…
contentstringyesMessage text content (1-10,000 characters).
contentTypestringContent type hint. Defaults to "text/plain".
tostringyesRecipient: Ethereum address, participant name, "me", or "#N" (account index).

No output schema declared.

No examples provided.

azeth_smart_pay ~877

Discover the best service for a capability and pay for it automatically. Use this when: You need a service by CAPABILITY (e.g., "price-feed", "market-data", "translation") and want Azeth to pick the highest-reputation provider, handle payment, and fall back to alternatives if needed. How it differs from azeth_pay: - azeth_smart_pay: "I need price-feed data" → Azeth discovers the best service, pays it, returns the data. - azeth_pay: "I need data from https://specific-service.com/api" → You know which service, Azeth pays it. Flow: Discovers services ranked by reputation → tries the best one → if it fails, tries the next. Set autoFeedback: true to automatically submit a reputation opinion based on service quality after payment. Note: autoFeedback defaults to false in MCP context (ephemeral client). Enable it if the MCP server has a bundler configured. INTENT (recommended): pass `intent` (loose token(s)) or `params` (exact) to get exactly the asset/resource you want. Azeth matches your intent deterministically (no LLM, low latency): for a provider that exposes a CATALOG of many paid endpoints (e.g. price of BTC, ETH, XRP) it navigates to the right priced route; for a provider with a single fixed priced route it pays only when the asset you named appears in that route. SAFETY GUARANTEE: with an intent set, smart_pay NEVER spends on a non-matching asset — on a miss it returns `{ paid:false, resolved:false, options:[…] }` (the catalog menu + valid param values), so you refine and retry in one shot with no money spent on the wrong thing. Returns: The response data, which service was used, attempts, payment details, and (for catalog navigation) a `resolved` receipt of the entry + bound params. Example: { "capability": "price-feed", "intent": "bitcoin" } → pays the BTC price route and returns the data. Example: { "capability": "price-feed", "params": { "coinId": "ethereum" } } or { "capability": "translation", "maxAmount": "0.50", "method": "POST", "body": "{"tex…

NameTypeReqDescription
autoFeedbackbooleanAutomatically submit a reputation opinion after payment based on service quality. Defaults to false.
bodystringRequest body for POST/PUT/PATCH requests (JSON string, max 100KB).
capabilitystringyesService capability to discover (e.g., "price-feed", "market-data", "translation", "compute").
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…
intentWhat you want, as loose token(s) (e.g. "bitcoin", or ["bitcoin","fresh"]). When the chosen provider serves a catalog of paid endpoints, these are matched deterministically against the catalog's param…
maxAmountstringMaximum USDC amount willing to pay per service (e.g., "1.00"). Rejects if service costs more.
methodstringHTTP method. Defaults to "GET".
minReputationnumberMinimum reputation score (0-100) to consider. Services below this are excluded.
paramsobjectPrecise catalog params (e.g. { "coinId": "bitcoin" }) — overrides intent. Use when you already know the provider's param names (e.g. from a prior "options" response).
smartAccountstringSmart account to pay from. Use "#1", "#2", etc. (index from azeth_accounts) or a full address. Defaults to your first smart account.

No output schema declared.

No examples provided.

azeth_submit_opinion ~500

Submit payment-gated reputation opinion for an agent or service on the ERC-8004 Reputation Registry. Use this when: You have interacted with an agent/service and want to rate their performance. Opinion weight is determined by how much you have paid the target in USD (payment-gated). If you update your opinion for the same agent, the previous entry is automatically revoked. Returns: The transaction hash of the opinion submission. Note: This is a state-changing on-chain operation via the Azeth ReputationModule. The rating field is a number from -100 to 100 (supports decimals like 85.5). Stored on-chain in WAD format (18-decimal) for consistent aggregation. You must have a minimum USD payment to the target (payment-gated). Tags allow categorization (e.g., tag1="quality", tag2="x402"). The submitter account is determined by the AZETH_PRIVATE_KEY environment variable. Example: { "agentId": "1024", "rating": 85, "tag1": "quality", "tag2": "x402" } Example (negative): { "agentId": "1024", "rating": -50, "tag1": "reliability", "tag2": "downtime" }

NameTypeReqDescription
agentIdstringyesTarget agent's ERC-8004 token ID (numeric string).
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…
endpointstringService endpoint being rated (optional).
opinionHashstringHash of the opinion data for integrity verification (optional, 0x-prefixed bytes32).
opinionURIstringURI containing detailed opinion data (optional).
ratingnumberyesRating from -100 to 100 (supports decimals like 85.5). Stored on-chain in WAD (18-decimal) format.
tag1stringPrimary categorization tag (e.g., "quality", "uptime", "speed"). Default: "quality".
tag2stringSecondary categorization tag (e.g., "x402", "rpc", "swap").

No output schema declared.

No examples provided.

azeth_subscribe_service ~328

Subscribe to an x402-gated service by creating a payment agreement. Use this when: You want to set up a subscription instead of paying per-request. The tool fetches the service URL, parses the 402 payment-agreement extension terms, and creates an on-chain payment agreement matching those terms. Returns: The agreement ID, transaction hash, and subscription details. Note: The service must advertise payment-agreement terms in its 402 response. After subscribing, subsequent calls to azeth_pay will automatically detect the agreement. No need to pass an agreementId — the server recognizes your wallet via SIWx authentication.

NameTypeReqDescription
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…
intervalSecondsintegerOverride the suggested interval (seconds, minimum 60). Defaults to the service suggestion.
maxExecutionsintegerMaximum number of payments (count cap). 0 or omit for no count limit — an amount cap (totalCap) applies instead.
totalCapstringMaximum total payout in human-readable token units (e.g., "100.00"). Omit BOTH this and maxExecutions to default to ~1 year of payments (amountPerInterval × 365).
urlstringyesThe HTTPS URL of the x402-gated service to subscribe to.

No output schema declared.

No examples provided.

azeth_transfer ~521

Send ETH or ERC-20 tokens FROM your Azeth smart account to another address. Use this when: You need to pay another participant, fund an account, or move tokens between addresses. The "to" field accepts: an Ethereum address, a participant name (resolved via trust registry), "me" (your first smart account), or "#N" (Nth account index from azeth_accounts). IMPORTANT: This sends FROM your smart account, not your EOA. Ensure your smart account is funded. Use azeth_deposit first to fund your smart account if needed. One EOA can own multiple smart accounts — specify which one, or defaults to first. Returns: Transaction hash, sender smart account address, recipient address (with resolution info), and amount sent. Note: This is a state-changing operation. The tool shows the resolved address before executing. For ETH transfers, omit the token parameter. For ERC-20 tokens, provide the token contract address AND decimals. The amount is in human-readable units (e.g., "1.5" for 1.5 ETH or "100" for 100 USDC). The sender account is determined by the AZETH_PRIVATE_KEY environment variable. Example: { "to": "Alice", "amount": "0.001" } or { "to": "0x1234...abcd", "amount": "10", "token": "0x036C...CF7e", "decimals": 6 }

NameTypeReqDescription
amountstringyesAmount to send in human-readable units (e.g., "1.5" for 1.5 ETH, "100" for 100 USDC).
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…
decimalsintegerToken decimals for ERC-20 transfers. REQUIRED when token is specified. Use 6 for USDC, 18 for WETH.
smartAccountstringSmart account to transfer from: address, name, or "#N". If omitted, uses your first smart account.
tostringyesRecipient: Ethereum address, participant name, "me", or "#N" (account index).
tokenstringERC-20 token contract address. Omit for native ETH transfer.

No output schema declared.

No examples provided.

azeth_update_service ~292

Update metadata for your registered service on the trust registry. Use this when: You need to change your service endpoint, description, capabilities, or other metadata after initial registration with azeth_publish_service. Supported metadata keys: "endpoint", "description", "capabilities", "name", "entityType", "pricing". For capabilities, provide a JSON array string (e.g., '["translation", "nlp"]'). Note: Catalogs are off-chain and served from your endpoint. Update your catalog by updating the response at your endpoint, not via this tool. Returns: Confirmation with transaction hash. Note: Your account must already be registered on the trust registry. This requires a transaction (gas cost). Only the account owner can update metadata. Example: { "key": "endpoint", "value": "https://api.example.com/v2" }

NameTypeReqDescription
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…
keystringyesMetadata key to update.
valuestringyesNew value. For "capabilities", provide a JSON array string like '["translation", "nlp"]'.

No output schema declared.

No examples provided.

azeth_update_service_batch ~291

Update multiple metadata fields for your registered service in a single transaction. Use this when: You need to change several metadata fields at once (e.g., endpoint + description + capabilities). This is more gas-efficient than calling azeth_update_service multiple times. Supported metadata keys: "endpoint", "description", "capabilities", "name", "entityType", "pricing". For capabilities, provide a JSON array string (e.g., '["translation", "nlp"]'). Note: Catalogs are off-chain. Update your catalog by updating your endpoint response. Returns: Confirmation with a single transaction hash for all updates. Note: All updates are atomic — if one fails, none are applied. Maximum 5 key-value pairs per batch. Example: { "updates": [{"key": "endpoint", "value": "https://api.example.com/v2"}, {"key": "description", "value": "Updated service"}] }

NameTypeReqDescription
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…
updatesarrayyesArray of {key, value} pairs to update. Max 5 updates per batch.

No output schema declared.

No examples provided.

azeth_whitelist_protocol ~311

Add or remove a protocol (contract address) from your smart account's guardian whitelist. Use this when: You need to interact with a new DeFi protocol or contract through executor modules (like PaymentAgreementModule). Protocols must be whitelisted for automated operations to succeed. The "protocol" field must be a valid Ethereum address of the contract to whitelist. Returns: Confirmation of the whitelist update with transaction hash. Note: This requires a UserOperation (gas). Only the account owner can modify whitelists. Whitelisting a protocol allows executor modules to interact with it on your behalf. Whitelist additions require guardian co-signature for security. Example: { "protocol": "0x71D52798e3D0f5766f6f0AFEd6710EB5D1FF4DF9", "allowed": true }

NameTypeReqDescription
allowedbooleanyestrue to whitelist, false to remove from whitelist.
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…
protocolstringyesProtocol/contract address to whitelist or delist (0x...).
smartAccountstringSmart account address, name, or "#N". Defaults to first smart account.

No output schema declared.

No examples provided.

azeth_whitelist_token ~358

Add or remove a token from your smart account's guardian whitelist. Use this when: You need to whitelist a new token for payment agreements or other executor-module operations. Newly created accounts already have ETH, USDC, and WETH whitelisted by default. Why it matters: The GuardianModule enforces a token whitelist for automated operations (payment agreements, swap execution). Owner-signed transfers bypass the whitelist, but executor modules like PaymentAgreementModule require the token to be whitelisted. Returns: Transaction hash confirming the whitelist update. Note: Only the account owner can update their own whitelist. If a guardian is configured, whitelisting a token is a guardrail change that requires guardian co-signature — the call returns a GUARDIAN_COSIGN_REQUIRED error with guidance until the guardian signs. Example: { "token": "0x036CbD53842c5426634e7929541eC2318f3dCF7e", "allowed": true }

NameTypeReqDescription
allowedbooleanyestrue to whitelist the token, false to remove it from the whitelist.
chainstringTarget chain. Defaults to AZETH_CHAIN env var or "baseSepolia". Accepts "base", "baseSepolia", "ethereumSepolia", "ethereum" (and aliases like "base-sepolia", "eth-sepolia", "sepolia", "eth", "mainne…
smartAccountstringSmart account address, name, or "#N". Defaults to first smart account.
tokenstringyesToken contract address to whitelist/delist. Use "0x0000000000000000000000000000000000000000" for native ETH.

No output schema declared.

No examples provided.

Common questions

What is the io.github.azeth-protocol/mcp-server server?

io.github.azeth-protocol/mcp-server is listed in the public MCP registry as io.github.azeth-protocol/mcp-server. Smart accounts, x402 payments, on-chain reputation, and service discovery for AI agents. This page covers its npm package (@azeth/mcp-server).

Is the io.github.azeth-protocol/mcp-server server safe to use?

io.github.azeth-protocol/mcp-server scores 89 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.azeth-protocol/mcp-server server expose?

io.github.azeth-protocol/mcp-server exposes 34 tools: azeth_create_account, azeth_balance, azeth_history, azeth_deposit, azeth_accounts, and 29 more. Their descriptions and schemas cost roughly 11,366 tokens of context every time the server is loaded.

Is the io.github.azeth-protocol/mcp-server server still maintained?

io.github.azeth-protocol/mcp-server is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.azeth-protocol/mcp-server server under?

io.github.azeth-protocol/mcp-server declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.