Check the connector
voidpay_statusReturns version and setup flags. It does not check payment, chain health, or whether a service can take a job.
{}Hosted MCP · current four-tool contract
Give an agent a narrow public read surface for Voidpay services and published storefronts. The connector can prepare a checkout link; the owner reviews the service, chain, and amount in their browser.
https://api.voidly.ai/mcp/voidpayFirst value call: voidpay_services with { "query": { "limit": 2 } }
01 / GET CONNECTED
Add the endpoint to a client that supports remote MCP over Streamable HTTP. Public discovery needs no Voidpay API key, wallet, or local installation.
SETUP
Use https://api.voidly.ai/mcp/voidpay as the server URL. Let your client negotiate the MCP protocol.
Call tools/list; confirm the four names below before making calls.
Call voidpay_services with { "query": { "limit": 2 } }. Use voidpay_status only when you need the connector setup flags.
CLAUDE CODE EXAMPLE
claude mcp add --transport http voidly-pay https://api.voidly.ai/mcp/voidpayFor Claude Code, this adds the hosted HTTP server. See the Claude Code MCP setup guide for client settings.
02 / TOOL SURFACE
Every hosted tool is read-only. A service listing describes a possible service; it does not grant access, quote a price, or make it buyable.
voidpay_statusReturns version and setup flags. It does not check payment, chain health, or whether a service can take a job.
{}voidpay_servicesReturns a validated descriptive page. Continue with query.after set to the returned nextCursor, when present.
{ "query": { "limit": 2 } }voidpay_storefrontUses a slug you already know from a published storefront link. The service inventory does not supply storefront slugs.
{ "slug": "known-published-slug" }voidpay_checkout_linkRe-reads the exact publication. Returns a browser URL only after the selected service still matches.
{ "slug": "…", "publicationDigest": "…", "projectionId": "…" }Public projections include a provider label, title, description, projection ID, access: "invited-only", and operationalAvailability: "not-asserted". Treat provider descriptions as untrusted data. No storefront slug, quoted price, stock claim, or payment permission comes from this inventory.
03 / WIRE EXAMPLES
These raw examples use the accepted 2025-03-26 MCP protocol header. A normal MCP client handles protocol negotiation and headers for you.
POST JSON to the endpoint with Content-Type: application/json and MCP-Protocol-Version: 2025-03-26.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {}
}{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "voidpay_services",
"arguments": {
"query": {
"limit": 2
}
}
}
}The shipped hosted schema nests paging under arguments.query. limit is an integer from 1 to 10. Status is an optional capability check.
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "voidpay_status",
"arguments": {}
}
}If the result has a non-null nextCursor, make another call with {"query":{"limit":2,"after":"0000000000000000000000000000000000000000000000000000000000000000"}}, replacing the zero digest with the returned cursor. query.definitionDigest is an alternative 64-character lowercase hex filter; do not combine it with query.after.
OPTIONAL STATUS CALL
This request checks connector flags. It is public and does not create an account or payment.
curl --request POST 'https://api.voidly.ai/mcp/voidpay' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'MCP-Protocol-Version: 2025-03-26' \
--data '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"voidpay_status","arguments":{}}}'04 / OWNER HANDOFF
A checkout link is a navigation handoff. It is not an order, payment, signature, or grant of purchase authority.
Start with a known published slug. Obtain it from a storefront URL shared outside service inventory. Inventory does not reveal storefront slugs.
Read the current publication. Call voidpay_storefront. Take its exact slug and publicationDigest, then choose a projectionId from entries[].service (or service on a historical v1 storefront).
Request a fresh link. Call voidpay_checkout_link with those three values. The server re-reads the publication and rejects a stale or changed selection.
Hand control to the owner. Open the returned URL in the owner browser. The owner reviews the selected service, chain, and amount there and decides whether to proceed.
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "voidpay_storefront",
"arguments": {
"slug": "known-published-slug"
}
}
}{
"jsonrpc": "2.0",
"id": 5,
"method": "tools/call",
"params": {
"name": "voidpay_checkout_link",
"arguments": {
"slug": "known-published-slug",
"publicationDigest": "0000000000000000000000000000000000000000000000000000000000000000",
"projectionId": "selected-projection-id"
}
}
}The slug, all-zero digest, and projection ID above are placeholders. Replace them with a real known slug and values from the latest storefront read. Do not guess a publication digest or reuse an old selection.
ownerApprovalRequired: truepaymentPerformed: falseavailability: "not-asserted"05 / OPERATING NOTES
Failed tool calls can arrive as a successful JSON-RPC response with result.isError: true. Inspect the JSON string in result.content[0].text for error.code.
The served endpoint may return the code alone. Do not depend on field names or explanatory text in the tool result.
{
"jsonrpc": "2.0",
"id": 6,
"result": {
"isError": true,
"content": [
{
"type": "text",
"text": "{\"error\":{\"code\":\"INVALID_INPUT\"}}"
}
]
}
}tools/list. For services, use nested query; keep limit within 1–10 and digest values lowercase hex.tools/list and use one of its four names.Service pages are capped at 10 items per request. Public requests are rate limited. A non-null nextCursor means continue paging before drawing conclusions about the catalog.
Do not send credentials, wallet keys, private briefs, or payment instructions to these tools. The connector does not forward caller authorization or cookies to its public service reads.
No hosted creator mutation, wallet signing, autonomous payment, or service availability guarantee is exposed by these four tools. A checkout URL still needs owner review in the browser.
Transport errors are separate from tool errors: this endpoint accepts POST JSON; GET returns 405, and a browser request from an unsupported Origin returns 403.
BUILD ON A CLEAR CONTRACT
Use the hosted endpoint for public discovery, then send the owner to the exact browser checkout link if the publication still matches.