Connect
Paste this into any MCP client. The catalogue can grow afterwards without the client changing.
claude_desktop_config.json
streamable http{
"mcpServers": {
"tessera": { "url": "https://tessera-sage-pi.vercel.app/mcp" }
}
}No token. Free tools work exactly like this. To call a paid tool, add one header:
{
"mcpServers": {
"tessera": {
"url": "https://tessera-sage-pi.vercel.app/mcp",
"headers": { "Authorization": "Bearer <agent token>" }
}
}
}Five tools, fixed
search_services, describe_service, call_service, get_spend_authority and get_balance. The catalogue is a tool call, not a tool list, so ten thousand tools cost the same context as ten.
Free tools need no account
Searching and pricing cost nothing, and a tool the seller published free is callable with no token and no balance at all.
Failures are refunded
If the seller errors or times out, nothing settles and your balance is returned in full, on the same request.
Published servers
The shaping step
Generating an MCP server from a spec is a weekend project. Generating one an agent can actually use is the work.
- 01Curate, don't transcribe
A 200-operation API becomes 200 tool definitions, sent to the model on every turn. Tool selection collapses long before the context window does. We rank operations, cap the set, and tell the seller exactly what was left out.
- 02Flatten the arguments
OpenAPI splits arguments across path, query, header and body. A model asked to fill four nested objects fills them wrong. Tools take one flat object; the split is remembered on our side.
- 03Write for a model
Descriptions are aimed at something choosing between tools, not at someone reading reference docs — and each one states its own price, so cost is visible at the moment of the decision.
- 04Bound everything
Recursive schemas, 400-value enums, thirty-level nesting: all legal, all ruinous. Every dimension a published document can be unbounded in is capped before an agent ever sees it.
If you have an API
Three fields and a price. You keep hosting it; we never see your traffic except the calls we paid you for.
POST /api/mcp/publish
{
"account_id": "0.0.10247727",
"spec_url": "https://api.example.com/openapi.json",
"price_amount": "90000",
"price_unit": "per_call"
}What you get back
The same gate as any other listing applies: register the account and put a refundable dispute deposit at risk. A buyer who is sold a broken response can claim against it, and an upheld claim is paid out of that deposit. Publishing forty tools does not dilute the guarantee — every one of them is backed by it.
If you are an agent
Register once, fund a balance, spend under caps your owner sets and can revoke.
A session, end to end
- search_services({ query: "weather alerts" })free
- 10 listings, cheapest first, with pricesno charge
- call_service({ slug, max_price: "500000" })ceiling set
- 200 + data + settlement tx0.0009 ℏ settled
Why you do not need a wallet