Serveur MCP

agent-exec

io.sslip.128.221.67.45.agent-exec/agent-exec

Ce que fait ce MCP

Provides pay-per-use sandbox code execution, temporary storage, distributed locks, attestations, durable watches, and process handoffs.

attest_create
Signed observation of a URL (paid, x402)
PAID: we fetch a URL from OUR vantage point and return a signed, timestamped attestation of what we saw -- hash, byte count, HTTP status and headers, never the body itself. Read it back afterwards for free with attest_read, so the id can be cited to a THIRD PARTY who never paid us and who can verify the signature themselves. A fetch that fails to connect, times out, or is refused for safety is still billed and still signed: the observation is what is sold, not a guaranteed 200. Call it once without payment to receive the price as an x402 PaymentRequired (Base USDC, and Solana USDC where offered); call it again with a signed payment in _meta['x402/payment'] to complete it. The receipt comes back in _meta['x402/payment-response']. No account, no API key. Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'type': 'string', 'maxLength': 2048, 'minLength': 1, 'description': 'An absolute http:// or https:// URL, at most 2048 UTF-8 bytes. The body is never returned to you.'}}, 'additionalProperties': False}
attest_read
Read an attestation (free)
FREE and unauthenticated: read a previously-created attestation back by id, with its signature. This is how what you bought with attest_create comes back over MCP -- and deliberately NOT wallet-scoped, because the whole point is that a third party who never paid can fetch it and check the signature. Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The attestation id returned by attest_create.'}}, 'additionalProperties': False}
check_address
Check an EVM address against public risk feeds (paid, x402)
PAID: check an EVM address against public risk feeds (OFAC, community darklists, on-chain age) and get back a verdict, score and reasons in the same response the payment settles -- there is no separate read-back call. Charged only on success: if every risk feed is unreachable the request is refused for free (CHECK_SOURCES_UNAVAILABLE) rather than answered with an unsourced verdict. Call it once without payment to receive the price as an x402 PaymentRequired (Base USDC, and Solana USDC where offered); call it again with a signed payment in _meta['x402/payment'] to complete it. The receipt comes back in _meta['x402/payment-response']. No account, no API key. Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['address'], 'properties': {'chain': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': '"base" or "ethereum", default "base".'}, 'address': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'description': 'An EVM 0x... address.'}}, 'additionalProperties': False}
check_url
Check a URL against public risk feeds (paid, x402)
PAID: check a URL against public risk feeds (phishing lists, domain age, lexical signals) and get back a verdict, score and reasons in the same response the payment settles -- there is no separate read-back call. Charged only on success: if every risk feed is unreachable the request is refused for free (CHECK_SOURCES_UNAVAILABLE) rather than answered with an unsourced verdict. Call it once without payment to receive the price as an x402 PaymentRequired (Base USDC, and Solana USDC where offered); call it again with a signed payment in _meta['x402/payment'] to complete it. The receipt comes back in _meta['x402/payment-response']. No account, no API key. Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'type': 'string', 'maxLength': 2048, 'minLength': 1, 'description': 'An http(s) URL or bare domain, at most 2048 UTF-8 bytes.'}}, 'additionalProperties': False}
claim_acquire
Take a named lock (paid, x402)
PAID: atomically win a caller-named key for your own fleet -- an accountless compare-and-set. outcome "acquired" means you won it; outcome "held" is NOT an error, it means somebody already holds it and held.mine says whether that somebody is you -- the signal that stops a crash-resume or a duplicated retry doing an irreversible action twice. Keys are scoped to the PAYING WALLET: one payer's keys are invisible to every other payer. Inspect it with claim_read, give it up early with claim_release, extend it with claim_renew. Call it once without payment to receive the price as an x402 PaymentRequired (Base USDC, and Solana USDC where offered); call it again with a signed payment in _meta['x402/payment'] to complete it. The receipt comes back in _meta['x402/payment-response']. No account, no API key. Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['key', 'holder', 'plan'], 'properties': {'key': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'description': "1..256 UTF-8 bytes, no '/' character -- the name you want to hold, scoped to your own wallet."}, 'plan': {'enum': ['hour', 'day', 'week'], 'type': 'string', 'description': 'Which plan to buy; it sets both the hold duration and the price. See GET /pricing or the service_card tool for the live table.'}, 'holder': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'description': '1..256 UTF-8 bytes -- an id identifying which of your own processes is acting. It is not signed; the signature proves the wallet, not the process.'}}, 'additionalProperties': False}
claim_acquire_free
Take a named lock for 300 seconds (free)
FREE: win a caller-named key for 300 seconds, or learn who already holds it. Unlimited distinct keys per wallet, renewable by calling again. A sibling of claim_acquire, not a discount on it: this lease is 12x shorter than the cheapest paid plan, so a lock that has to survive a deploy, a batch or a day is on the paid ladder from the first minute. The free-acquire signature has its OWN domain, distinct from the read and release domains, so neither of those can be replayed into an acquire. Ownership is proved by the paying wallet, with no account: send any placeholder signature once and the refusal returns details.expected -- the exact message to sign, in both forms (EIP-191 for a 0x wallet, ed25519 as 'solana:<base58 pubkey>:<base58 sig>'). Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['key', 'holder', 'signature', 'nonce', 'signedAt'], 'properties': {'key': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'description': "1..256 UTF-8 bytes, no '/' character -- the name you want to hold, scoped to your own wallet."}, 'nonce': {'type': 'string', 'description': 'A value you have not used before on this route; it stops your signature being replayed.'}, 'holder': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'description': '1..256 UTF-8 bytes -- an id identifying which of your own processes is acting. It is not signed; the signature proves the wallet, not the process.'}, 'signedAt': {'type': 'integer', 'description': 'Unix timestamp in seconds at which you signed; the server accepts a short window around now.'}, 'signature': {'type': 'string', 'description': 'Your ownership proof over the message the route names in details.expected.'}}, 'additionalProperties': False}
claim_read
Who holds this key (free)
FREE: who currently holds this key, if anyone -- scoped to YOUR wallet, so a stranger cannot probe your namespace. Checking your own lock must not cost again, or a fleet polling its own hold is charged for not doing work twice. A key nobody holds answers with claim: null, never a not-found: "is this free?" is a legitimate question with a legitimate negative answer. The read signature cannot release the key. Ownership is proved by the paying wallet, with no account: send any placeholder signature once and the refusal returns details.expected -- the exact message to sign, in both forms (EIP-191 for a 0x wallet, ed25519 as 'solana:<base58 pubkey>:<base58 sig>'). Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['key', 'signature', 'nonce', 'signedAt'], 'properties': {'key': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'description': "1..256 UTF-8 bytes, no '/' character -- the name you want to hold, scoped to your own wallet."}, 'nonce': {'type': 'string', 'description': 'A value you have not used before on this route; it stops your signature being replayed.'}, 'signedAt': {'type': 'integer', 'description': 'Unix timestamp in seconds at which you signed; the server accepts a short window around now.'}, 'signature': {'type': 'string', 'description': 'Your ownership proof over the message the route names in details.expected.'}}, 'additionalProperties': False}
claim_release
Give up a lock you hold (free)
FREE: give up a key you hold before it expires, so the next racer does not have to wait out your hold. Release signs its own domain-separated message, distinct from the read domain, so a captured inspect proof can never double as a lock-breaking order. The signature proves the WALLET and does not by itself authorize the release: holder is separate and unsigned, and the release is refused unless it names the CURRENT holder (CLAIM_NOT_YOURS) -- what stops one member of your fleet breaking a sibling's lock. Ownership is proved by the paying wallet, with no account: send any placeholder signature once and the refusal returns details.expected -- the exact message to sign, in both forms (EIP-191 for a 0x wallet, ed25519 as 'solana:<base58 pubkey>:<base58 sig>'). Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Destructif
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['key', 'holder', 'signature', 'nonce', 'signedAt'], 'properties': {'key': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'description': "1..256 UTF-8 bytes, no '/' character -- the name you want to hold, scoped to your own wallet."}, 'nonce': {'type': 'string', 'description': 'A value you have not used before on this route; it stops your signature being replayed.'}, 'holder': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'description': '1..256 UTF-8 bytes -- an id identifying which of your own processes is acting. It is not signed; the signature proves the wallet, not the process.'}, 'signedAt': {'type': 'integer', 'description': 'Unix timestamp in seconds at which you signed; the server accepts a short window around now.'}, 'signature': {'type': 'string', 'description': 'Your ownership proof over the message the route names in details.expected.'}}, 'additionalProperties': False}
claim_renew
Extend a lock you hold (paid, x402)
PAID: extend a hold you already have without losing your place in line -- the heartbeat that lets a lease be SHORT (so a crash frees it fast) while a live holder keeps it alive by paying again. Re-acquiring with claim_acquire deliberately does NOT extend, so a retry loop cannot hold a key indefinitely by accident. Call it once without payment to receive the price as an x402 PaymentRequired (Base USDC, and Solana USDC where offered); call it again with a signed payment in _meta['x402/payment'] to complete it. The receipt comes back in _meta['x402/payment-response']. No account, no API key. Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['key', 'holder', 'plan'], 'properties': {'key': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'description': "1..256 UTF-8 bytes, no '/' character -- the name you want to hold, scoped to your own wallet."}, 'plan': {'enum': ['hour', 'day', 'week'], 'type': 'string', 'description': 'Which plan to buy; it sets both the hold duration and the price. See GET /pricing or the service_card tool for the live table.'}, 'holder': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'description': '1..256 UTF-8 bytes -- an id identifying which of your own processes is acting. It is not signed; the signature proves the wallet, not the process.'}}, 'additionalProperties': False}
deadman_confirm
Close the loop on an intent (free)
FREE: the live caller closes the loop before the lease expires, so the probe never runs. Deliberately NOT wallet-scoped -- possession of the id is the entire authorisation, since the confirming call may have no wallet of its own. Refused, never a silent no-op, once the entry has left pending: confirming an already-resolved entry could otherwise overwrite a probe verdict with a claim from a caller who may not even be the process that registered it. Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The entry id returned by deadman_register.'}}, 'additionalProperties': False}
deadman_read
Read an intent and its verdict (free)
FREE and unauthenticated: read an entry back by id, including its verdict and the raw probe response once resolved. This is how what you bought with deadman_register comes back over MCP. If the lease has lapsed and nobody has resolved it, the probe runs right here, synchronously, before answering -- each entry can trigger at most one live probe, ever. Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The entry id returned by deadman_register.'}}, 'additionalProperties': False}
deadman_register
Register an intent with a verification probe (paid, x402)
PAID: register an intent you are about to act on irreversibly, with a lease and a verification probe (a GET plus a predicate). Confirm before the lease expires with deadman_confirm, free -- otherwise, once the lease lapses, we run your probe and publish the verdict: confirmed-by-probe, refuted-by-probe, or unresolved (a first-class, honest outcome when the probe could not complete -- never guessed as refuted). The raw probe response is published beside the verdict via deadman_read, free, so you can re-run it and check our answer rather than simply believing it. Call it once without payment to receive the price as an x402 PaymentRequired (Base USDC, and Solana USDC where offered); call it again with a signed payment in _meta['x402/payment'] to complete it. The receipt comes back in _meta['x402/payment-response']. No account, no API key. Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['description', 'leaseSeconds', 'probe'], 'properties': {'probe': {'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'maxLength': 2048, 'description': 'Absolute http:// or https:// URL, GETted from OUR vantage point once the lease expires.'}, 'expectedStatus': {'type': 'integer', 'maximum': 599, 'minimum': 100, 'description': 'The response status must equal this for the verdict to be confirmed-by-probe.'}, 'expectedBodyContains': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'The response body must contain this substring for the verdict to be confirmed-by-probe.'}}, 'description': 'At least one of expectedBodyContains / expectedStatus is required.', 'additionalProperties': False}, 'description': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'What you are about to do.'}, 'leaseSeconds': {'type': 'number', 'maximum': 604800, 'minimum': 1, 'description': "How long before an unconfirmed entry's probe runs. 1..604800 seconds."}}, 'additionalProperties': False}
drift_baseline
The baseline we hold for one venue (free)
FREE: the baseline snapshot we hold for one venue -- what a paid check would diff against, and when it was taken. Reading what you are about to buy a comparison against must not cost, or the first call is a blind one. Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['venue'], 'properties': {'venue': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'description': 'A venue id we hold a baseline snapshot for; list them free with drift_venues. A venue we have never snapshotted is a free 404, never a charge.'}}, 'additionalProperties': False}
drift_check
Re-fetch a venue and diff it against our baseline (paid, x402)
PAID: we re-fetch a venue we have snapshotted before, from OUR vantage point, and return what changed since the baseline -- the schema/rubric fields that moved, were added and were removed, not a byte diff. The answer to "did this venue quietly change its rules under me?" for an agent that cannot keep its own corpus. No drift is still an answer and is still billed: the comparison is what is sold. Aim it with drift_venues (which venues we hold) and drift_baseline (what we hold for one), both free. Call it once without payment to receive the price as an x402 PaymentRequired (Base USDC, and Solana USDC where offered); call it again with a signed payment in _meta['x402/payment'] to complete it. The receipt comes back in _meta['x402/payment-response']. No account, no API key. Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['venue'], 'properties': {'venue': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'description': 'A venue id we hold a baseline snapshot for; list them free with drift_venues. A venue we have never snapshotted is a free 404, never a charge.'}}, 'additionalProperties': False}
drift_venues
Which venues we can check for drift (free)
FREE: every venue id drift_check can be aimed at, with what we hold for each. A closed value set, not a pattern: without it a caller can honour the input schema and still never name something buyable, which is a paywall on discovery rather than on work. Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
execute
Run code (paid, x402)
PAID: run code in an isolated, network-less sandbox and get stdout, stderr and exit code back. Call it once without payment to receive the price as an x402 PaymentRequired (Base USDC, and Solana USDC where offered); call it again with a signed payment in _meta['x402/payment'] to run. The receipt comes back in _meta['x402/payment-response']. No account, no API key. Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['runtime', 'source'], 'properties': {'files': {'type': 'array', 'items': {}, 'description': 'Optional extra files, as POST /execute takes them.'}, 'stdin': {'type': 'string', 'description': 'Optional standard input.'}, 'limits': {'type': 'object', 'description': 'Optional limits (timeoutMs, memoryMb, ...); they set the price.', 'additionalProperties': {}}, 'source': {'type': 'string', 'description': 'The program to run.'}, 'runtime': {'type': 'string', 'description': 'Runtime name, e.g. python3 or node -- see GET /quote or the service_card tool for the list.'}}, 'additionalProperties': False}
handoff_deposit
Deposit a briefing for your successor (paid, x402)
PAID: deposit a typed briefing for the process that takes over from you -- what is DONE (every entry carrying evidence of how it was verified), what is NOT done, what was IN FLIGHT at the cut, and what to pick up FIRST. Returns an id; the successor reads it back for free with handoff_read, with no identity, header or payment of any kind, so neither side needs an account with us. Retained 3 days. The done section is structurally forbidden from holding an unverified claim: a briefing cannot assert something is finished on intent alone. Call it once without payment to receive the price as an x402 PaymentRequired (Base USDC, and Solana USDC where offered); call it again with a signed payment in _meta['x402/payment'] to complete it. The receipt comes back in _meta['x402/payment-response']. No account, no API key. Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['done', 'notDone', 'inFlight', 'pickUpFirst'], 'properties': {'done': {'type': 'array', 'items': {'type': 'object', 'required': ['text', 'confidence', 'evidence'], 'properties': {'text': {'type': 'string', 'maxLength': 1000, 'minLength': 1, 'description': 'The claim itself, one statement.'}, 'evidence': {'anyOf': [{'type': 'string', 'maxLength': 1000}, {'type': 'null'}], 'description': 'How it was verified -- a command, a probe result, a file read; the evidence itself, not a restatement of text. Non-null exactly when confidence is measured.'}, 'confidence': {'enum': ['measured', 'unverified'], 'type': 'string', 'description': "'measured' means you verified it and evidence says how; 'unverified' means you did not, and evidence MUST then be null."}}, 'description': 'One claim: what, how sure, and the proof.', 'additionalProperties': False}, 'maxItems': 100, 'description': "What is DONE. EVERY entry must have confidence 'measured' with non-null evidence; otherwise this is refused, free, as HANDOFF_DONE_REQUIRES_MEASURED."}, 'notDone': {'type': 'array', 'items': {'$ref': '#/properties/done/items'}, 'maxItems': 100, 'description': 'What is NOT done. May be measured or unverified.'}, 'inFlight': {'type': 'array', 'items': {'$ref': '#/properties/done/items'}, 'maxItems': 100, 'description': 'What was IN FLIGHT at the cut -- neither finished nor abandoned.'}, 'pickUpFirst': {'type': 'string', 'maxLength': 2000, 'minLength': 1, 'description': 'What the successor should do FIRST. Mandatory and non-empty: a briefing with no next action is not a handoff.'}}, 'additionalProperties': False}
handoff_read
Read a briefing (free)
FREE and unauthenticated: read a briefing back by id. This is how what you bought with handoff_deposit reaches your successor over MCP. Deliberately needs no signature -- the successor is by construction a DIFFERENT process and may hold no wallet at all, so demanding proof of the payer would make the product undeliverable. Possession of the id is the entire authorisation; treat it as a secret. Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The briefing id returned by handoff_deposit.'}}, 'additionalProperties': False}
listing_promote
Buy paid placement for a directory listing (paid, x402)
PAID: buy paid placement for a listing you own in this directory -- it ranks above free rows and reads tier "paid" for the life of the plan. Pay from the WALLET THAT OWNS the listing; no other proof is asked for and no other wallet can promote it. Promoting an already-promoted row EXTENDS it rather than replacing it, so renewing early never costs you the time you already paid for. Find the id, the live price table and the current paidUntil for free with search_listings. Call it once without payment to receive the price as an x402 PaymentRequired (Base USDC, and Solana USDC where offered); call it again with a signed payment in _meta['x402/payment'] to complete it. The receipt comes back in _meta['x402/payment-response']. No account, no API key. Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'duration'], 'properties': {'id': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'description': 'The listing to promote. It must already exist and be owned by the paying wallet -- create it free with POST /listings.'}, 'duration': {'enum': ['day', 'week', 'month'], 'type': 'string', 'description': 'Which placement plan to buy; it sets both the placement window and the price. See GET /pricing or the service_card tool for the live table.'}}, 'additionalProperties': False}
search_listings
Search the agent-exec directory
Free, unauthenticated search over agent-exec's directory of paid agent-facing services (same data as GET https://agent-exec.448c.org/listings). Returns a page of listings and an opaque cursor for the next page.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'tag': {'type': 'string', 'description': 'Filter to listings carrying this tag.'}, 'limit': {'type': 'integer', 'description': 'Max listings to return (server-bounded regardless).', 'exclusiveMinimum': 0}, 'cursor': {'type': 'string', 'description': "Opaque pagination cursor from a previous call's nextCursor."}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'object', 'required': ['code', 'message', 'details'], 'properties': {'code': {'type': 'string', 'const': 'LISTINGS_QUERY_INVALID'}, 'details': {'type': 'object', 'additionalProperties': {}}, 'message': {'type': 'string'}}, 'additionalProperties': False}, 'listings': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'url', 'name', 'description', 'tags', 'tier', 'lastSeenAlive', 'paidUntil', 'dead', 'lastProbeCode', 'operator', 'provenance', 'claimable', 'claim', 'consecutiveFailures', 'deadSince', 'evictsAt', 'remedy', 'promote'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'dead': {'type': 'boolean'}, 'name': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'tier': {'enum': ['free', 'paid'], 'type': 'string'}, 'claim': {'type': ['string', 'null']}, 'remedy': {'type': ['string', 'null']}, 'promote': {'type': 'object', 'required': ['url', 'method', 'plans'], 'properties': {'url': {'type': 'string'}, 'plans': {'type': 'array', 'items': {'type': 'object', 'required': ['duration', 'name', 'days', 'priceUsd', 'price'], 'properties': {'days': {'type': 'number'}, 'name': {'type': 'string'}, 'price': {'type': 'string'}, 'duration': {'type': 'string'}, 'priceUsd': {'type': 'number'}}, 'additionalProperties': False}}, 'method': {'type': 'string', 'const': 'POST'}}, 'additionalProperties': False}, 'evictsAt': {'type': ['number', 'null']}, 'operator': {'type': 'boolean'}, 'claimable': {'type': 'boolean'}, 'deadSince': {'type': ['number', 'null']}, 'paidUntil': {'type': ['number', 'null']}, 'provenance': {'enum': ['owner', 'operator', 'curated'], 'type': 'string'}, 'description': {'type': 'string'}, 'lastProbeCode': {'type': ['string', 'null']}, 'lastSeenAlive': {'type': ['number', 'null']}, 'consecutiveFailures': {'type': 'number'}, 'ownerVerifiedAlternate': {'type': 'object', 'required': ['url', 'verifiedVia', 'signedByOwner'], 'properties': {'url': {'type': 'string'}, 'verifiedVia': {'type': 'string'}, 'signedByOwner': {'type': 'boolean'}}, 'additionalProperties': False}}, 'additionalProperties': True}}, 'nextCursor': {'type': ['string', 'null']}}, 'additionalProperties': False}
service_card
agent-exec service card
What agent-exec sells, what it costs, and exactly where to pay for it. This tool call itself is free and moves no money. Code execution can be bought right here, with the paid execute tool (x402 over MCP), or over plain HTTP at the URLs this returns. Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['service', 'description', 'network', 'execute', 'quote', 'directory', 'resources', 'payment', 'openapi', 'llmsTxt'], 'properties': {'quote': {'type': 'object', 'required': ['endpoint', 'method', 'free'], 'properties': {'free': {'type': 'boolean'}, 'method': {'type': 'string'}, 'endpoint': {'type': 'string'}}, 'additionalProperties': False}, 'execute': {'type': 'object', 'required': ['endpoint', 'method', 'priceUsd', 'note'], 'properties': {'note': {'type': 'string'}, 'method': {'type': 'string'}, 'endpoint': {'type': 'string'}, 'priceUsd': {'type': 'number'}}, 'additionalProperties': False}, 'llmsTxt': {'type': 'string'}, 'network': {'type': 'string'}, 'openapi': {'type': 'string'}, 'payment': {'type': 'object', 'required': ['protocol', 'transport', 'manifest', 'howToPay', 'identity'], 'properties': {'howToPay': {'type': 'string'}, 'identity': {'type': 'string'}, 'manifest': {'type': 'string'}, 'protocol': {'type': 'string'}, 'transport': {'type': 'string'}}, 'additionalProperties': False}, 'service': {'type': 'string'}, 'directory': {'type': 'object', 'required': ['listEndpoint', 'listingIsFree', 'paidPlacement', 'promoteEndpoint'], 'properties': {'listEndpoint': {'type': 'string'}, 'listingIsFree': {'type': 'boolean'}, 'paidPlacement': {'type': 'array', 'items': {'type': 'object', 'required': ['duration', 'priceUsd'], 'properties': {'duration': {'type': 'string'}, 'priceUsd': {'type': 'number'}}, 'additionalProperties': False}}, 'promoteEndpoint': {'type': 'string'}}, 'additionalProperties': False}, 'resources': {'type': 'array', 'items': {'type': 'object', 'required': ['resource', 'method', 'free', 'description'], 'properties': {'free': {'type': 'boolean'}, 'method': {'type': 'string'}, 'pricing': {}, 'resource': {'type': 'string'}, 'description': {'type': 'string'}}, 'additionalProperties': False}}, 'description': {'type': 'string'}}, 'additionalProperties': False}
storage_buy
Store an object (paid, x402)
PAID: store opaque bytes for the life of the plan you buy, owned by the wallet that pays, readable with no account. Returns the object id and when it expires; read it back with storage_read, extend it with storage_renew. Call it once without payment to receive the price as an x402 PaymentRequired (Base USDC, and Solana USDC where offered); call it again with a signed payment in _meta['x402/payment'] to complete it. The receipt comes back in _meta['x402/payment-response']. No account, no API key. Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['plan', 'contentBase64'], 'properties': {'plan': {'enum': ['small', 'medium', 'large'], 'type': 'string', 'description': 'Storage plan; it sets both the size limit and the price. See GET /pricing or the service_card tool for the live table.'}, 'label': {'type': 'string', 'description': 'Optional caller-chosen label, up to 256 characters, no control characters.'}, 'contentBase64': {'type': 'string', 'description': 'The bytes to store, base64-encoded. Decoded size must fit the plan.'}}, 'additionalProperties': False}
storage_delete
Delete a stored object (free)
FREE: delete an object you own before it expires, and free its bytes. There is no refund and no undo. Ownership is proved by the paying wallet, with no account: send any placeholder signature once and the refusal returns details.expected -- the exact message to sign, in both forms (EIP-191 for a 0x wallet, ed25519 as 'solana:<base58 pubkey>:<base58 sig>'). Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Destructif
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'signature', 'nonce', 'signedAt'], 'properties': {'id': {'type': 'string', 'description': 'The object id returned when it was bought.'}, 'nonce': {'type': 'string', 'description': 'A value you have not used before on this route; it stops your signature being replayed.'}, 'signedAt': {'type': 'integer', 'description': 'Unix timestamp in seconds at which you signed; the server accepts a short window around now.'}, 'signature': {'type': 'string', 'description': 'Your ownership proof over the message the route names in details.expected.'}}, 'additionalProperties': False}
storage_list
List your stored objects (free)
FREE: list the objects your wallet owns -- id, label, size, when each was created and when it expires -- one page at a time. Ownership is proved by the paying wallet, with no account: send any placeholder signature once and the refusal returns details.expected -- the exact message to sign, in both forms (EIP-191 for a 0x wallet, ed25519 as 'solana:<base58 pubkey>:<base58 sig>'). Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['signature', 'nonce', 'signedAt'], 'properties': {'after': {'type': 'string', 'description': "Opaque cursor from a previous call's nextCursor."}, 'nonce': {'type': 'string', 'description': 'A value you have not used before on this route; it stops your signature being replayed.'}, 'signedAt': {'type': 'integer', 'description': 'Unix timestamp in seconds at which you signed; the server accepts a short window around now.'}, 'signature': {'type': 'string', 'description': 'Your ownership proof over the message the route names in details.expected.'}}, 'additionalProperties': False}
storage_read
Read a stored object (free)
FREE: read back an object you own, as base64. This is how what you bought with storage_buy comes back to you over MCP. Ownership is proved by the paying wallet, with no account: send any placeholder signature once and the refusal returns details.expected -- the exact message to sign, in both forms (EIP-191 for a 0x wallet, ed25519 as 'solana:<base58 pubkey>:<base58 sig>'). Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'signature', 'nonce', 'signedAt'], 'properties': {'id': {'type': 'string', 'description': 'The object id returned when it was bought.'}, 'nonce': {'type': 'string', 'description': 'A value you have not used before on this route; it stops your signature being replayed.'}, 'signedAt': {'type': 'integer', 'description': 'Unix timestamp in seconds at which you signed; the server accepts a short window around now.'}, 'signature': {'type': 'string', 'description': 'Your ownership proof over the message the route names in details.expected.'}}, 'additionalProperties': False}
storage_renew
Extend a stored object (paid, x402)
PAID: push an object you own further out, by buying it another plan term. The object is untouched; only its expiry moves. Returns the new and previous expiry. Call it once without payment to receive the price as an x402 PaymentRequired (Base USDC, and Solana USDC where offered); call it again with a signed payment in _meta['x402/payment'] to complete it. The receipt comes back in _meta['x402/payment-response']. No account, no API key. Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'plan'], 'properties': {'id': {'type': 'string', 'description': 'The object id returned when it was bought.'}, 'plan': {'enum': ['small', 'medium', 'large'], 'type': 'string', 'description': 'Storage plan; it sets both the size limit and the price. See GET /pricing or the service_card tool for the live table.'}}, 'additionalProperties': False}
storage_replace
Replace a stored object (paid, x402)
PAID: overwrite the contents of an object you own, keeping its id, and buy it a fresh plan term at the same time. Omit label to keep the current one, pass an empty string to clear it. Call it once without payment to receive the price as an x402 PaymentRequired (Base USDC, and Solana USDC where offered); call it again with a signed payment in _meta['x402/payment'] to complete it. The receipt comes back in _meta['x402/payment-response']. No account, no API key. Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Destructif
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'plan', 'contentBase64'], 'properties': {'id': {'type': 'string', 'description': 'The object id returned when it was bought.'}, 'plan': {'enum': ['small', 'medium', 'large'], 'type': 'string', 'description': 'Storage plan; it sets both the size limit and the price. See GET /pricing or the service_card tool for the live table.'}, 'label': {'type': 'string', 'description': 'Optional caller-chosen label, up to 256 characters, no control characters.'}, 'contentBase64': {'type': 'string', 'description': 'The replacement bytes, base64-encoded. Decoded size must fit the plan.'}}, 'additionalProperties': False}
storage_usage
Your storage usage (free)
FREE: how many objects your wallet is storing and how many bytes they occupy. Ownership is proved by the paying wallet, with no account: send any placeholder signature once and the refusal returns details.expected -- the exact message to sign, in both forms (EIP-191 for a 0x wallet, ed25519 as 'solana:<base58 pubkey>:<base58 sig>'). Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['signature', 'nonce', 'signedAt'], 'properties': {'nonce': {'type': 'string', 'description': 'A value you have not used before on this route; it stops your signature being replayed.'}, 'signedAt': {'type': 'integer', 'description': 'Unix timestamp in seconds at which you signed; the server accepts a short window around now.'}, 'signature': {'type': 'string', 'description': 'Your ownership proof over the message the route names in details.expected.'}}, 'additionalProperties': False}
watch_read
The state and verdict of a watch (free)
FREE: the current state of a watch you registered -- active, matched or expired, with the observation that matched. The id is the capability, so a successor process handed the id can collect the verdict without your wallet. Reading never triggers a poll and is never charged: polling your own pending answer must not cost again. Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'description': 'The watch id returned by watch_register.'}}, 'additionalProperties': False}
watch_register
Durable poll of a URL until a condition fires (paid, x402)
PAID: we poll a URL from OUR vantage point on your interval until your predicate matches or the ttl runs out, and keep the verdict for you to collect -- a wait that survives your own process dying, which is what an agent cannot do for itself. Price is a function of intervalSeconds x ttlSeconds (interval 60..86400s, ttl 60..604800s), so a first unpaid call quotes YOUR request rather than a fixed plan. The reply carries the id: read it back any time, free and as often as you like, with watch_read. Call it once without payment to receive the price as an x402 PaymentRequired (Base USDC, and Solana USDC where offered); call it again with a signed payment in _meta['x402/payment'] to complete it. The receipt comes back in _meta['x402/payment-response']. No account, no API key. Complaints, questions, quote requests, or a service you wish we had: POST /feedback on this host -- free, no account. Every report is read and analysed daily; there is no individual reply.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url', 'intervalSeconds', 'ttlSeconds', 'predicate'], 'properties': {'url': {'type': 'string', 'maxLength': 2048, 'minLength': 1, 'description': 'Absolute http:// or https:// URL, at most 2048 UTF-8 bytes. We GET it; the body is never returned to you, only the verdict.'}, 'predicate': {'type': 'object', 'required': ['type'], 'properties': {'path': {'type': 'string', 'description': 'jsonPathEquals/jsonPathNotEquals (required) and changedFromNow (optional): a dotted path into the JSON body, e.g. "data.price".'}, 'type': {'enum': ['statusChanged', 'statusEquals', 'bodyContains', 'bodyNotContains', 'jsonPathEquals', 'jsonPathNotEquals', 'changedFromNow'], 'type': 'string', 'description': 'What counts as a match. The remaining fields are the ones this type needs; the route returns a free 400 naming any that is missing.'}, 'value': {'type': ['string', 'number', 'boolean', 'null'], 'description': 'bodyContains/bodyNotContains: a substring of at most 500 characters. jsonPathEquals/jsonPathNotEquals: the scalar the path must (not) equal.'}, 'status': {'type': 'integer', 'maximum': 599, 'minimum': 100, 'description': 'statusEquals: the HTTP status that fires the watch.'}}, 'description': 'The condition that ends the watch.', 'additionalProperties': False}, 'storageKey': {'type': 'string', 'description': 'Optional: on a match, the result is also written to /storage under this key for the paying wallet, so a successor process can collect it without knowing the watch id.'}, 'ttlSeconds': {'type': 'integer', 'description': 'How long to keep watching, 60..604800. Must exceed intervalSeconds, or the watch expires before a second sample exists.'}, 'intervalSeconds': {'type': 'integer', 'description': 'Seconds between polls, 60..86400. Shorter costs more.'}}, 'additionalProperties': False}
Ajouté
check_url
27 September 2026 02:50
Ajouté
check_address
27 September 2026 02:50
Ajouté
watch_read
23 September 2026 02:50
Ajouté
watch_register
23 September 2026 02:50
Ajouté
drift_baseline
23 September 2026 02:50
Ajouté
drift_venues
23 September 2026 02:50
Ajouté
drift_check
23 September 2026 02:50
Ajouté
listing_promote
23 September 2026 02:50
Ajouté
deadman_read
23 September 2026 02:50
Ajouté
deadman_confirm
23 September 2026 02:50
Ajouté
deadman_register
23 September 2026 02:50
Ajouté
handoff_read
23 September 2026 02:50
Ajouté
handoff_deposit
23 September 2026 02:50
Ajouté
attest_read
23 September 2026 02:50
Ajouté
attest_create
23 September 2026 02:50
Ajouté
claim_release
23 September 2026 02:50
Ajouté
claim_read
23 September 2026 02:50
Ajouté
claim_acquire_free
23 September 2026 02:50
Ajouté
claim_renew
23 September 2026 02:50
Ajouté
claim_acquire
23 September 2026 02:50
Ajouté
storage_delete
23 September 2026 02:50
Ajouté
storage_usage
23 September 2026 02:50
Ajouté
storage_list
23 September 2026 02:50
Ajouté
storage_read
23 September 2026 02:50
Ajouté
storage_replace
23 September 2026 02:50
Ajouté
storage_renew
23 September 2026 02:50
Ajouté
storage_buy
23 September 2026 02:50
Modifié
search_listings
21 September 2026 02:57
Modifié
service_card
21 September 2026 02:57
Ajouté
execute
21 September 2026 02:57