HeyAnon MCP
REMOTE · API.HEYANON.AI
HeyAnon on-chain agent: wallets, portfolios, DeFi and CEX actions, transfers, Gemma research.
Available components
Last scanned (8 hours ago)
Scores higher than 56% of remote servers
Reachable. Last reached 17 Oct 2026.
Category Crypto and Web3
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security57
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (ask_anon). See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability74
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2766 tokens (~131/item across 21 items; 21 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 Management13
- Stability observed for 4 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
- Structured output schemas are declared (29% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 5 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 22 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
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.
- 16 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 14 Oct 26 +1
- Stability: unverified → 0.03 ▲ functional
- 13 Oct 26 64
First indexed and scored.
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 17 Oct 2026 · Probed https://api.heyanon.ai/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=api.heyanon.ai | CN=YE2,O=Let's Encrypt,C=US | 9 Oct 2026 | 7 Jan 2027 | ECDSA 256 | ECDSA-SHA384 | 550ba212c7a061183867af9fde997e92dd0 |
| SANs: api.heyanon.ai | ||||||
| CN=YE2,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 4df3b15dd6c0784c507cd37b58e6f115 |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of api.heyanon.ai. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| ai. | present | 3799 | 8 | Verified |
| heyanon.ai. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://api.heyanon.ai/mcp | Verified | 200 | |
| http (plaintext) | http://api.heyanon.ai/mcp | HTTPS enforced | 301 | https://api.heyanon.ai/mcp |
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 →
abort Abort Anon request ~45
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
address_book_list List address book ~192
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.
| Name | Type | Req | Description |
|---|---|---|---|
| chains | array | – | Only entries saved for these networks: ethereum, optimism, bsc, gnosis, polygon, sonic, zksync, base, avalanche, arbitrum, scroll, solana, ton, hyperevm, plasma, monad, robinhood |
| page | integer | – | Page number, starting at 1 |
| search | string | – | Filter by name or address substring |
| size | integer | – | Entries per page |
| Name | Type | Req | Description |
|---|---|---|---|
| pagination | object | – | – |
| whitelist | array | yes | – |
No examples provided.
ask_anon Ask Anon ~462
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.
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | – | Optional attachments (publicly reachable URL + MIME type), e.g. a screenshot or document for Anon to analyze |
| text | string | yes | Natural-language message or instruction for Anon. Phrase information requests as questions, e.g. "What is my S balance on Sonic?" or "Show my Aave positions". Action instructions such as "Swap 10 USD… |
| wallets | array | yes | Wallet addresses to attach: at least one, and at most ONE per wallet type (e.g. one evm, one solana, one ton). Two addresses of the same type are rejected by the backend ("Multiple wallets found for… |
No output schema declared.
No examples provided.
ask_gemma Ask Gemma ~138
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.
| Name | Type | Req | Description |
|---|---|---|---|
| text | string | yes | Research question for Gemma, e.g. "Analyze token 0x... on Sonic" or "Latest news about Aave" |
No output schema declared.
No examples provided.
background_task Get background task ~130
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Background task ID (returned by ask_anon or background_task_list) |
| Name | Type | Req | Description |
|---|---|---|---|
| createdAt | string | – | – |
| id | string | – | – |
| logs | array | – | Execution trace lines, appended while the task runs |
| prompt | string | – | – |
| result | string | – | Anon reply; present once status is completed |
| status | string | – | pending | completed | failed |
| updatedAt | string | – | – |
No examples provided.
background_task_delete Delete background task ~38
Delete a background task record by id.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Background task ID to delete (from ask_anon or background_task_list) |
| Name | Type | Req | Description |
|---|---|---|---|
| deleted | boolean | yes | – |
| id | string | yes | – |
No examples provided.
background_task_list List background tasks ~67
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 }.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| tasks | array | yes | – |
No examples provided.
get_api_key_setup_url API key setup URL ~82
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
isProcessing Is Anon processing ~48
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).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
ping Ping ~36
Health check for the Hey Anon MCP server. Returns "pong" and the server time (ISO 8601). No API key required.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
portfolio_cex Portfolio CEX ~92
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.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | EVM wallet address (from wallet_list). Required when the account has several EVM wallets. |
No output schema declared.
No examples provided.
portfolio_defi Portfolio DeFi positions ~44
DeFi positions (LP, staking, lending, vaults, etc.) for every user wallet (addresses taken from wallet_list). Returns JSON [{ walletAddress, data }].
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
portfolio_tokens Portfolio tokens ~65
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
portfolio_transactions Portfolio transactions ~38
Recent transactions for every user wallet (addresses taken from wallet_list). Returns JSON [{ walletAddress, data }]. Output can be large with many wallets.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
projects List supported projects ~58
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
scheduled_task_delete Delete scheduled task ~51
Delete (cancel) a scheduled task by id. Irreversible: the automation will not run again. Returns a confirmation.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Scheduled task ID to delete (from scheduled_task_list) |
No output schema declared.
No examples provided.
scheduled_task_get Get scheduled task ~54
Get one scheduled task by id (from scheduled_task_list). Returns id, description, status, type and taskExecutorResponse (the last execution result).
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Scheduled task ID (from scheduled_task_list) |
No output schema declared.
No examples provided.
scheduled_task_list List scheduled tasks ~122
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
transfer_asset Transfer token ~353
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).
| Name | Type | Req | Description |
|---|---|---|---|
| allBalance | boolean | – | true = send the entire balance of the asset instead of amount. Only when the user explicitly asked to send everything. |
| amount | string | yes | Amount as an integer string in the smallest unit of the asset (wei, lamports, nanoton, token base units), e.g. "1000000000000000000" = 1 ETH (18 decimals); 1 USDC = "1000000" (6 decimals) |
| asset | string | yes | Token contract / mint address on that network (not the symbol) |
| chain | string | yes | Network name: ethereum, optimism, bsc, gnosis, polygon, sonic, zksync, base, avalanche, arbitrum, scroll, solana, ton, hyperevm, plasma, monad, robinhood |
| from | string | yes | Sender: one of the user wallet addresses from wallet_list, of the type matching the network (evm / solana / ton) |
| to | string | yes | Recipient address on the same network, exactly as the user gave it. If the user names a saved contact instead of an address, resolve it with address_book_list and confirm the address with the user fi… |
| Name | Type | Req | Description |
|---|---|---|---|
| hash | string | yes | Transaction hash |
| link | string | yes | Block explorer link to the transaction |
No examples provided.
transfer_native Transfer native coin ~338
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).
| Name | Type | Req | Description |
|---|---|---|---|
| allBalance | boolean | – | true = send the entire balance of the asset instead of amount. Only when the user explicitly asked to send everything. |
| amount | string | yes | Amount as an integer string in the smallest unit of the asset (wei, lamports, nanoton, token base units), e.g. "1000000000000000000" = 1 ETH (18 decimals); 1 USDC = "1000000" (6 decimals) |
| chain | string | yes | Network name: ethereum, optimism, bsc, gnosis, polygon, sonic, zksync, base, avalanche, arbitrum, scroll, solana, ton, hyperevm, plasma, monad, robinhood |
| from | string | yes | Sender: one of the user wallet addresses from wallet_list, of the type matching the network (evm / solana / ton) |
| to | string | yes | Recipient address on the same network, exactly as the user gave it. If the user names a saved contact instead of an address, resolve it with address_book_list and confirm the address with the user fi… |
| Name | Type | Req | Description |
|---|---|---|---|
| hash | string | yes | Transaction hash |
| link | string | yes | Block explorer link to the transaction |
No examples provided.
wallet_list List wallets ~91
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
How do I install the HeyAnon MCP server?
HeyAnon MCP is a hosted endpoint at https://api.heyanon.ai/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · api.heyanon.ai
claude mcp add --transport http realwagmi-heyanon 'https://api.heyanon.ai/mcp'
What is the HeyAnon MCP server?
HeyAnon MCP is listed in the public MCP registry as io.github.RealWagmi/heyanon. HeyAnon on-chain agent: wallets, portfolios, DeFi and CEX actions, transfers, Gemma research. This page covers its hosted endpoint (https://api.heyanon.ai/mcp).
Is the HeyAnon MCP server safe to use?
HeyAnon MCP scores 66 out of 100 on VerifyMCP. 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 HeyAnon MCP server expose?
HeyAnon MCP exposes 21 tools: ping, get_api_key_setup_url, wallet_list, ask_anon, ask_gemma, and 16 more. Their descriptions and schemas cost roughly 2,544 tokens of context every time the server is loaded.
Does the HeyAnon MCP server require authentication?
No. We connected to HeyAnon MCP without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the HeyAnon MCP server still maintained?
HeyAnon MCP is still listed as active in the MCP registry. We last reached this channel on 17 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.