Cambrian API MCP: Solana and EVM DeFi data, Deep42 social intelligence, and perpetual risk analysis.
Model Context Protocol server for the Cambrian API. It exposes the same product surface as the cambrian CLI for agents that need live DeFi, social intelligence, risk, and API documentation tools.
Every call needs a Cambrian API key supplied by the caller. The hosted server and local package both require one; the server never ships or proxies a shared key.
Create a key at https://console.cambrian.org/. For x402 pay-per-call access
without an API key, use cambrian pay --help; MCP transport still requires a
caller-supplied key.
cambrian_docs for live endpoint and guide docs from https://docs.cambrian.org/llms.txt| Profile | stdio | HTTP | Tool metadata |
|---|---|---|---|
| Progressive (default) | no flag, or --profile progressive | /mcp | Direct endpoint tools with types, required fields, scalar enums, OpenAPI defaults, numeric bounds, and array item types. |
| Compact | --profile compact | /mcp/compact | Three tools: cambrian_docs, cambrian_call, and cambrian_solana_token_snapshot. |
| Full | --profile full | /mcp/full | Direct endpoint tools with complete request descriptions, defaults, constraints, and response-size controls. |
All profiles use the same progressive documentation flow. cambrian_docs
returns the request schema by default. Set detail to response for response
fields. The response view also includes the request schema. Set detail to
full only for examples and all endpoint prose. The full profile does not
preload response documentation for every endpoint.
Progressive omits repeated endpoint descriptions, long patterns, large array
enums, and parameter prose. Call cambrian_docs for these details.
Progressive also omits offset, order_asc, and order_desc. These three are
the same on every endpoint that has them, and Progressive already strips the
per-endpoint sortable-column enum, so repeating them adds about 10 kB to the
tool list and tells the agent nothing. The server instructions name them once,
and every endpoint still accepts them. limit stays, with its maximum, because
it is how an agent bounds a response.
The whole catalog is 141 tools. An agent that only asks about Solana still pays
for 99 EVM tools it will never call. Use --toolsets to load only what you
need.
| Toolset | Tools |
|---|---|
solana | cambrian_solana_* and the Solana token snapshot |
evm | cambrian_base_*, cambrian_ethereum_*, and cambrian_arbitrum_* |
deep42 | cambrian_deep42_* |
risk | cambrian_risk_* |
npx -y cambrian-api-mcp --toolsets solana,risk
CAMBRIAN_TOOLSETS=solana npx -y cambrian-api-mcp
Over HTTP, select per request: https://mcp.cambrian.org/mcp?toolsets=solana.
Omit the option, or pass all, to get every tool. cambrian_docs is always
present, so a narrowed client can still discover and read about any endpoint.
Progressive tools/list sizes:
| Selection | Tools | Bytes |
|---|---|---|
| default (all) | 141 | 33,869 |
evm | 99 | 22,471 |
solana | 37 | 10,904 |
deep42 | 6 | 3,663 |
risk | 2 | 2,093 |
The MCP client receives the complete tools/list result for the selected
profile. MCP does not control how much of that result enters the model context.
Claude Code normally loads tool names and server instructions first. It loads complete selected tool definitions after Tool Search. Codex can do the same when its Tool Search feature is available. Other clients can load every tool definition at the start.
The client loads the definition from the selected profile. It does not restore
fields that Progressive omitted. Use cambrian_docs to load the complete
request schema, response fields, and examples.
New users and agent runtimes should start here: skills/cambrian-mcp/SKILL.md. It covers Cambrian API key auth, hosted and local client config, tool naming, cambrian_docs lookup, composite tools, response limits, and error handling in one document.
For the CLI instead of MCP, see the cambrian CLI skill.
The cambrian CLI prints and tests ready-to-use MCP client config:
npm install -g cambrian
cambrian mcp config --mode hosted
cambrian mcp config --mode local
cambrian mcp install --client claude --mode hosted
cambrian mcp test --mode hosted
Run the published package directly:
export CAMBRIAN_API_KEY=<your-api-key>
npx -y cambrian-api-mcp
Select another profile only when your MCP client needs it:
npx -y cambrian-api-mcp --profile compact
npx -y cambrian-api-mcp --profile full
Narrow the catalog to the toolsets you need:
npx -y cambrian-api-mcp --toolsets solana,risk
Or install it globally:
npm install -g cambrian-api-mcp
export CAMBRIAN_API_KEY=<your-api-key>
cambrian-api-mcp
Use the CLI to print the current hosted URL and client-specific config:
cambrian mcp config --mode hosted
Direct Claude setup:
claude mcp add --transport http cambrian \
https://mcp.cambrian.org/mcp \
--header "Authorization: Bearer YOUR_CAMBRIAN_API_KEY"
Codex config uses TOML:
[mcp_servers.cambrian]
url = "https://mcp.cambrian.org/mcp"
bearer_token_env_var = "CAMBRIAN_API_KEY"
The default URL uses the progressive profile. Use
https://mcp.cambrian.org/mcp/compact or
https://mcp.cambrian.org/mcp/full for another profile.
HTTP requests must include one of:
Authorization: Bearer <CAMBRIAN_API_KEY>
X-Cambrian-Api-Key: <CAMBRIAN_API_KEY>
npm install
npm run build
node dist/index.js --transport http --host 127.0.0.1 --port 8080
Health endpoint:
curl http://127.0.0.1:8080/health
For hosted deployments, bind to 0.0.0.0:
node dist/index.js --transport http --host 0.0.0.0 --port 8080
Tool names are canonical and prefixed with cambrian_.
Examples:
cambrian_base_dexescambrian_ethereum_dexescambrian_arbitrum_dexescambrian_solana_price_currentcambrian_deep42_social_data_alpha_tweet_detectioncambrian_risk_perp_risk_enginecambrian_docscambrian_solana_token_snapshotCall cambrian_docs without a path to discover the live root index, or use
guides/<slug> (for example, guides/x402) for any guide listed there. For an
endpoint path, omit detail to get its request schema. Use detail: "response"
for response fields and detail: "full" for examples and all endpoint prose.
Endpoint tools come from the same validated runtime registry as the CLI. MCP
rechecks that local cache for each tool-list/tool-call request, while OpenAPI
network attempts are coalesced and limited to once per source every 15 minutes.
If runtime discovery is unavailable, the bundled inventory remains available
without changing existing tool names or schemas. That inventory is this
package's own snapshot of the live OpenAPI (src/generated/offline-registry.ts,
regenerated with npm run registry:generate), not the cambrian package's
bundled registry, so the offline catalog does not drift with that package's
release cadence.
The API serves one generic /api/v1/evm/* surface whose chain_id parameter
lists the chains each endpoint supports. The MCP turns that into one fixed-chain
tool per supported chain, so an agent never has to remember a magic number and
cannot aim an endpoint at a chain it rejects:
| Chain | Id | Tool prefix |
|---|---|---|
| Base | 8453 | cambrian_base_* |
| Ethereum | 1 | cambrian_ethereum_* |
| Arbitrum | 42161 | cambrian_arbitrum_* |
A tool appears for a chain if and only if that endpoint's own chain_id schema
allows the chain — from its enum, a fixed minimum/maximum pair, or an
exclusive bound. No allowlist and no per-endpoint special case: an endpoint the
API widens to enum: [1, 8453, 42161] gains Arbitrum tools on the next metadata
load with no MCP change. Base tools fix chain_id to 8453, Ethereum tools to
1, and Arbitrum tools to 42161.
cambrian_docs accepts an optional chain segment in an EVM path, by id or slug:
evm/42161/dexes, evm/arbitrum/dexes, and evm/dexes all resolve the same
endpoint, with the chain-scoped forms returning that chain's pinned schema.
The chain registry lives in EVM_CHAINS in src/server.ts and is the only
place a chain is declared. To add a chain, add one entry there and run
npm run registry:generate; see .claude/skills/adding-a-chain/SKILL.md.
npm ci
npm test
npm run build
npm pack --dry-run
The package depends on the published cambrian package for shared metadata and the API client. Publish cambrian first when changing both packages together, then refresh this package lock and deploy the MCP server through CI/CD.
Deployments are handled by GitHub Actions and Cloud Run from the private source repository. Do not deploy manually.
The workflow:
package.json#mcpName matches server.json#namepackage.json#version matches server.json#versionThe official MCP Registry publishes this server under:
io.github.cambriannetwork/cambrian-api
The manifest uses https://mcp.cambrian.org/mcp, which matches the production edge URL. The public release workflow publishes each new Registry version after npm publication.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y cambrian-api-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-cambriannetwork-cambrian-api": {
"command": "npx",
"args": [
"-y",
"cambrian-api-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencecambrian-api-mcpnpmio.github.cambriannetwork/cambrian-api works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.