Skip to main content
Glama

Arc 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). MATCH only 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 is NO_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=true is much narrower than payment=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_DATA is never a zero. A missing or partial reading returns status: "NO_DATA", not an empty success. Absence of a signal is stated, never disguised as a value of the signal.

  • REFUSED means 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 data and 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.

Related MCP server: @arcnow/mcp

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

Available Tools

12 tools
arc_agent_cardB

Fetch a BABA Capital ERC-8004 agent-card (the /.well-known/agents/.json identity document). Known names: 'baba-arc-data', 'baba-arc-yield'. Shows the agent's registry, agentId (null until registered), and x402 payment network.

Inputs: name (required).

arc_agent_getA

Full record for one Arc agent by agentId: its on-chain owner and agentURI, the RAW card as served, and a validation report showing the evidence behind every flag (which key supplied the name, which supplied the skills, the exact key and value that prove an x402 or payment declaration, redirects, robots handling, and any fetch error). Use this to check the directory's claims yourself rather than trusting them.

Inputs: agentId (required).

arc_agents_listA

List the ERC-8004 agents registered on Arc, from a validated hourly crawl. Each row carries agentId, owner, agentURI, host, name, skills, status (OK | UNRESOLVED | INVALID), whether it declares x402, and how concentrated its host and owner are. Optional filters: status, host, owner. Paged. An agent whose card will not resolve is listed as UNRESOLVED, never silently dropped.

Inputs: host, limit, owner, offset, +1 more.

arc_agents_statsA

Shape of Arc's ERC-8004 agent registry in one call: total ids, distinct owners, distinct hosts, how many resolve, how many declare x402 vs payment generally, status counts, and the most concentrated hosts and owners with their share of the registry. Facts only — the concentration numbers are stated so you can draw your own conclusion.

Inputs: no named parameters.

arc_healthA

Liveness of the Arc Data API and the list of routes it serves. Returns the §3.5 envelope. Call this first to confirm the API base and see which live routes are wired.

Inputs: no named parameters.

arc_launchpadsA

Launchpad concentration on Arc over the recent window: HHI, pools created, v3 vs v4 launch counts, distinct deployer callers, and per-launchpad share/graduations/dead-on-arrival. NO_DATA until an hourly reading has been written; partial windows are NO_DATA, never a false zero.

Inputs: no named parameters.

arc_lp_aprA

Realised range-APR for Arc LP pools from the latest scan. Optional filters: pair (e.g. 'usdc/weth'), venue (e.g. 'aero-lite'), range_pct. APR assumes price stayed in range over the window; the warning states this. NO_DATA if no scan has been written.

Inputs: pair, venue, range_pct.

arc_pool_decoyA

Decoy-pool verdict for a specific v4 poolId: whether this pool is the real venue for its token or a high-fee decoy that a naive buyer would route into. Explains the refusal reason. NO_DATA if the poolId is unknown to the API.

Inputs: poolId (required).

arc_rpc_consensusA

How many of Arc's four public RPCs agreed at the last reading (of 4), and the head they agreed on. Below 2 the status is REFUSED — treat any Arc figure as not cross-checked until they agree again. A cheap trust gate before acting on other Arc data.

Inputs: no named parameters.

arc_token_screenA

Screen a launched Arc token by contract address: its USDC-paired pool, fee, recent swap count, and the decoy-pool verdict (a fee above the cap, or a dynamic pool whose swaps charged above the cap, is refused). A cheap gate — it does NOT run a live buy/sell. NO_DATA if the token has not traded in the API's discovery window.

Inputs: ca (required).

arc_token_sellsimA

Honeypot test for an Arc token: a LIVE sell-simulation (buy then sell in one simulated transaction against current chain state) reporting the round-trip fraction recovered. Below ~0.9 the token is likely a honeypot or a punitive-tax trap. This is a heavy, paid-tier route. NO_DATA if the pool cannot be simulated (it is never scored zero on a failed simulation).

Inputs: ca (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 12 tools

    Disambiguation4/5

    Most tools are clearly distinct: health, launchpads, LP APR, RPC consensus, token screening/simulation, pool decoy, and agent directory operations each target a different resource. The only mild overlap is arc_agents_list vs arc_agents_search vs arc_agent_get, but their descriptions make the distinction clear (list all, search, get one).

    Naming Consistency4/5

    All tools use the arc_ prefix with a noun or noun_verb pattern: arc_health, arc_launchpads, arc_lp_apr, arc_rpc_consensus, arc_token_screen, arc_token_sellsim, arc_pool_decoy, arc_agent_card, arc_agents_list, arc_agent_get, arc_agents_search, arc_agents_stats. The pattern is consistent, though arc_token_sellsim is slightly less readable than arc_token_sell_sim would be.

    Tool Count5/5

    12 tools is well within the ideal 3-15 range. The set covers two coherent domains (Arc DEX data and ERC-8004 agent registry) without feeling bloated; each tool has a specific purpose and the count feels appropriate for the server's scope.

    Completeness4/5

    The DEX side covers health, launchpads, LP APR, RPC consensus, token screening, sell-simulation, and decoy-pool detection — a solid analytical surface. The agent side covers list, get, search, and stats, which is complete for a read-only directory. Minor gaps: no tool for historical LP APR or token price/quote, and no agent registration/update (though that may be out of scope for a read-only MCP).

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      Lets MCP-capable AI agents interact with the Arcade DEX and launchpad on Circle's Arc L1 to discover markets, get quotes, and execute trades via contract-call descriptors.
      8
      10 npm
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Enables an AI assistant to read token bonding curves, quote trades with fee breakdowns, monitor graduation progress, and optionally launch, buy, sell, or rescue tokens on Arc via arcnow.io.
      9
      4 npm
      GPL 3.0
    • A
      license
      A
      quality
      C
      maintenance
      Enables LLM agents to inspect Proof of Architect NFT collection stats, token data, PoW difficulty and pricing, and verify mined nonces and craft commits on Arc testnet without sending transactions.
      7
      MIT