MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Payments & trading

HeyAnon MCP

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

Checks passed
15 / 22

0 failed · 7 not measured

Median response
132 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
21

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Responded

The server completed its last measured handshake. This is an observation, not a guarantee.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
103
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
400
Publisher identityCan the publisher be traced to its source?
402

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 141 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name heyanon-mcp.

  • Pass
    Lists tools

    tools/list returned 21 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 132 ms over 2 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 140 ms over 2 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    2 of 2 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Pass
    Stable tool list

    No tool was removed and no required parameter was added in the last 30 days.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Pass
    Parameters documented

    24 of 24 parameters have a description (100%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Not measured
    Website matches publisher

    This namespace is not a reverse domain, so the website comparison does not apply.

  • Pass
    Source repo linked

    A repository URL is on file.

  • Pass
    Repo owner matches

    The GitHub repository owner matches the namespace login.

  • Pass
    Recently updated

    Updated 2026-10-13T07:45:38.152828Z, within 180 days.

  • Not measured
    Open-source licence

    The GitHub licence lookup has not returned an OSI result yet.

Start using HeyAnon MCP

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http heyanon-mcp https://api.heyanon.ai/mcp

Capabilities

Tools 21

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.

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

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

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

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

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

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

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

Discovered
ping

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

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

Discovered
portfolio_defi

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

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

Discovered
portfolio_transactions

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

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

Discovered
scheduled_task_delete

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

Discovered
scheduled_task_get

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

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

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

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

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

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

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected141 ms21
Connected123 ms21