Skip to main content
Glama
README.md
# Arc Market MCP

An [MCP](https://modelcontextprotocol.io) 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`** — cheap gate on a launched token: its USDC pool, fee, swap count, decoy verdict.
- **`arc_token_sellsim`** — a **live honeypot test**: buy-then-sell simulated against current chain state,
  reporting the round-trip fraction recovered. Not a heuristic — an actual simulation.
- **`arc_pool_decoy`** — is this v4 poolId the real venue for its token, or a high-fee decoy?
- **`arc_rpc_consensus`**, **`arc_health`**, **`arc_agent_card`** — trust, liveness, and identity.

### Agent Directory — who is actually on Arc

~137 agents 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 extremely concentrated.** One host holds **115 of 137 ids (83.9%)** and one owner
  holds 100 (73%). 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:

```json
{ "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.

## Install

Runs over stdio via `npx` — no global install needed.

```bash
npx arc-market-mcp
```

### Claude Desktop

Add to `claude_desktop_config.json`:

```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](https://eips.ethereum.org/) 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

```bash
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

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