# HeyAnon MCP (remote · api.heyanon.ai)

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

- Trust score: 66/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-17

## Components

- remote · `api.heyanon.ai`: 66/100 (this document), [markdown](https://verifymcp.io/servers/realwagmi-heyanon/api.md), [page](https://verifymcp.io/servers/realwagmi-heyanon/api)

## Channel facts

- Endpoint: `https://api.heyanon.ai/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-17.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (ask_anon).
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 74/100
  - AI-judged instruction clarity (excellent).
  - 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.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 13/100
  - Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (29% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 5 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 22 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### 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.

### Claude

```bash
claude mcp add --transport http realwagmi-heyanon 'https://api.heyanon.ai/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "realwagmi-heyanon": {
      "url": "https://api.heyanon.ai/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "realwagmi-heyanon": {
      "type": "http",
      "url": "https://api.heyanon.ai/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.realwagmi-heyanon]
url = "https://api.heyanon.ai/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "realwagmi-heyanon": {
      "type": "remote",
      "url": "https://api.heyanon.ai/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add realwagmi-heyanon --url 'https://api.heyanon.ai/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  realwagmi-heyanon:
    url: "https://api.heyanon.ai/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "realwagmi-heyanon": {
      "Transport": "http",
      "Url": "https://api.heyanon.ai/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add realwagmi-heyanon -t streamable-http -u 'https://api.heyanon.ai/mcp'
```

### Other

```json
{
  "mcpServers": {
    "realwagmi-heyanon": {
      "type": "http",
      "url": "https://api.heyanon.ai/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-16 (score 66, +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.

### 2026-10-14 (score 65, +1)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-13 (score 64)

First indexed and scored.

## MCP tools (21)

### `ping` (~36 tokens)

Ping

Health check for the Hey Anon MCP server. Returns "pong" and the server time (ISO 8601). No API key required.

### `get_api_key_setup_url` (~82 tokens)

API key setup URL

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.

### `wallet_list` (~91 tokens)

List wallets

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.

### `ask_anon` (~462 tokens)

Ask Anon

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.

Input parameters:

- `files` (array): Optional attachments (publicly reachable URL + MIME type), e.g. a screenshot or document for Anon to analyze
- `text` (string, required): 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, required): 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…

### `ask_gemma` (~138 tokens)

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.

Input parameters:

- `text` (string, required): Research question for Gemma, e.g. "Analyze token 0x... on Sonic" or "Latest news about Aave"

### `isProcessing` (~48 tokens)

Is Anon processing

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).

### `abort` (~45 tokens)

Abort Anon request

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.

### `projects` (~58 tokens)

List supported 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.

### `scheduled_task_list` (~122 tokens)

List scheduled tasks

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.

### `scheduled_task_get` (~54 tokens)

Get scheduled task

Get one scheduled task by id (from scheduled_task_list). Returns id, description, status, type and taskExecutorResponse (the last execution result).

Input parameters:

- `id` (string, required): Scheduled task ID (from scheduled_task_list)

### `scheduled_task_delete` (~51 tokens)

Delete scheduled task

Delete (cancel) a scheduled task by id. Irreversible: the automation will not run again. Returns a confirmation.

Input parameters:

- `id` (string, required): Scheduled task ID to delete (from scheduled_task_list)

### `portfolio_tokens` (~65 tokens)

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.

### `portfolio_transactions` (~38 tokens)

Portfolio transactions

Recent transactions for every user wallet (addresses taken from wallet_list). Returns JSON [{ walletAddress, data }]. Output can be large with many wallets.

### `portfolio_defi` (~44 tokens)

Portfolio DeFi positions

DeFi positions (LP, staking, lending, vaults, etc.) for every user wallet (addresses taken from wallet_list). Returns JSON [{ walletAddress, data }].

### `portfolio_cex` (~92 tokens)

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.

Input parameters:

- `address` (string): EVM wallet address (from wallet_list). Required when the account has several EVM wallets.

### `background_task_list` (~67 tokens)

List background tasks

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 }.

Output parameters:

- `tasks` (array)

### `background_task` (~130 tokens)

Get background task

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.

Input parameters:

- `id` (string, required): Background task ID (returned by ask_anon or background_task_list)

Output parameters:

- `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)

### `background_task_delete` (~38 tokens)

Delete background task

Delete a background task record by id.

Input parameters:

- `id` (string, required): Background task ID to delete (from ask_anon or background_task_list)

Output parameters:

- `deleted` (boolean)
- `id` (string)

### `transfer_native` (~338 tokens)

Transfer native coin

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).

Input parameters:

- `allBalance` (boolean): true = send the entire balance of the asset instead of amount. Only when the user explicitly asked to send everything.
- `amount` (string, required): 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, required): Network name: ethereum, optimism, bsc, gnosis, polygon, sonic, zksync, base, avalanche, arbitrum, scroll, solana, ton, hyperevm, plasma, monad, robinhood
- `from` (string, required): Sender: one of the user wallet addresses from wallet_list, of the type matching the network (evm / solana / ton)
- `to` (string, required): 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…

Output parameters:

- `hash` (string): Transaction hash
- `link` (string): Block explorer link to the transaction

### `transfer_asset` (~353 tokens)

Transfer token

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).

Input parameters:

- `allBalance` (boolean): true = send the entire balance of the asset instead of amount. Only when the user explicitly asked to send everything.
- `amount` (string, required): 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, required): Token contract / mint address on that network (not the symbol)
- `chain` (string, required): Network name: ethereum, optimism, bsc, gnosis, polygon, sonic, zksync, base, avalanche, arbitrum, scroll, solana, ton, hyperevm, plasma, monad, robinhood
- `from` (string, required): Sender: one of the user wallet addresses from wallet_list, of the type matching the network (evm / solana / ton)
- `to` (string, required): 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…

Output parameters:

- `hash` (string): Transaction hash
- `link` (string): Block explorer link to the transaction

### `address_book_list` (~192 tokens)

List address book

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.

Input parameters:

- `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

Output parameters:

- `pagination` (object)
- `whitelist` (array)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/realwagmi-heyanon/api#diagnostics

## Score history

- 2026-10-17: 66
- 2026-10-16: 66
- 2026-10-15: 65
- 2026-10-14: 65
- 2026-10-13: 64

## Common questions

### 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.

## Links

- Remote endpoint: https://api.heyanon.ai/mcp
- Repository: https://github.com/RealWagmi/heyanon-ai-cursor-plugin
- Website: https://heyanon.ai/
- Changelog RSS feed: https://verifymcp.io/servers/realwagmi-heyanon/api.xml
- Changelog JSON feed: https://verifymcp.io/servers/realwagmi-heyanon/api.json
- HTML version of this page: https://verifymcp.io/servers/realwagmi-heyanon/api
