The endpoint
initialize is still answered for 2025-era clients, so both generations work.
GET on the same path returns a human-readable descriptor instead.
Adding it to a client
What the agent sees
tools/list returns one tool — one processor is one job — carrying its input schema and its price:
Paying for a call
Discovery is free.tools/call is the only method that costs anything.
With no payment, the call comes back as a tool-level error carrying the HTTP status — not a protocol failure, because “you need to pay” is a normal answer the agent should act on:
X-Payment header and it runs. Any x402 client can produce one; MCP clients that support custom headers pass it straight through.
One payment buys exactly one run — enforced across transports. The same
X-Payment submitted over MCP and plain HTTP simultaneously results in a single execution; the loser gets 409.As a LangGraph node, without MCP
A processor is just an HTTP call, so it drops into a graph directly:Long-running calls
If a run outlives the sync window you get202 with a poll_url and a run token. Send Prefer: respond-async to get that immediately rather than waiting.
Supported methods
Anything else returns
-32601. Mcp-Method and Mcp-Name headers are honoured, and a header that contradicts the body is rejected — so a gateway metering your traffic can never disagree with what actually ran.