MCP server
Official @anaxer/mcp — a local stdio MCP server that wraps @anaxer/sdk. Drop a few lines into Claude Desktop, Claude Code, or Cursor and your agent can query Anaxer with typed tools. No hosted MCP URL in v1.
Install
Requires Node.js ≥ 20. Hosts usually run it via npx — no global install needed.
npx -y @anaxer/mcpWithout ANAXER_API_KEY the process exits with a clear stderr message (it never speaks MCP JSON on stdout until configured).
Setup
Add the block below to your MCP host config and set ANAXER_API_KEY to a key from the console. Never put the key in tool arguments.
Cursor
Project file .cursor/mcp.json (or your Cursor MCP settings UI).
{
"mcpServers": {
"anaxer": {
"command": "npx",
"args": ["-y", "@anaxer/mcp"],
"env": {
"ANAXER_API_KEY": "YOUR_KEY"
}
}
}
}Claude Desktop
Edit claude_desktop_config.json (Claude → Settings → Developer).
{
"mcpServers": {
"anaxer": {
"command": "npx",
"args": ["-y", "@anaxer/mcp"],
"env": {
"ANAXER_API_KEY": "YOUR_KEY"
}
}
}
}Claude Code
Same mcpServers shape in your Claude Code MCP config.
{
"mcpServers": {
"anaxer": {
"command": "npx",
"args": ["-y", "@anaxer/mcp"],
"env": {
"ANAXER_API_KEY": "YOUR_KEY"
}
}
}
}Tools
Nine read-only tools. List tools return one page; call again with cursor set to the previous next until next is null. Default limit is 20 to keep agent context small.
| Tool | Answers |
|---|---|
| get_token_metadata | Name / symbol / supply / socials for one mint |
| get_tokens_metadata | Batch metadata (≤30 mints) |
| get_token_price | Latest USD + SOL price and market cap |
| get_token_prices | Batch prices (≤30 mints) |
| list_token_trades | One page of recent swaps for a mint |
| list_creations | One page of recent launches |
| list_graduations | One page of recent graduations |
| get_launchpad_stats | Aggregate launchpad stats over a window |
| tail_stream | Bounded live WebSocket batch (trades / creations / graduations / prices) |
REST list tools take a singular source string. tail_stream filters use a sources array (WebSocket shape).
tail_stream
MCP tools are request/response, so the live feed is exposed as a bounded collect: subscribe → gather events → unsubscribe → return the batch.
maxEvents— default 20, cap 100timeoutMs— default 10_000, cap 30_000- Ends when either cap hits first
Per-channel filter keys:
| Channel | Filter keys |
|---|---|
| trades | sources, mints, wallets, minVolumeUsd, maxVolumeUsd |
| creations | sources, enriched, excludeMayhem |
| graduations | sources, excludeMayhem, minLiquiditySol |
| prices | sources, mints |
Environment
| Variable | Required | Notes |
|---|---|---|
| ANAXER_API_KEY | yes | Bearer key for REST + WebSocket |
| ANAXER_BASE_URL | no | Default https://api.anaxer.com |
| ANAXER_WS_URL | no | Override derived …/v1/stream URL |
Troubleshooting
- Wrong API key on REST — the tool returns
unauthorized: …. Fix the env and call again (no restart needed). - Wrong API key on
tail_stream— WebSocketunauthorizedis terminal for the shared socket. Fix the key, then restart the MCP server process (reload the host / re-run npx). subscription_limit— each opentail_streamholds one plan subscription until it returns. Overlapping tails on free/low plans can hit the cap; hosts normally serialize tool calls.
v1 omissions
Intentional gaps (same surface as @anaxer/sdk), not bugs:
- No
tail_stream("transfers")and nolist_programs - No remote / hosted MCP (Streamable HTTP) — local stdio only
- No gap recovery on reconnect
- Tools only — no MCP resources or prompts
@anaxer/mcp. Long-lived bots and backends should use @anaxer/sdk directly.