utter-buyer, and by default runs a fully in-process demo with no real money. The buyer key lives inside the client and is never a tool argument or a return value.
Register it
Add the server to your MCP host’s config. The command isutter-buyer-mcp (the bin from @utter/buyer-sdk), over stdio.
Demo vs live
The mode is selected by theBUYER_SDK_TRANSPORT env var.
- Demo (default)
- Live
Unset, or anything other than
live. The server runs a self-contained wiring: an in-process mock chain, an ephemeral throwaway wallet, and a built-in echo card. It runs the real discover, reserve, handler, settle loop with no real money, no network, and no deployed resource. The demo never reads a buyer key. This is the safe default for trying the tools.string
live for the operator-gated live path. Unset or any other value runs the in-process demo.string
The buyer EOA key, read once on the live path only. Never logged, never a tool argument.
string
The marketplace base for live discovery. Required on the live path; the server fail-louds without it.
The two tools
The server registers a discovery tool plus one call tool per discovered endpoint.utter_discover_endpoints
utter_discover_endpoints
Input
{ query?: string }. Lists or searches paid endpoints, projecting only price, reputation, and bond to the model. It never surfaces a key. Pass query to filter by slug, category, or resource id.utter_call_[resourceId]
utter_call_[resourceId]
One tool per endpoint, named with the full 32-byte resource id, lowercased, without
0x. Its input schema is derived from the resource’s openapi.json request schema. Calling it validates the args, reserves budget, pays through the escrow loop, and returns the response text.How an agent uses them
1
Discover
The agent calls
utter_discover_endpoints, optionally with a query, and reads back each endpoint’s name, price, reputation, and bond.2
Call
It picks an endpoint and calls its
utter_call_<resourceId> tool with arguments matching the derived schema. The server validates the args before paying, reserves the per-call cap, pays through the gate, and returns the response text.The buyer key is held in the client closure. It is never a tool argument, never a tool return, and never a log line. The model sees price, reputation, bond, and the response, nothing more.
Next
Buyer SDK reference
The full env var list, tool derivation rules, and behavior details.