@axiom-stack/mcp-server
v0.5.0
Published
MCP server for the Axiom Stack Oracle — drop-in stdio server for Claude Desktop, Cursor, Cline, and other MCP-aware tools.
Maintainers
Readme
@axiom-stack/mcp-server
Drop-in MCP server for the Axiom Stack Oracle — adds verifiable on-chain attestations (equity + crypto) to Claude Desktop, Cursor, Cline, and any other MCP-aware tool.
Run it via npx -y @axiom-stack/mcp-server from your client's config; the server forwards tool calls to api.axiomstack.dev/v1/* over Bearer auth. Thin proxy — no caching, no quota at the MCP layer (the API surface owns those concerns).
Install in Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"axiom": {
"command": "npx",
"args": ["-y", "@axiom-stack/mcp-server"],
"env": {
"AXIOM_API_KEY": "axm_live_…"
}
}
}
}Issue a key at axiomstack.dev/dashboard/keys. Restart Claude Desktop; the tools below appear in the tool picker.
Cursor and Cline use the same
mcpServersschema — drop the same block into their config files.
Tools exposed
| Tool | Auth | Use |
|---|---|---|
| axiom_health | open | smoke-test reachability + see the deployed version / deployed_at |
| axiom_list_assets | open | discover which classes + tiers are LIVE today |
| axiom_attest_instant | Bearer | <2s data + provisional on-chain proof for equity (ticker) or crypto (BTC/ETH/SOL/USDC/USDT) |
| axiom_attest_audit | Bearer | ~20s synchronous, fully on-chain attestation. V1 = equity only. Crypto + audit returns a typed tier-unavailable-for-class error with tiers_available you can pivot to. |
Tool inputs
axiom_attest_instant/axiom_attest_audit:{ "asset_class": 2, "asset_id": "AAPL" } // equity { "asset_class": 6, "asset_id": "BTC" } // crypto (instant only in V1)axiom_health/axiom_list_assets: no input.
Result shape
Successful calls return { data: <typed-response>, request_id: "req_…" } as JSON text — the same {data, meta} envelope the REST API uses, with request_id included for support diagnostics.
Errors surface as MCP tool results with isError: true and the API's RFC 7807 body intact:
{
"error": {
"http_status": 400,
"type": "https://docs.axiomstack.dev/errors/tier-unavailable-for-class",
"title": "Tier unavailable for class",
"detail": "The 'audit' tier is not available for asset_class 6 in V1.",
"request_id": "req_…",
"asset_class": 6,
"tier_requested": "audit",
"tiers_available": ["instant"],
"note": "Crypto audit tier ships in G6.7b. Use latency_mode=instant for crypto in V1."
}
}Agent code can pattern-match on type URI for branching.
Configuration
| Env var | Effect |
|---|---|
| AXIOM_API_KEY (required for attestation tools) | Bearer token; issue at the dashboard. |
| AXIOM_BASE_URL (optional) | Override the API base URL (e.g. for staging). Defaults to https://api.axiomstack.dev. |
Embedding (advanced)
import { buildServer, ApiClient } from "@axiom-stack/mcp-server";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const api = new ApiClient({ apiKey: "axm_live_…" });
const server = buildServer(api);
await server.connect(new StdioServerTransport());Or call callTool(name, args, api) directly to test tool logic without booting a transport — see test/tools.test.ts.
Related packages
axiom-stack(PyPI) — Python SDK for the same REST API. Sync + async clients, typed exceptions, minimal CLI.@axiom-stack/sdk(npm) — TypeScript SDK. Async/Promise client, typed exceptions, minimal CLI.
License
MIT © Axiom Stack LLC
