Set up
Runs on your computer. Pick your agent and operating system.
Before you start
- Node.js 20 or newer
{
"mcpServers": {
"babaanalytix-commits-arc-market-mcp": {
"command": "npx",
"args": [
"-y",
"arc-market-mcp"
]
}
}
}same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12
Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs
README
synced Oct 17, 2026Arc Market MCP
An MCP server that reads live market state on Arc — Circle's L1
(chainId 5042) — through the BABA Capital Arc Data API.
Circle publishes an Arc MCP, but it serves documentation. This one reads chain state:
arc_launchpads— launchpad concentration (HHI), pools created, v3 vs v4 launch counts, distinct deployer callers, and per-launchpad share / graduations / dead-on-arrival.arc_lp_apr— realised range-APR for LP pools from the latest scan (filter by pair / venue / range).arc_rpc_consensus— how many of Arc's four public RPCs agree this block, before you trust a figure.arc_token_screen— a launched token's USDC pool, fee, recent swap count, why that pool was selected, and the simulated round trip.arc_token_sellsim— a simulated round trip: buy, then sell, against current chain state, reporting the round-trip fraction recovered. Not a heuristic — an actual simulation.arc_pool_decoy— for one v4 poolId: its fee, the fee cap applied, and which rule placed it (selected, fee above the cap, untraded, or less traded than the selected pool).arc_rpc_consensus,arc_health,arc_agent_card— trust, liveness, and identity.
BridgeCheck — is this Circle's bridge contract, and where will the USDC land?
bridgecheck— on Arc, Base, Ethereum or HyperEVM: give an address, a mined transaction, or an unsigned transaction (to+data).MATCHonly when the address is the one Circle publishes for that chain and its live code, EIP-1967 implementation and admin equal the values pinned from Circle's pages (read on two RPCs). Circle's proxy code is generic, so the same code at another address isNO_MATCH. Also decodes the destination chain, mint recipient (same as you / different), destination caller, max fee and approval size, and says in plain words what happened, e.g. "The contract you're calling is not Circle's. The burn inside is Circle's. Recipient: same as you." Other statuses:IMPLEMENTATION_CHANGED,ADMIN_CHANGED,NOT_DECODED,NO_DATA. Every answer lists what it did not check.
Agent Directory — who is actually on Arc
337 agents (crawl of 2026-09-29 12:47 UTC) are registered in the ERC-8004 registry on Arc and nothing else lets you see who they are. Circle builds the rails; this is the phone book.
arc_agents_list— every registered agent: agentId, owner, agentURI, host, name, skills, validation status, and how concentrated its host and owner are.arc_agent_get— one agent in full, including the raw card as served and a validation report giving the evidence for every flag, so you can check the directory rather than trust it.arc_agents_search— "find me an Arc agent that does X and that I can pay."arc_agents_stats— the registry's shape in one call.
Two things worth knowing, both measured rather than assumed:
x402=trueis much narrower thanpayment=true. Most of this registry prices in USDC via ERC-8183 settlement, which is not x402. Each match carries the exact key and value that prove it.- The registry is concentrated. The largest host holds 115 of 337 ids (34.1%) and the largest owner holds 100 (29.7%). The directory publishes those counts and lets you draw the conclusion — it attaches no label or rating to any agent, because a directory that editorialises is worth nothing.
A card that will not resolve is listed as UNRESOLVED, never quietly dropped; a partial crawl comes
back NO_DATA with coverage naming the ids it could not reach. BABA Capital operates agentIds 135
and 136; they are listed on the same terms as everyone else and get no ranking advantage.
Honesty model (read this)
Every data route returns one envelope:
{ "chain": "arc", "chainId": 5042, "asof": "…", "head": 123, "status": "OK|NO_DATA|REFUSED",
"coverage": {…}, "rpc_consensus": true, "data": {…}, "warnings": [], "source": "…", "version": "…" }
NO_DATAis never a zero. A missing or partial reading returnsstatus: "NO_DATA", not an empty success. Absence of a signal is stated, never disguised as a value of the signal.REFUSEDmeans the API declined (e.g. fewer than 2 of 4 RPCs agreed). The reading was not cross-checked; weigh it accordingly.- This server passes the envelope through unchanged. It never unwraps
dataand hides the status.
This is a read-only client. It holds no private key, signs nothing, and moves no funds. This is a software tool that reports chain reads. A passing sell-simulation is a snapshot at one block, not a guarantee.
Install
Runs over stdio via npx — no global install needed.
npx arc-market-mcp
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"arc-market": {
"command": "npx",
"args": ["-y", "arc-market-mcp"]
}
}
}
Configuration
| Env var | Default | Meaning |
|---|---|---|
ARC_API_BASE | https://api.babacapital.app | Base for the /arc/* routes. |
ARC_AGENT_CARD_BASE | https://babacapital.app | Base for /.well-known/agents/<name>.json. |
ARC_API_TIMEOUT_MS | 20000 | Per-request timeout (the sellsim route runs a live simulation). |
Pricing
The Arc Data API's free tier is 20 calls/day/IP. Paid calls settle in USDC over Circle Gateway
x402 on Arc (eip155:5042). This package is the reader; payment, when required, is negotiated by the
API's 402 response. The reader never holds funds or keys.
Identity (ERC-8004)
BABA Capital's Arc agents publish ERC-8004 agent-cards at
https://babacapital.app/.well-known/agents/ — baba-arc-data and baba-arc-yield. Fetch one with
arc_agent_card. agentId is null until on-chain registration completes.
Build from source
npm install
npm run build
npm test
node dist/index.js
Provenance
This repository is standalone. Its git history begins on 2026-09-17; it shares no history with any other BABA Capital repository.
License
MIT © 2026 BABA Capital