Steward MCP

25 công cụ cho thương mại đại lý x402 — xác minh tin cậy, kiểm soát chi tiêu, danh bạ người bán và các điểm cuối API trả phí. Được xây dựng bởi Brian Booms.

Tài liệu

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.

Tools (25 total — one canonical server)

Paid calls — USDC on Base each, settled from your wallet

ToolWhat it doesPrice
steward_weatherCurrent weather + 7-day forecast for lat/lon$0.01
steward_jokeOne clean original joke$0.01
steward_fortuneOne warm original fortune + lucky number$0.01
steward_fxFiat currency conversion at reference rates$0.01
steward_timeCurrent local time in any IANA time zone$0.01
steward_wikiConcise Wikipedia summary for a topic$0.01
steward_iss_passUpcoming visible ISS flyovers for lat/lon$0.01
steward_audio_matchMatch an emotion/moment to a Brian Booms track$0.01
steward_audio_restWind-down audio lane$0.01
steward_audio_focusFocus audio lane$0.01
steward_sleep_tipOne genuine sleep-hygiene tip (no medical claims)$0.01
trust_verify_statusIs a domain Steward Verified? Status + method + expiry$0.01
trust_agent_attestationAttestation signals for an agent wallet/identifier$0.02
trust_screenPre-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 three trust_* 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

ToolWhat it doesSource
steward_catalogLive purchase catalog: sku, name, USD price (29 products)brianbooms-mcp
steward_productFull details for one SKU: description, price, delivery, buy URLbrianbooms-mcp
steward_purchase_instructionsExact x402 payment requirements parsed live from the product's 402brianbooms-mcp
steward_rewardsHow Booms Rewards works (buyers + merchants + agent enrollment)brianbooms-mcp
steward_payment_formatByte-exact X-PAYMENT header construction guidebrianbooms-mcp
steward_cheapest_routeCheapest of 6 crypto transfer routes for an amount (live fees)boomie-fee-oracle
steward_route_feesFull ranked fee table for all 6 routesboomie-fee-oracle
steward_receiptsPublic per-wallet receipts — every cent, in the openbase build
steward_verifier_pubkeySteward Verified issuer Ed25519 public key — verify record signatures offlineV3.9.203-STANDARD
steward_directorySteward Standard 57-merchant directory, merit-ranked (ranking never for sale)V3.9.203-STANDARD
steward_spend_todayThis 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:

DirectoryWhat it wasWhy 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 toolsPorted 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 setDuplicates — the base tools here are the payment-capable versions
ops/su-store/mcp/Frozen 3-product Stripe catalog + Stripe checkout/order toolsCatalog 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:
VariableRequiredDefaultWhat it is
STEWARD_PAYER_KEYyes—Your Base wallet private key (0x...). Funds the $0.01/call payments.
STEWARD_MAX_SPEND_USDCno0.05Hard ceiling per single call. The server refuses to sign above this.
STEWARD_MAX_SPEND_DAY_USDCno5.00Hard ceiling per rolling 24h.
STEWARD_RAIL_URLnohttps://pay.brianbooms.comRail 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

  1. Tool calls the rail endpoint with no payment.
  2. Rail answers HTTP 402 with an x402 quote (price, payee, asset, timeout).
  3. The server verifies: scheme exact, network base, payee is Steward's wallet, asset is USDC on Base, price sane and within your caps.
  4. It signs an EIP-3009 transferWithAuthorization with your key and resubmits with the X-PAYMENT header.
  5. 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

License

MIT — Synthetic Universe LLC.