
Official MCP RegistryListed
HeyAnon MCP
HeyAnon on-chain agent: wallets, portfolios, DeFi and CEX actions, transfers, Gemma research.
First seen 13 Oct 2026. Evidence as of 4 Nov 2026.
21
Tools
From an anonymous probe
1
Source listings
Each with its own history
15
Recorded changes
Since first seen
Tools
| Tool | Description | Behaviour |
|---|---|---|
| abort | 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 keep polling anon_message until the message is done. | Destructive |
| address_book_list | 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. | Read-only |
| anon_message | Get the state of a message sent with ask_anon, by its Message ID. Poll it until status is "done" (or "failed" / "aborted"): then reply holds the Anon answer. While status is "running", activity shows what Anon is doing right now (each step has a human text and a technical trace), so you can tell at which stage a slow request is. cards hold structured results: swaps, transfers, bridges, lending, vaults, exchange orders, perp positions and automations, each with its state, facts and transaction links. Once the message is final, the same cards are also returned rendered as a self-contained HTML document: a second content block (embedded resource, mimeType text/html) and structuredContent.cardsHtml. If the client can display HTML (artifact, canvas, HTML preview, MCP UI), show that document to the user unchanged, so they see the cards the way the HeyAnon app shows them; otherwise describe the cards from the text. Buttons in the HTML only open web pages (the HeyAnon web app, or a page the card links to); actions that execute something (confirm a swap, cancel an order) are not offered here and must be done in the HeyAnon app. Returns id, status, reply, activity, cards, traceId; the full message is also returned as structuredContent. | Read-only |
| ask_anon | Send the user's request to Anon, the Hey Anon on-chain AI agent (balances, swaps, bridging, lending, staking, CEX, scheduled automations, research). It can execute transactions and returns a Message ID. Anon plans and executes the operation; you only pass the request on: use the user's own words and language, do not build the transaction, look up routes, compute amounts or split it into steps yourself, and add only what Anon cannot know (wallet addresses, details from earlier in the conversation). Asynchronous: the output is only a confirmation with the Message ID; poll anon_message with that ID (every 2-3 s) until status is "done" (or "failed" / "aborted"), then read the answer from reply and show its cards (anon_message also returns them as HTML for clients that can display it). While it is "running", activity shows the current stage. Clients that support the io.modelcontextprotocol/tasks extension get an MCP task instead and poll it with tasks/get. 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 anon_message for the previous Message ID until it is done (or call abort) and retry. Anon can execute real transactions from the attached wallets: send an action request (swap, send, bridge, stake, create an automation) only when the user asked for that action, and never add actions the user did not ask for. For general crypto research not tied to the user wallets, prefer ask_gemma. | Destructive |
| ask_gemma | 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. | Read-only |
| isProcessing | 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). | Read-only |
| login | Sign in to Hey Anon (or create an account) without an API key, through Privy in the browser. Returns a link and a short code. Open the link yourself in a browser you control: if the user is signed in to Hey Anon there, check that the code matches and press Approve; if not, sign in for the user with a supported method (email code, Google, Apple, Telegram, wallet, passkey) using access you already have to the user's own account, e.g. an existing Google/Apple session or the one-time code from the user's mailbox, then approve. Without such access, give the link and code to the user to sign in and approve. Then call login_status with the returned login_id until it returns the API key (the link and login_id expire after 10 minutes). Not for OAuth connections (ChatGPT apps, Claude connectors): there the user connects Hey Anon with the client's own Connect button, because the key cannot be saved as a header. Call it right after installation (onboarding), when tools fail with "API key not set", or when the user wants to connect; no API key required. Go through the whole flow yourself without asking the user to confirm each step; involve them only when you cannot sign in. | Changes data |
| login_status | Finish a login started with the login tool: waits up to 25 seconds for the approval, then answers. While it is pending, keep calling it on your own (do not ask the user whether to continue) until it completes or expires. "pending": the user has not approved yet, call again. "completed": returns a new Hey Anon API key (named "MCP <date>"); when the account had no wallets, an EVM, a Solana and a TON wallet were created first. Save the key immediately as the X-API-Key header of this MCP server in the client config and reconnect; it is shown only once and the login_id cannot be reused. "denied" / "expired": start again with login. Clients with the io.modelcontextprotocol/tasks extension get an MCP task instead and poll tasks/get. | Changes data |
| ping | Health check for the Hey Anon MCP server. Returns "pong" and the server time (ISO 8601). No API key required. | Read-only |
| portfolio_cex | 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. | Read-only |
| portfolio_defi | DeFi positions (LP, staking, lending, vaults, etc.) for every user wallet (addresses taken from wallet_list). Returns JSON [{ walletAddress, data }]. | Read-only |
| portfolio_tokens | 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. | Read-only |
| portfolio_transactions | Recent transactions for every user wallet (addresses taken from wallet_list). Returns JSON [{ walletAddress, data }]. Output can be large with many wallets. | Read-only |
| projects | 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. | Read-only |
| scheduled_task_delete | Delete (cancel) a scheduled task by id. Irreversible: the automation will not run again. Returns a confirmation. | Destructive |
| scheduled_task_get | Get one scheduled task by id (from scheduled_task_list). Returns id, description, status, type and taskExecutorResponse (the last execution result). | Read-only |
| scheduled_task_list | 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. | Read-only |
| transfer_asset | 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). | Destructive |
| transfer_native | 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). | Destructive |
| wallet_list | 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. | Read-only |
| whoami | Check which Hey Anon account the API key of this connection belongs to: account id, account type (e.g. privy), Privy user id, creation date, and the number of wallets per type. Use it to verify a login (an authenticated call; ping alone does not prove the key works). Read-only. | Read-only |
Change history
- ask_anon: input schema changed
- ask_anon: description changed (+"the user's request" +"It can execute transactions and returns a Message ID. Anon plans and executes the operation; you only pass the request on: use the user's own words and language, do not build the transaction, look up routes, compute amounts or split it into steps yourself, and add only what Anon cannot know (wallet addresses, details from earlier in the conversation)." +"an")
- server instructions changed (+"If the client's own OAuth sign-in for this server fails (e.g. "codex mcp login" or "claude mcp" auth returns 403 or" +"detected"), do" +"remove the server: it connects without a key, and login, login_status and whoami work without one. The")
- whoami: tool added
- login_status: tool added
- login: tool added
- get_api_key_setup_url: tool removed
- background_task_list: tool removed
- background_task_delete: tool removed
- background_task: tool removed
- ask_anon: description changed (+"Message" +"anon_message" +"(every 2-3 s)")
- anon_message: tool added
- abort: description changed (+"keep polling anon_message until" +"message is done." -"wait for")
- server instructions changed (+"ping, login" +"login_status" +"key; whoami checks which account the key belongs to.")
- Listed (registry)
| Source | Listing | First seen | Last seen | Versions |
|---|---|---|---|---|
| Official MCP Registry | io.github.RealWagmi/heyanon | 13 Oct 2026 | 4 Nov 2026 | 1 |