Skip to content

HeyAnon MCP

by RealWagmi · remote · no sign-in to list tools · v1.0.0 · published by GitHub user RealWagmi

HeyAnon on-chain agent: wallets, portfolios, DeFi and CEX actions, transfers, Gemma research.

Deletes · 6Changes · 6

21 tools: 6 can delete or cancel things, 6 change things and 9 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 heyanon https://api.heyanon.ai/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

21 tools

Deletes or cancels 6Claude Code: deny
  • abortForce-stop Anon processing of the current ask_anon request.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.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Force-stop Anon processing of the current ask_anon request. Use only when isProcessing stays true for too long or the request is stuck; otherwise wait for the background task to complete.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • ask_anonSend a message to Anon, the Hey Anon on-chain AI agent (balances, swaps, bridging, lending, staking, CEX, scheduled automations, research).No findings

    Why it is in this group

    • The description's first verb is "send": a word for sending, and what is sent cannot be taken back.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Send a message to Anon, the Hey Anon on-chain AI agent (balances, swaps, bridging, lending, staking, CEX, scheduled automations, research). Asynchronous: the output is only a confirmation with the background task ID; poll background_task with that ID until status is no longer "pending" ("completed": the reply is in result; any other status, e.g. "failed": the request did not finish, check logs). Anon keeps NO conversation context: every message is processed from a clean slate, so each message must be self-contained (repeat the wallet, network, token and amount every time; follow-ups like "and on Base?" will not work). Before sending, the tool checks that Anon is idle: if the previous request is still processing it returns an error, poll background_task until it finishes (or call abort) and retry. Anon can execute real transactions from the attached wallets: send action instructions (swap, send, bridge, stake, create an automation) only when the user explicitly asked for that action, and phrase everything else as a question. For general crypto research not tied to the user wallets, prefer ask_gemma.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • background_task_deleteDelete a background task record by id.No findings

    Why it is in this group

    • The name "background_task_delete" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete a background task record by id.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • scheduled_task_deleteDelete (cancel) a scheduled task by id.No findings

    Why it is in this group

    • The name "scheduled_task_delete" says "delete": a word for removing or ending something.
    • The description says "Irreversible".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete (cancel) a scheduled task by id. Irreversible: the automation will not run again. Returns a confirmation.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • transfer_assetSend a token (ERC-20 / SPL / jetton) from one of the user wallets to another address.No findings

    Why it is in this group

    • The name "transfer_asset" says "transfer": a word for a change that another call does not undo.
    • The description says "cannot be undone".
    • The input addresses people (input.to): what it sends cannot be taken back.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Send a token (ERC-20 / SPL / jetton) from one of the user wallets to another address. This moves real funds and cannot be undone. Call it only when the user explicitly asked to send this exact amount of this asset from this wallet to this recipient on this network; never infer, round or top up any of these values. If anything is missing or ambiguous, ask the user instead of guessing. Returns the transaction hash and an explorer link (also as structuredContent).

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • transfer_nativeSend the native coin of a network (ETH, S, SOL, TON, ...) from one of the user wallets to another address.No findings

    Why it is in this group

    • The name "transfer_native" says "transfer": a word for a change that another call does not undo.
    • The description says "cannot be undone".
    • The input addresses people (input.to): what it sends cannot be taken back.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Send the native coin of a network (ETH, S, SOL, TON, ...) from one of the user wallets to another address. This moves real funds and cannot be undone. Call it only when the user explicitly asked to send this exact amount of this asset from this wallet to this recipient on this network; never infer, round or top up any of these values. If anything is missing or ambiguous, ask the user instead of guessing. Returns the transaction hash and an explorer link (also as structuredContent).

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
Changes things 6Claude Code: ask
  • ask_gemmaAsk Gemma, the Hey Anon crypto research assistant: protocol analysis, community and social insights, market data, news, token analytics by contract address.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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Ask Gemma, the Hey Anon crypto research assistant: protocol analysis, community and social insights, market data, news, token analytics by contract address. Synchronous: returns the answer text directly, no polling and no wallet addresses needed. Research only: Gemma takes no wallet addresses, executes no transactions and keeps its own session, separate from the Anon conversation. Prefer ask_gemma for general crypto questions and ask_anon for anything about the user wallets or for actions.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • isProcessingCheck whether Anon is still processing the previous ask_anon request.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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Check whether Anon is still processing the previous ask_anon request. Returns "isProcessing: true|false". Use before sending another message, or when a request looks stuck (then call abort).

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • portfolio_cexBalances and positions from the exchange accounts linked to Hey Anon (e.g.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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Balances and positions from the exchange accounts linked to Hey Anon (e.g. Hyperliquid, keyed by exchange). Pass address (an EVM wallet from wallet_list) when the user has several EVM wallets, otherwise the backend rejects the call. Returns the raw JSON response.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • portfolio_defiDeFi positions (LP, staking, lending, vaults, etc.) for every user wallet (addresses taken from wallet_list).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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    DeFi positions (LP, staking, lending, vaults, etc.) for every user wallet (addresses taken from wallet_list). Returns JSON [{ walletAddress, data }].

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • portfolio_tokensToken balances for every user wallet (addresses taken from wallet_list) across all 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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Token balances for every user wallet (addresses taken from wallet_list) across all supported networks. Returns JSON [{ walletAddress, data }]; for EVM wallets data.evm is keyed by chain id, Solana balances are in data.solana. Output can be large with many wallets.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • portfolio_transactionsRecent transactions for every user wallet (addresses taken from wallet_list).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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Recent transactions for every user wallet (addresses taken from wallet_list). Returns JSON [{ walletAddress, data }]. Output can be large with many wallets.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
Only reads 9Claude Code: allow
  • address_book_listList the user saved recipient addresses (address book): name, networks and address.No findings

    Why it is in this group

    • The name "address_book_list" says "list": a word for reading.
    Description, as the server wrote it
    List the user saved recipient addresses (address book): name, networks and address. Use it to resolve a recipient the user names, e.g. "send 0.1 ETH to My work address": find the entry by name (search), take its address and confirm it with the user before calling transfer_native or transfer_asset. Informational only: transfers are not restricted to these addresses. Returns the entries and pagination, also as structuredContent.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • background_taskGet one Anon background task by id.No findings

    Why it is in this group

    • The description's first verb is "get": a word for reading.
    Description, as the server wrote it
    Get one Anon background task by id. Each ask_anon call creates a task; poll this tool until status is no longer "pending": "completed" means the Anon reply is in result; any other status (e.g. "failed") means the request did not finish, check logs. Returns id, prompt, status, result ("—" while absent), logs (execution trace, appended live while the task runs), createdAt, updatedAt; the same object is returned as structuredContent.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • background_task_listList the user Anon background tasks (one per ask_anon message): id, prompt, status, result (Anon reply when completed), logs, createdAt, updatedAt.No findings

    Why it is in this group

    • The name "background_task_list" says "list": a word for reading.
    Description, as the server wrote it
    List the user Anon background tasks (one per ask_anon message): id, prompt, status, result (Anon reply when completed), logs, createdAt, updatedAt. Use it to find earlier answers or check what is still pending. Also returned as structuredContent { tasks }.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • get_api_key_setup_urlGet the URL of the Hey Anon page where the user logs in and creates an API key, plus the MCP config snippet where the key goes (X-API-Key header).No findings

    Why it is in this group

    • The name "get_api_key_setup_url" says "get": a word for reading.
    Description, as the server wrote it
    Get the URL of the Hey Anon page where the user logs in and creates an API key, plus the MCP config snippet where the key goes (X-API-Key header). Call this when a tool fails with "API key not set" or the user has no key yet. The key is never passed through the chat. No API key required.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • pingHealth check for the Hey Anon MCP server.No findings

    Why it is in this group

    • The name "ping" says "ping": a word for reading.
    Description, as the server wrote it
    Health check for the Hey Anon MCP server. Returns "pong" and the server time (ISO 8601). No API key required.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • projectsList the protocols and integrations Anon can operate (swaps, lending, staking, bridges, CEX, etc.): name, key, description, supported networks, tool count.No findings

    Why it is in this group

    • The description's first verb is "list": a word for reading.
    Description, as the server wrote it
    List the protocols and integrations Anon can operate (swaps, lending, staking, bridges, CEX, etc.): name, key, description, supported networks, tool count. Use it to check whether Anon supports a protocol or network before asking.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • scheduled_task_getGet one scheduled task by id (from scheduled_task_list).No findings

    Why it is in this group

    • The name "scheduled_task_get" says "get": a word for reading.
    Description, as the server wrote it
    Get one scheduled task by id (from scheduled_task_list). Returns id, description, status, type and taskExecutorResponse (the last execution result).

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • scheduled_task_listList the user scheduled tasks: automations created through Anon that run at a given time or when a price condition is met.No findings

    Why it is in this group

    • The name "scheduled_task_list" says "list": a word for reading.
    Description, as the server wrote it
    List the user scheduled tasks: automations created through Anon that run at a given time or when a price condition is met. There is no create/update tool: to create an automation, ask Anon via ask_anon (e.g. "Buy 0.1 ETH on Base when ETH drops below 2000"), then use this tool to confirm it exists. Returns id, description, status, type and, when present, taskExecutorResponse (the last execution result); the trigger time or condition is not a separate field, infer it from description.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • wallet_listList the user wallets registered in Hey Anon: display name, type (evm, solana, ton, etc.), address, labels and whether the wallet is archived.No findings

    Why it is in this group

    • The name "wallet_list" says "list": a word for reading.
    Description, as the server wrote it
    List the user wallets registered in Hey Anon: display name, type (evm, solana, ton, etc.), address, labels and whether the wallet is archived. Call it before ask_anon to choose which addresses to attach (at most one per type); match the wallet the user names by display name, label or address and skip archived wallets. The same addresses are used by the portfolio_* tools.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false

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 heyanon https://api.heyanon.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__heyanon__ping",
      "mcp__heyanon__get_api_key_setup_url",
      "mcp__heyanon__wallet_list",
      "mcp__heyanon__projects",
      "mcp__heyanon__scheduled_task_list",
      "mcp__heyanon__scheduled_task_get",
      "mcp__heyanon__background_task_list",
      "mcp__heyanon__background_task",
      "mcp__heyanon__address_book_list"
    ],
    "ask": [
      "mcp__heyanon__ask_gemma",
      "mcp__heyanon__isProcessing",
      "mcp__heyanon__portfolio_tokens",
      "mcp__heyanon__portfolio_transactions",
      "mcp__heyanon__portfolio_defi",
      "mcp__heyanon__portfolio_cex"
    ],
    "deny": [
      "mcp__heyanon__ask_anon",
      "mcp__heyanon__abort",
      "mcp__heyanon__scheduled_task_delete",
      "mcp__heyanon__background_task_delete",
      "mcp__heyanon__transfer_native",
      "mcp__heyanon__transfer_asset"
    ]
  }
}

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 heyanon. Review it before you use it.