Steward MCP
25 tools for x402 agent commerce — trust verification, spend controls, merchant directory, and paid API endpoints. Built by Brian Booms.
Documentation
Steward MCP Server
Steward's x402 pay-per-call rail as MCP tools. Any MCP-compatible agent (Claude, Cursor, Windsurf, MCP-aware frameworks) gets Steward's catalog natively in its tool list — each paid call settles $0.01 USDC on Base, signed by your own wallet.
Steward is the machine Brian Booms named: it quotes fair prices, verifies payment cryptographically, delivers goods, and accounts for every cent.
- Rail: https://pay.brianbooms.com · Build V3.9.203-STANDARD
- Fair Dealing (the terms): https://brianbooms.com/fair-dealing/
- Brian Booms is an AI-assisted artist and content creator.
Tools (25 total — one canonical server)
Paid calls — USDC on Base each, settled from your wallet
| Tool | What it does | Price |
|---|---|---|
steward_weather | Current weather + 7-day forecast for lat/lon | $0.01 |
steward_joke | One clean original joke | $0.01 |
steward_fortune | One warm original fortune + lucky number | $0.01 |
steward_fx | Fiat currency conversion at reference rates | $0.01 |
steward_time | Current local time in any IANA time zone | $0.01 |
steward_wiki | Concise Wikipedia summary for a topic | $0.01 |
steward_iss_pass | Upcoming visible ISS flyovers for lat/lon | $0.01 |
steward_audio_match | Match an emotion/moment to a Brian Booms track | $0.01 |
steward_audio_rest | Wind-down audio lane | $0.01 |
steward_audio_focus | Focus audio lane | $0.01 |
steward_sleep_tip | One genuine sleep-hygiene tip (no medical claims) | $0.01 |
trust_verify_status | Is a domain Steward Verified? Status + method + expiry | $0.01 |
trust_agent_attestation | Attestation signals for an agent wallet/identifier | $0.02 |
trust_screen | Pre-payment counterparty screen (approve/review/decline, advisory) | $0.02 |
The three
steward_audio_*lanes are live rail-side since worker V3.9.195-AUDIO. The threetrust_*tools are live rail-side since worker V3.9.203-STANDARD. All trust tools are read-only and advisory — verification can never be purchased.
Read-only discovery — free, never signs or spends
| Tool | What it does | Source |
|---|---|---|
steward_catalog | Live purchase catalog: sku, name, USD price (29 products) | brianbooms-mcp |
steward_product | Full details for one SKU: description, price, delivery, buy URL | brianbooms-mcp |
steward_purchase_instructions | Exact x402 payment requirements parsed live from the product's 402 | brianbooms-mcp |
steward_rewards | How Booms Rewards works (buyers + merchants + agent enrollment) | brianbooms-mcp |
steward_payment_format | Byte-exact X-PAYMENT header construction guide | brianbooms-mcp |
steward_cheapest_route | Cheapest of 6 crypto transfer routes for an amount (live fees) | boomie-fee-oracle |
steward_route_fees | Full ranked fee table for all 6 routes | boomie-fee-oracle |
steward_receipts | Public per-wallet receipts — every cent, in the open | base build |
steward_verifier_pubkey | Steward Verified issuer Ed25519 public key — verify record signatures offline | V3.9.203-STANDARD |
steward_directory | Steward Standard 57-merchant directory, merit-ranked (ranking never for sale) | V3.9.203-STANDARD |
steward_spend_today | This server's local spend meter (free, local) | base build |
Superseded servers
This is the one canonical MCP server. The directories below are left in place for history but are superseded — do not build on them:
| Directory | What it was | Why superseded |
|---|---|---|
ops/mcp/brianbooms-mcp/ (+ -py, -github, -py-1.0.4-staged, -py-1.0.5-build variants; npm brianbooms-mcp v1.0.7) | 5 read-only discovery tools | Ported here as steward_catalog, steward_product, steward_purchase_instructions, steward_rewards, steward_payment_format |
ops/x402/mcp-fee-oracle/ | 2 fee-oracle tools (cheapest_route, route_fees) | Ported here as steward_cheapest_route, steward_route_fees |
ops/mcp/synthetic-universe/ | Stage-only server; tools duplicate the paid set | Duplicates — the base tools here are the payment-capable versions |
ops/su-store/mcp/ | Frozen 3-product Stripe catalog + Stripe checkout/order tools | Catalog deduped by the live steward_catalog; Stripe checkout tools superseded by the x402 buy flow |
Install
Requires Node 20+.
cd steward-mcp
npm install
npm run build
Configure
cp .env.example .env
# edit .env:
| Variable | Required | Default | What it is |
|---|---|---|---|
STEWARD_PAYER_KEY | yes | — | Your Base wallet private key (0x...). Funds the $0.01/call payments. |
STEWARD_MAX_SPEND_USDC | no | 0.05 | Hard ceiling per single call. The server refuses to sign above this. |
STEWARD_MAX_SPEND_DAY_USDC | no | 5.00 | Hard ceiling per rolling 24h. |
STEWARD_RAIL_URL | no | https://pay.brianbooms.com | Rail base URL. |
Your key never leaves your machine. The server uses it only to sign a
per-call EIP-3009 authorization ($0.01 USDC on Base, payee verified as Steward's
wallet 0xa98e8c6cbc64b7bb30fd0d2015ab24814c661839). It is never logged, stored,
or transmitted anywhere else. Fund the wallet with a few USDC on Base and each
tool call spends exactly what the rail quotes — nothing more.
Add to Claude Code / Cursor / Windsurf
Claude Code (~/.claude.json or project .mcp.json):
{
"mcpServers": {
"steward": {
"command": "node",
"args": ["/absolute/path/to/steward-mcp/dist/index.js"],
"env": {
"STEWARD_PAYER_KEY": "0x...",
"STEWARD_MAX_SPEND_USDC": "0.05",
"STEWARD_MAX_SPEND_DAY_USDC": "5.00"
}
}
}
}
Cursor (.cursor/mcp.json): same shape under "mcpServers".
Then npm run build once, restart the host, and the steward_* tools appear
in the agent's tool list.
Framework integrations
Steward works natively with every major agent framework via MCP. No wrappers needed — point the framework's MCP client at Steward and the tools appear.
LangChain
from langchain_mcp_adapters import MultiServerMCPClient
client = MultiServerMCPClient({
"steward": {
"command": "npx",
"args": ["@brianbooms/steward-mcp"],
"env": {"STEWARD_PAYER_KEY": "0x..."},
"transport": "stdio",
}
})
tools = await client.get_tools() # steward_* tools as LangChain StructuredTools
LlamaIndex
from llama_index.tools.mcp import BasicMCPClient, McpToolSpec
mcp_client = BasicMCPClient(
command_or_url="npx",
args=["@brianbooms/steward-mcp"],
env={"STEWARD_PAYER_KEY": "0x..."},
)
tool_spec = McpToolSpec(client=mcp_client)
tools = tool_spec.to_tool_list()
CrewAI
from crewai_tools import MCPServerAdapter
with MCPServerAdapter(
command="npx",
args=["@brianbooms/steward-mcp"],
env={"STEWARD_PAYER_KEY": "0x..."},
) as tools:
# tools = CrewAI-compatible steward_* tools
agent = Agent(tools=tools, ...)
AutoGen / AG2
from autogen_ext.tools.mcp import StdioServerParams, mcp_server_tools
server_params = StdioServerParams(
command="npx",
args=["@brianbooms/steward-mcp"],
env={"STEWARD_PAYER_KEY": "0x..."},
)
tools = await mcp_server_tools(server_params)
Vercel AI SDK
import { createMCPClient } from "@ai-sdk/mcp";
const mcpClient = await createMCPClient({
transport: {
type: "stdio",
command: "npx",
args: ["@brianbooms/steward-mcp"],
env: { STEWARD_PAYER_KEY: "0x..." },
},
});
const tools = await mcpClient.tools();
// use with generateText({ model, tools, prompt })
How payment works
- Tool calls the rail endpoint with no payment.
- Rail answers HTTP 402 with an x402 quote (price, payee, asset, timeout).
- The server verifies: scheme
exact, networkbase, payee is Steward's wallet, asset is USDC on Base, price sane and within your caps. - It signs an EIP-3009
transferWithAuthorizationwith your key and resubmits with theX-PAYMENTheader. - Rail verifies via its facilitator and returns the result as the tool output.
Anything unexpected — wrong payee, wrong asset, price over your cap — and the server refuses to sign. No silent spending, ever.
Verify without paying
npx tsx test/quotes.test.ts # probes all 24 tools' live quotes, signs nothing
npx tsx test/smoke.test.ts # boots the MCP server, lists tools over stdio
Trust
- Prices are quoted by the rail per call; the server never invents a price.
- Every settled call appears on
steward_receipts— public, per wallet. - The terms: https://brianbooms.com/fair-dealing/ (the Fair Dealing page controls).
- Machine-readable catalog: https://brianbooms.com/.well-known/purchase-catalog.json
License
MIT — Synthetic Universe LLC.