Odel
Axiom Agentic Tools

Axiom Agentic Tools

@0xaxiomDeveloper Tools1JavaScriptMITUpdated 1w ago

x402-paid Base agent tools (USDC). 5 deterministic tools. No API keys. No NFT pass.

Server endpointStreamable HTTP

This is the third-party server itself — Odel doesn't run it. Hitting this URL directly talks straight to the upstream server with no auth or proxying. Connect through Odel to front it with managed auth.

Axiom Agentic Tools

Five JSON-output MCP tools for builders shipping agentic services on Base. x402-paid, no API keys, no accounts.

MCP Registry Smithery x402 Base License: MIT MCP

Live deployment: agentic.clawbots.org · MCP endpoint: /api/agentic/mcp · OpenAPI: /api/agentic/openapi.json


Overview

axiom-agentic-tools is a tiny, deterministic MCP server. Each of its five tools answers one focused question for an autonomous agent or its builder:

  • "Where is this x402 endpoint leaking revenue?"
  • "What does a deployable token spec look like for my agent?"
  • "Which sequence of paid tools fits this budget?"
  • "Is my repo ready for agent marketplaces?"
  • "Which Base grant should I apply to next?"

The server is callable three ways:

  • MCP — streamable-HTTP, current protocol 2025-11-25. Works in Claude Code, Cursor, Cline, Windsurf, OpenAI Agent Builder, Smithery Toolbox.
  • HTTP + x402POST /api/agentic/tools/<slug> with an EIP-3009 transferWithAuthorization in the X-PAYMENT header.
  • A2A — discoverable via /.well-known/agent-card.json on the parent.

Payments settle in USDC on Base through the Coinbase CDP facilitator (the indexer source for agentic.market and the Coinbase Bazaar).

Features

  • x402 v2 envelope — top-level resource, extensions.bazaar, PAYMENT-REQUIRED response header per specs/transports-v2/http.md.
  • MCP 2025-11-25initialize, tools/list, tools/call. Tool call dispatches in-process; payment runs once, not twice.
  • Bazaar-readyextensions.bazaar.info.input.type: "http", output schema + example, route template, JSON Schema all in the 402.
  • GET discovery — unauthenticated GET returns a 402 with the envelope, so validators can introspect without a body.
  • Deterministic — closed-vocabulary JSON outputs, schema-validated on every response. No "the model said…" drift.
  • Free tierrepo-health-for-agents runs at 50/day per IP with no payment.
  • Rate-limited — 60/hr per IP on paid tools, 10/hr on ?preview=1.

Tools

SlugPriceReturns
agent-revenue-optimizer$0.10Probes any x402 endpoint → closed-vocab verdict + 3–7 scored recommendations across pricing, bundling, discoverability, envelope, rate-limit, facilitator.
agent-token-strategy$0.15Token spec for an autonomous agent: symbol, allocations, OZ template, fair-launch checklist, deploy cost estimate, risk list.
multi-agent-workflow-designer$0.10DAG of public x402/MCP/REST tools that hits a goal under a USD budget, with per-step cost + latency + runnable curl.
base-builder-grant-finder$0.05Ranked, deadline-aware list of open Base ecosystem grants / accelerators / hackathons / retro-funding.
repo-health-for-agentsfree*15-check 0–100 marketplace-readiness audit of a public GitHub repo. Each check carries pass/fail + URL evidence.

free at 50 calls/day/IP, then 402.

Quick start

From an MCP-aware editor

Add this server to your MCP client config and axiom-* tools appear in your tool palette immediately. No install, no auth.

Claude Code

claude mcp add --transport http axiom https://agentic.clawbots.org/api/agentic/mcp

Cursor

Cursor → Settings → MCP → New MCP server:

{
  "name": "axiom",
  "type": "http",
  "url": "https://agentic.clawbots.org/api/agentic/mcp"
}

Cline

Cline → Settings → MCP servers → Configure MCP servers:

{
  "mcpServers": {
    "axiom": {
      "type": "streamableHttp",
      "url": "https://agentic.clawbots.org/api/agentic/mcp"
    }
  }
}

Windsurf

Windsurf → Settings → MCP → Add server:

{
  "mcpServers": {
    "axiom": {
      "serverUrl": "https://agentic.clawbots.org/api/agentic/mcp"
    }
  }
}

Smithery Toolbox

Install from Smithery with one click.

From AgentKit

Use all 6 tools as native AgentKit actions. The wallet provider handles x402 payment automatically.

import { AgentKit } from "@coinbase/agentkit";
import { axiomToolsProvider } from "@axiom-tools/agentkit-provider";

const agentkit = await AgentKit.from({
  walletProvider,
  actionProviders: [axiomToolsProvider()],
});

See agentkit/ for the full action provider and docs.

From raw HTTP

# 1. Discovery — what does this endpoint cost?
curl -sX GET https://agentic.clawbots.org/api/agentic/tools/agent-revenue-optimizer \
  -D /tmp/h | head -10
#   HTTP/2 402
#   PAYMENT-REQUIRED: <base64 envelope>

# 2. Decode the envelope:
grep -i payment-required: /tmp/h | cut -d' ' -f2- | tr -d '\r' | base64 -d | jq .

# 3. Sign + retry (@x402/fetch v2 handles this for you):
# npm i @x402/fetch @x402/evm viem
node -e "
import('@x402/fetch').then(async ({ wrapFetchWithPayment, x402Client }) => {
  const { privateKeyToAccount } = await import('viem/accounts');
  const { ExactEvmScheme } = await import('@x402/evm/exact/client');
  const account = privateKeyToAccount(process.env.X402_PRIVATE_KEY);
  const client = new x402Client().register('eip155:8453', new ExactEvmScheme(account));
  const fetch = wrapFetchWithPayment(globalThis.fetch, client);
  const r = await fetch('https://agentic.clawbots.org/api/agentic/tools/agent-revenue-optimizer', {
    method: 'POST',
    headers: { 'content-type': 'application/json' },
    body: JSON.stringify({ endpoint_url: 'https://example.com/api/probe' }),
  });
  console.log(await r.json());
});
"

Installation (self-host)

You can host your own deployment — the only deploy target supported today is Vercel.

git clone https://github.com/0xAxiom/axiom-agentic-tools.git
cd axiom-agentic-tools
npm install
cp .env.example .env.local       # fill X402_PAY_TO + CDP_API_KEY_* (see Configuration)
npm run dev                      # vercel dev on :3000

Deploy:

vercel link                       # one-time
vercel --prod

Production smoke:

BASE=https://your-deployment.example npm test

Configuration

All configuration is via environment variables. Copy .env.example and fill in the blanks.

VariableRequiredDefaultPurpose
X402_PAY_TOYour wallet address for paid tool revenue (USDC on Base).
X402_FACILITATOR_URLhttps://api.cdp.coinbase.com/platform/v2/x402Facilitator endpoint. CDP is what Bazaar indexes.
CDP_API_KEY_ID✅ (if CDP)CDP server-side credentials. Get them at portal.cdp.coinbase.com.
CDP_API_KEY_SECRET✅ (if CDP)
X402_NETWORKbasebase or base-sepolia.
BASE_RPC_URLhttps://mainnet.base.orgBase mainnet RPC. Use a private RPC in production.
PUBLIC_BASE_URL(Vercel default)Absolute base URL of your deployment. Populates manifest/OpenAPI/discovery links.
GITHUB_TOKENLifts the rate limit on tools that read public GitHub repos.

Usage examples

MCP tools/list

curl -s -X POST https://agentic.clawbots.org/api/agentic/mcp \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | jq '.result.tools[].name'

MCP tools/call

curl -s -X POST https://agentic.clawbots.org/api/agentic/mcp \
  -H 'content-type: application/json' \
  -H "x-payment: $X_PAYMENT_BASE64" \
  -d '{
    "jsonrpc":"2.0","id":2,"method":"tools/call",
    "params":{"name":"agent-revenue-optimizer","arguments":{"endpoint_url":"https://example.com/api/probe"}}
  }'

Free tier — repo-health-for-agents

curl -s -X POST https://agentic.clawbots.org/api/agentic/tools/repo-health-for-agents \
  -H 'content-type: application/json' \
  -d '{"repo":"your-org/your-repo"}'

50/day/IP free; over the limit returns the standard 402.

Architecture

Client (Claude / Cursor / curl)
        │
        ▼ POST /api/agentic/tools/<slug>
┌─────────────────────────────────────────────────┐
│  createAgenticRoute(spec, handler)              │
│   ├─ CORS + OPTIONS                             │
│   ├─ Rate limit (per-IP, 3 buckets)             │
│   ├─ Input validation (spec.inputSchema)        │
│   ├─ checkAccess(req)  ──► gate.mjs ──► x402   │
│   │      verify+settle through CDP facilitator  │
│   ├─ tool handler({ input, payment })           │
│   └─ Output validation (spec.outputSchema)      │
└─────────────────────────────────────────────────┘
        │
        ▼ JSON result + X-PAYMENT-RESPONSE header
  • api/agentic/mcp.mjs is an MCP transport. tools/call dispatches the same registry → x402 → handler pipeline in-process — payment runs once, never twice.
  • api/_lib/x402.mjs builds the v2 envelope (buildPaymentRequired) and shells out to the facilitator for verify/settle.
  • tools/<slug>/spec.mjs is the single source of truth for each tool: input/output schemas, price, examples, marketplace metadata, the bazaar extension block. Validated at boot and at prebuild.
  • scripts/generate-manifest.mjs regenerates /api/agentic/manifest, /api/agentic/openapi.json, /.well-known/agentic/tools/*.json, and the /.well-known/mcp.json server card from the registry.

Full reference: docs/ARCHITECTURE.md, docs/DESCRIPTOR.md, docs/DISCOVERY.md.

Development

npm install
npm run prebuild   # regenerate manifest + OpenAPI + .well-known
npm run dev        # vercel dev on :3000
npm test           # smoke (BASE=http://localhost:3000 by default)
npm run validate   # surface-consistency check

To add a tool, follow CONTRIBUTING.md §"Adding a new tool".

Verifying x402 v2 compliance

curl -sD- -X GET https://agentic.clawbots.org/api/agentic/tools/agent-revenue-optimizer \
  | head -20
# Expect:
#   HTTP/2 402
#   PAYMENT-REQUIRED: <base64>
# Body:
#   { "x402Version": 2, "resource": {…}, "accepts": [{ "amount": "100000", … }], "extensions": { "bazaar": {…} } }

The full compliance matrix lives in docs/X402_V2_COMPLIANCE_REPORT.md.

Discovery surfaces

SurfaceURL
MCP endpointhttps://agentic.clawbots.org/api/agentic/mcp
Tool manifesthttps://agentic.clawbots.org/api/agentic/manifest
OpenAPI 3.1https://agentic.clawbots.org/api/agentic/openapi.json
Health probehttps://agentic.clawbots.org/api/agentic/health
.well-known/agentic/tools/<slug>.jsonPer-tool descriptor (cached)
Bazaar extension schemahttps://agentic.clawbots.org/.well-known/schemas/x402-extension-bazaar-v2.json

Security

See SECURITY.md for the disclosure process. Report vulnerabilities privately via GitHub Private Vulnerability Reporting or email — do not open public issues for security findings.

Contributing

Pull requests welcome. Read CONTRIBUTING.md first — it's short, and it'll save you a round trip on style and surface conventions.

License

MIT.