Attest
On the shelf at ZEAM :: Prism
Attest a given MCP server: what it says it is, what it costs a caller to attach, and how it refuses.
Price and how to start
$0.000001 per millisecond a call runs, on a line. Without a line, a call costs $0.00025 and runs for up to 250 ms; one that needs longer is cut and nothing is charged.
A line is time you buy in advance with buy_time; calls on it carry no payment, and time you do not use comes back on refund.
For a call at the per-call price: First call on a channel deposits at least $0.00447. Later calls spend it. The unspent balance is refundable. That least is the figure now: it tracks gas and depends on the call. Each call's own 402 states the live one, and it applies to a later top-up too.
One MCP address for everything on ZEAM :: Prism. No account, no API key.
https://mcp.zeamprism.com/mcp
How to connect · Prices · How to pay · For agents
What it does
Every answer names the requests that produced it — method, path, headers, status — so the same run on any machine gives the same answer. A stranger's grade is worth nothing; a stranger's grade plus the exact request is worth something, and needs no trust in us. A call that fails names the requests it made as well, in the same evidence list over MCP and over HTTP.
It does not rank, list or remember servers. The caller names one URL; the report is about that URL, now. Drift is the caller's snapshot against a fresh one — nothing is stored here.
The payment surface is checked the way a wallet-less agent meets it: an unpaid call to a paid tool, the terms it gets back parsed with the canonical x402 schema, then the same call with a required argument missing and with one of the wrong type, to learn whether validation runs before or after the gate. A call refused for its arguments says nothing about payment: the shelf then sends the example the server publishes, or arguments built from the tool's inputSchema, and reads the prices the server declares. The answer is paid, not paid or undetermined, with every probe and what it answered. Refusal terms are never paid.
Public servers only: a private, loopback, link-local or internal name or address is refused before any request is made, and so is a name that resolves to one. A redirect to one is not followed. Ports 80, 443 and 1024 and above. A report takes as long as the server it asks takes to answer; on a line you pay for that time. Every tool that takes a url makes several requests to that server, so call it on a line. A single-section call cut for time returns nothing; the whole report returns the sections it finished and every request it made.
Tools
attest_server
Returns the whole report on one MCP endpoint in one answer, read section by section: handshake and contract, then the payment surface, then discovery. A section that could not be read is named in failed with the reason and is not in finished; the call fails only when no section could be read. A call cut for time returns the sections finished so far, marked partial and named in finished, with those still to do named in unfinished, every request made so far in evidence, and about_ms, an estimate of the time the whole report needs at the pace this server answered. Same checks as the three single-section tools; about 25 requests to the server named, so call it on a line.
$0.000001 per millisecond on a line.
{"url":"https://mcp.zeamprism.com/mcp"}
attest_contract
Returns the handshake and contract of one MCP endpoint: initialize (protocol, server, capabilities, latency), what a plain GET returns, and tools/list rendered to a canonical snapshot with a stable hash, its context footprint in bytes and approximate tokens (total, per tool, top-3 share), an annotation audit (destructiveHint present, absent or true), naming pattern, and which tools carry examples. Keep the answer: attest_drift compares it to a later one. It makes three requests to the server named and takes as long as they take, so call it on a line: a call cut for time returns nothing.
$0.000001 per millisecond on a line.
{"url":"https://mcp.zeamprism.com/mcp"}
attest_payment
Returns how one MCP endpoint refuses an unpaid call. Calls a tool with no payment, first with the caller's arguments or {}, then, when that is refused for its arguments, with the example the server publishes or arguments built from the inputSchema, and reads the prices declared in tools/list, /.well-known/x402 and /openapi.json; the verdict is paid, not_paid or undetermined, and every probe is listed with its answer. Terms are parsed with the canonical x402 schema: version, HTTP status against body (a 402 body under HTTP 200 is invisible to anything that counts by status), accepts rows and whether several share one (scheme, network) key so an indexer keeps only the last, non-schema keys, which asset sits first and last, and whether the refusal carries anything a wallet-less caller can act on. Then calls the same tool with a required argument missing and with an argument of the wrong type, and reports the order observed: payment first, validation first, mixed, or not determined when the schema gives nothing to vary. Never pays. It makes five or more requests to the server named and takes as long as they take, so call it on a line: a call cut for time returns nothing.
$0.000001 per millisecond on a line.
{"url":"https://mcp.zeamprism.com/mcp","tool":"audit_payers"}
attest_discovery
Returns the plain-document surface of one MCP host: which standard discovery paths answer (well-known mcp, agent card, x402, ai-catalog, owners, llms.txt, openapi, server.json, robots, sitemap), and an openapi audit: operations with no security declaration, security schemes referenced but undefined, request bodies an indexer cannot read (no properties), and payment accepts that collapse on one key. It makes thirteen requests to the server named and takes as long as they take, so call it on a line: a call cut for time returns nothing.
$0.000001 per millisecond on a line.
{"url":"https://mcp.zeamprism.com/mcp"}
attest_drift
Returns every change between two contract snapshots, classed as breaking, compatible or cosmetic, with the rule that decided each. Pass a prior attest_contract answer as before and either a later one as after or a url to fetch fresh. Both hashes are computed from the snapshot content; a hash supplied with a snapshot is checked against it and a mismatch is reported, never trusted. Nothing is stored between calls: the caller holds the history. With both snapshots it makes no request and needs no line; with url it makes the three requests attest_contract makes, so call it on a line: a call cut for time returns nothing.
$0.000001 per millisecond on a line.
{"url":"https://mcp.zeamprism.com/mcp","before":{"snapshot":[]}}