Look up Conservatory oboe fingerings, half-hole, left/forked F rules, octave keys & trills.
Developer ToolsData access / search
- Passed: Handshake
- Passed: Tools listed
- Passed: Updated recently
Median latency 66 ms · Last checked
Explore
Evidence for your next connection.
Independent measurements of remote MCP servers. Every observation has a timestamp.
Read-only probesMCP server · Data access / search
Search Amazon, eBay, Walmart and more. Agents prepare orders; you approve and pay on Escrova.
2 failed · 8 not measured
Median of successful probes over 7 days
Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.
Tool definitions returned by this server
Independent monitoring
Responded
The server completed its last measured handshake. This is an observation, not a guarantee.
Last checked| Test area | Passed | Failed | Unmeasured |
|---|---|---|---|
ConnectionCan a client connect and discover tools? | 5 | 0 | 0 |
Reliability & speedDoes it respond consistently and quickly? | 0 | 0 | 4 |
Access & authenticationWhat is required to use this server? | 1 | 0 | 2 |
Tool qualityAre the tool definitions usable by an agent? | 3 | 1 | 0 |
Publisher identityCan the publisher be traced to its source? | 3 | 1 | 2 |
Unmeasured means there is not enough evidence to decide. How these checks work
Start using Escrova
Choose your client, copy the configuration, then enable the server in your client’s MCP settings.
Run this command in your terminal, then restart Claude Code.
Claude Code
claude mcp add --transport http escrova https://www.escrova.io/api/mcpCapabilities
Ask for a challenge bound to the exact request you are about to make. The safe MCP form is targetTool plus targetArguments: this adapter prepares the exact method, encoded path and JSON body bytes, hashes those same bytes, and returns them as request beside the message. Sign the returned message with the USER'S wallet, in their own wallet connector, then pass walletAddress, nonce and signature to the tool you are calling. One challenge per request. The legacy method/path/bodySha256 form remains accepted for direct HTTP clients. A challenge taken for a different request is refused even when the signature itself is perfect. Start with whoami, which is GET /api/agent/auth/whoami and has no body. This tool itself is POST /api/agent/auth/challenge and needs no signature: it is how you get one.
DiscoveredSaves a private draft of a listing. NOTHING IS LISTED: a draft is not for sale, is not in any review queue and costs nothing. Only the seller can publish it, signed in on Escrova, and there is no publish tool. Under a delegation grant with the `sell` scope the draft is the PERSON's. Send what you know now and add the rest with update_listing_draft; prepare_listing_publish says what is still missing. Available to every shopper on mainnet. Bind the challenge to POST /api/agent/listings/drafts, over the body this tool sends.
DiscoveredNarrow towards a purchase without inventing keywords. One call returns children[] and childrenDeep[] with estimated counts, brands[] each with an engineParam you can pass straight back to search_products.engineParam, the shop's own facets[], aspectTiles[], siblings[], related[] and a deals[] rail. GET /api/agent/browse/tree/<slug>, or GET /api/agent/browse/tree/<slug>/<nodeId> for any category under a department. No wallet and no signature. contentAt is when those deal prices were read. Counts are estimates and countScope says so. A shelf already read answers from cache; a cold one costs one call against the catalogue quota shared with shoppers, so read the shelf you want rather than walking the tree.
DiscoveredReads one order you prepared with prepare_checkout, under the same grant. The answer carries `state`: approval_required (the person has not approved it yet), payment_pending (the person approved it; paying and following the order is theirs, on Escrova), not_started (it expired, was cancelled or is not yours; nothing is waiting) or reconciliation_required (this read was refused or failed, so it says nothing about the order, which may still be waiting: read the body, fix the request and read again). It stays payment_pending after they pay, because this tool cannot see the payment and never reports a finished purchase: ask the person. Bind the challenge to GET /api/agent/checkout-intents/<intentId>, the id in the path and no body.
DiscoveredFor a "find something on offer" task. GET /api/agent/browse/deals?tab=<tab>, where tab is markdowns, refurbished, top-rated, brands, or door:<slug> for one department. No wallet and no signature. Every item carries cachedAt, which is when that price was true: A selection over rows this site has already cached, so it costs no catalogue call. An unknown tab is refused with 400 rather than guessed at. A sticker discount is not a cheaper order.
DiscoveredRead the grants naming your wallet. On mainnet they allow only preparing orders, drafting listings and reading saved addresses; the person approves and pays or publishes. Only the person can create or revoke a grant at /delegation. Ask them for its id and send it as delegationGrantId. Bind the challenge to GET /api/agent/delegation/grants with no body.
DiscoveredEvery department, the groups under it and the links under those, for picking a shelf in one read rather than walking down to it. GET /api/agent/browse/directory. No wallet and no signature. Built ONLY from rows already cached, so it costs no catalogue call at all and a picture or count nobody has fetched yet comes back null rather than being fetched for you. Prefer this over repeated get_category calls when you are still deciding where to look.
DiscoveredThe current fee schedule and delivery rates, so a total can be explained before anyone pays it. GET /api/config/fees. No wallet and no signature.
DiscoveredOne draft, with its fields, its `version` and whether it is still open. A draft the seller published names the listing it became. Bind the challenge to GET /api/agent/listings/drafts/<draftId>, the id in the path and no body.
DiscoveredCurrent USD prices of the coins shown on Escrova. GET /api/prices. No wallet and no signature. Checkout on this deployment takes USDC only.
DiscoveredReturns the current Terms of Service and Privacy Policy version and document hash. GET /api/agent/legal/terms. No wallet and no signature.
DiscoveredThe saved addresses on this account, with which one is the default. Use an id as `addressId` on prepare_checkout, or send no destination at all and the default is used. Under a delegation grant with the `addresses` scope these are the person's saved addresses, not yours. Bind the challenge to GET /api/agent/addresses with no body.
DiscoveredStart a shopping task here instead of guessing search words. Returns the sixteen departments, each with the slug get_category takes and a picture. A keyword search is one guess at what somebody meant; a department is the shop's own shelf, and get_category on one hands you the brands, the filters and a page of listings in a single call. GET /api/agent/browse/categories. No wallet and no signature. Served from cache; a department whose picture has gone cold costs one call against the catalogue quota this site shares with its shoppers.
DiscoveredPrices a basket of store items for the person whose grant you hold and saves it for them to review. THIS BUYS NOTHING AND MOVES NO MONEY. The answer carries `state`: approval_required with a reviewUrl, the page on Escrova where the person checks every line, approves and pays from their own wallet. Give them that link and stop: you cannot approve or pay. A signed-out person signs in on that page and continues with the same order. Send items, and to choose where it goes send the addressId of one of their saved addresses from list_addresses; with none their default is used. A typed address, a marketplace listing, a gift, an item whose condition is not new and a quantity that is not a whole number are refused. The grant needs the `buy` scope. Other states: not_started (refused, nothing was prepared; read the body) or reconciliation_required (outcome unknown; ask the person before preparing it again). Available to every shopper on mainnet. Bind the challenge to POST /api/agent/checkout-intents, over the body this tool sends, with delegationGrantId in targetArguments.
DiscoveredReturns what the seller will be shown before they publish: the draft's versionHash, the fields still `missing`, a preview with every publishing charge and the seller fee, and a previewUrl. THIS PUBLISHES NOTHING and saves nothing. Give the seller the previewUrl: publishing is theirs alone, signed in on Escrova, for exactly the version they were shown. Bind the challenge to POST /api/agent/listings/drafts/<draftId>/prepare-publish, the id in the path and no body.
DiscoveredSearch products across the marketplaces Escrova can actually buy from today. Six sources are searchable: amazon, ebay, walmart, bestbuy, homedepot, wayfair, or "all". GET /api/products/search. No wallet and no signature. Send q, cat, or both; page and every selected filter are preserved together. A brands[].engineParam returned by get_category goes into engineParam here and is sent as the typed eBay aspect filter, while Google refinements use shoprs. The REST pagination and degraded-source metadata are returned unchanged. A search is one guess at what somebody meant and it spends a paid provider call; when you know roughly what department a thing is in, list_categories and get_category narrow further for less.
DiscoveredChanges the fields you send on an open draft and leaves the rest. Send the `version` you last read: a draft somebody changed since answers 409 DRAFT_CHANGED, so read it again with get_listing_draft and resend. A draft the seller already published or closed cannot be changed. Nothing is listed by this call. Bind the challenge to PATCH /api/agent/listings/drafts/<draftId>, the id in the path, over the body this tool sends.
DiscoveredVerify a signature round-trip before money is involved. Bind the challenge to GET and /api/agent/auth/whoami with no body: ask auth_challenge for method "GET" and path "/api/agent/auth/whoami", sign the message it returns, then call this. A signature authenticates one method, one path and one body, so a challenge taken for anything else is refused.
DiscoveredRecent measurements
| Checked | Result | Response | Tools |
|---|---|---|---|
| Connected | 1268 ms | 18 |