MCP Server — Connect an Agent to Conyr
The Conyr MCP server exposes the full on-chain intelligence tool catalog over the Model Context Protocol, so any MCP-capable agent (Claude Code, Claude Desktop, Cursor, and others) can query Solana wallet and token intelligence directly — no glue code. Same data as the REST API, same API keys, same tiers.
Two surfaces are exposed:
- 40+ individual tools (
query_*) for targeted lookups — buyer quality, bundles, wallet X-ray, PnL, provenance, similarity, coordination, wash trades, and more. - 4 composite “breakdown” tools that fan out many readers in one call and return a complete, evidence-linked dossier. Reach for these first on broad questions.
Every tool result carries an evidenceUrl pointing at the Conyr terminal page that
backs the data, so an agent can always cite where a finding came from.
Connect (remote)
The hosted endpoint is the recommended path — nothing to install, and it reuses the Conyr API key you already have.
https://mcp.conyr.ai/mcpAuthenticate with Authorization: Bearer <YOUR_CONYR_KEY>. The key’s tier governs which
tools are callable and the per-key request rate, exactly as it does on the REST API.
claude mcp add --transport http conyr https://mcp.conyr.ai/mcp \
--header "Authorization: Bearer YOUR_API_KEY"Then ask, e.g. “Use conyr to give me a deep dive on token <mint>.”
Tools by tier
Tool access mirrors the REST tiers. A call above your tier returns a tier_insufficient
error naming the tier required.
| Tier | Individual tools | Breakdown tools |
|---|---|---|
| Free | query_buyer_quality, query_token_bundle_summary, resolve_token_identifier | — |
| Layer 2 | wallet intelligence — query_wallet_performance, query_wallet_trades, query_wallet_positions, query_wallet_xray, query_wallet_provenance, query_similar_wallets, query_leaderboard, query_holder_breakdown, query_token_holder_pnl, fetch_wallet_labels_batch | wallet_overview |
| Layer 3 | everything else — bundles, wash trades, entanglement, the full coordination surface (query_wallet_coordination, query_token_campaigns, query_token_crowd, query_wallet_follows, …), minority buyers, late-retail | token_deep_dive, token_coordination_report, wallet_network_report |
The breakdown tools
Each returns one merged object with sections, a partial flag, an errors map (a
single store hiccup degrades one section to null rather than failing the whole call),
and evidenceUrl.
| Tool | Tier | What it fans out |
|---|---|---|
wallet_overview | L2 | X-ray classification, coordination block, funding provenance, 30-day performance, behaviorally-similar wallets |
token_deep_dive | L3 | risk signal, bundle summary, holder-label breakdown, holder-PnL, buyer quality, security row |
token_coordination_report | L3 | active/recent campaigns, per-minute crowd state, entity-weighted concentration, early clustered buyers, late-retail exit liquidity, wash-trade alerts |
wallet_network_report | L3 | full follow-edge list (both directions), entity/farm membership + roster, bundle-entanglement clusters |
Detection, not trading signals. The coordination, minority-buyer, and forming-push tools describe what is happening on-chain — coordinated buying, farm clustering, wash setups. The same patterns describe manipulation and organic accumulation; Conyr makes no claim about which, and none of this is financial advice.
Self-hosting (stdio)
The mcp-server binary also speaks stdio for local, single-user clients.
stdio is trusted — it bypasses tier gating — so it is only appropriate when you run your own Conyr backend (indexer + API stores). It connects to PostgreSQL, ClickHouse, and NATS at start, so it is not a zero-dependency desktop add-on.
MCP_TRANSPORT=stdio mcp-serverClaude Desktop, pointing at a self-hosted binary:
{
"mcpServers": {
"conyr": {
"command": "/path/to/mcp-server",
"args": ["stdio"],
"env": {
"API_PG_URL": "postgresql://user:pass@host:5432/conyr",
"API_CLICKHOUSE_URL": "http://localhost:8123",
"API_NATS_URL": "nats://localhost:4222"
}
}
}
}Run the same binary in http mode to serve the remote surface yourself; set
MCP_BIND_ADDR and MCP_ALLOWED_HOSTS (your public hostname, for DNS-rebinding
protection). See mcp-server/.env.example for the full variable list.