Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Tollkit

REMOTE · EXTRACT.TOLLKIT.DEV · SCANNED SEP 21

Extract product data, or notarize what a page said. Paid per call in USDC, no signup or API key.

63 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security57
Transport & Reachability100
Schema Quality & AI Usability67
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 1870 tokens (~267/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management3
  • Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (43% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the Tollkit MCP server?

Tollkit is a hosted endpoint at https://extract.tollkit.dev/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · extract.tollkit.dev

# add to Claude Code
claude mcp add --transport http ultrastarz-x402-extract 'https://extract.tollkit.dev/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "ultrastarz-x402-extract": {
      "url": "https://extract.tollkit.dev/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "ultrastarz-x402-extract": {
      "type": "http",
      "url": "https://extract.tollkit.dev/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.ultrastarz-x402-extract]
url = "https://extract.tollkit.dev/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ultrastarz-x402-extract": {
      "type": "remote",
      "url": "https://extract.tollkit.dev/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add ultrastarz-x402-extract --url 'https://extract.tollkit.dev/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  ultrastarz-x402-extract:
    url: "https://extract.tollkit.dev/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "ultrastarz-x402-extract": {
      "Transport": "http",
      "Url": "https://extract.tollkit.dev/mcp"
    }
  }
}
# add to Vellum
assistant mcp add ultrastarz-x402-extract -t streamable-http -u 'https://extract.tollkit.dev/mcp'
// mcp.json
{
  "mcpServers": {
    "ultrastarz-x402-extract": {
      "type": "http",
      "url": "https://extract.tollkit.dev/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 21 Sept 26 0
    • Tool coverage: 50% → 43% functional
    • Stability: unverified → 0.03 functional
    • New tool “check_my_balance” functional
  • 20 Sept 26 63

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 21 Sept 2026 · Probed https://extract.tollkit.dev/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=extract.tollkit.dev CN=YE1,O=Let's Encrypt,C=US 20 Sept 2026 19 Dec 2026 ECDSA 256 ECDSA-SHA384 6fe34c2d3b61ab0d60066b0039ceecbbba0
SANs: extract.tollkit.dev
CN=YE1,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 5ddd70dd31f801c85c186a7a04b80afe
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of extract.tollkit.dev. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
dev. present 60074 8 Verified
tollkit.dev. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://extract.tollkit.dev/mcp Verified 200
http (plaintext) http://extract.tollkit.dev/mcp HTTPS enforced 301 https://extract.tollkit.dev/mcp
MCP tools · 7 exposed · ~1,738 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
attest_page ~380

Prove what a web page said, at a time, in a way someone who distrusts you can check. Renders the page and returns a signed, timestamped record of it: the text and its SHA-256, the HTTP status, the response headers, the serving IP, and the TLS certificate the site presented. Optionally a screenshot and its hash. All of it hashed into one claim and signed, so any single altered byte breaks the signature. Use it when a page might change or be denied later: terms of service before you agree, a price before you act on it, a policy you are relying on, a claim a competitor published, a listing that can be edited. Verification is free, needs no account, and does not depend on this service continuing to exist — the math is public and `verify_attestation` explains how to redo it yourself. We keep no copy, so the response you receive IS the evidence. Store it. $0.25 USDC per call over x402. A render that fails costs nothing.

NameTypeReqDescription
paymentstringBase64 x402 payment payload. Omit it to receive a quote instead of an attestation; sign that and call again.
screenshotbooleanDefault false in MCP. A screenshot makes the evidence much stronger, but the image comes back inline as roughly 55,000 characters of base64. With it false the attestation is text-only and internally…
urlstringyesAbsolute https:// URL of the page to attest to. Anything a dispute could turn on: terms of service, a price, a published policy, a competitor's claim, a listing that may be edited later.

No output schema declared.

No examples provided.

check_my_balance ~119

Free. Check how much USDC is left in your own wallet on Base, so you can tell your human before you run out. Returns the balance and a link your human can use to refill you from their own wallet. Tollkit never holds anyone's funds or keys.

NameTypeReqDescription
addressstringyesYour wallet address (0x...). The address you pay from.
low_belownumberUSDC amount you consider low. Default 1.
networkstringDefault base. Use sepolia for test money.

No output schema declared.

No examples provided.

compare_products ~321

Price the same product at several stores — up to 5 URLs in ONE call and ONE payment. USE THIS WHENEVER YOU HAVE MORE THAN ONE URL. Comparing an item across stores, checking a short list, or refreshing a handful of tracked prices. It returns full details for each URL so YOU can compare them; it does not rank them or pick a winner. Through get_product_details that is one EIP-3009 signature, one settlement and one round trip PER URL; this is one of each for the whole set. RETURNS one entry per URL in the order given, each with the same product and page objects get_product_details returns, plus ok/error so a single dead URL does not cost you the rest. COST $0.15 flat for up to 5 URLs — cheaper per page than calling get_product_details 5 times. BILLING, stated plainly: the price is flat, so a batch where only SOME URLs succeed is charged in full. A batch where NO url succeeds returns an error and is not charged. If you have one URL and are unsure it is live, get_product_details is the cheaper bet. Duplicate URLs are removed and not billed twice.

NameTypeReqDescription
allow_redirectbooleanApplies to every URL. See get_product_details for what it does.
paymentstringBase64-encoded x402 payment payload. Omit on the first call to receive payment requirements.
urlsarrayyesUp to 5 absolute https:// product page URLs. Duplicates are removed and not billed twice.
NameTypeReqDescription
billingstringyesThe billing rule, restated on every response rather than only in the docs.
failednumberyes
requestednumberyes
resultsarrayyes
settlementstring|nullyes
statusstringyes
succeedednumberyes

No examples provided.

get_product_details ~654

Find out what a product is and what it costs, from its page URL. USE THIS WHEN you have the URL of ONE specific product — a store listing, a marketplace item, a manufacturer's page — and you need its fields rather than its prose. Typical jobs: comparing the same item across several stores, tracking a price over time, checking whether something is in stock, ingesting a catalogue, or getting a product photo URL. DO NOT USE THIS FOR search-results or category pages (it returns one product, not a list), pages behind a login or paywall, or pages that are not about a product. It also cannot reach private or internal addresses. RETURNS name, description, brand, sku, price (a number), currency (ISO 4217), availability (in_stock | out_of_stock | preorder | unknown), images (up to 5 absolute URLs copied from the page, never invented) and variants. See the output schema for the exact shape. Any field the page does not state comes back null rather than guessed. HOW: the page is rendered in a real headless browser before extraction, so JavaScript-built pages work where a plain fetch returns an empty shell. COST $0.05 USDC per call over x402 on Base. No account, no API key, nothing to install, and no gas — the facilitator sponsors it. Call once WITHOUT the payment argument to get back the payment requirements, sign an EIP-3009 transferWithAuthorization with your own wallet for the quoted amount, base64-encode the x402 payload, and call again with that string as `payment`. EVERY RESPONSE SAYS WHERE EACH FIELD CAME FROM. `provenance.declared` lists the fields whose values match what the merchant published in schema.org JSON-LD — their own number, the one they publish for Google. `provenance.inferred` lists the ones a model read off the page, which might be a strikethrough price or a neighbouring product. Act on declared values; verify inferred ones if the decision matters. A URL that redirects to what looks like a DIFFERENT page — a discontinued item bouncing to its categor…

NameTypeReqDescription
allow_redirectbooleanDefault false. By default a URL that redirects to what looks like a different page (a discontinued item bouncing to its category listing) is refused free of charge, because extracting it would return…
paymentstringBase64-encoded x402 payment payload. Omit on the first call to receive payment requirements.
urlstringyesAbsolute https:// URL of a single product page. Not a search or category page.
NameTypeReqDescription
cache_age_secondsnumberyes
cachedbooleanyesTrue when this answer was re-served from a recent render rather than produced now. Re-serving is still a paid call; it is faster, and the data is as old as cache_age_seconds says.
pageobjectyes
productobjectyes
provenanceobjectyesWhere each field came from. `declared` matches what the merchant published in schema.org data — their own number. `inferred` was read off the page by a model. Null fields appear in neither. Treat a d…
redirectyesPresent only when the browser landed somewhere other than the URL you gave. The data describes `final`, not `requested`.
settlementstring|nullyesBase64 x402 settlement receipt, when the facilitator returned one.
statusstringyes

No examples provided.

get_service_info ~41

Free. Price, network, and what this service returns. For a sample of the actual output rather than a description of it, call try_it_free instead.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

try_it_free ~113

Free. Run a real extraction against one fixed sample product page and return the result. USE THIS to decide whether the paid tools are worth paying for. It returns the identical shape get_product_details returns, produced by the identical code — not a hand-written example — so what you see is what you get. It takes no arguments and costs nothing. You cannot choose the page: pointing a free endpoint at arbitrary URLs would just be the paid tool with no toll. Use get_product_details for the URL you actually care about.

Input schema present but exposes no named parameters.

NameTypeReqDescription
cache_age_secondsnumberyes
freebooleanyes
notestringyes
pageobjectyes
previewbooleanyes
productobjectyes
sample_urlstringyes
stalebooleanyesTrue if the sample could not be refreshed and is an older render.
statusstringyes

No examples provided.

verify_attestation ~110

Free, forever, no account. Hand back an attestation -- yours or one someone else gave you -- and find out whether the signature holds and whether we issued it. Works on attestations this service did not produce: the answer for those is a clear no, which is the point. Holds no database, so it keeps working whoever is running it.

NameTypeReqDescription
attestationstringyesThe attestation as JSON text: either the whole response from attest_page or just its `attestation` object.

No output schema declared.

No examples provided.

Common questions

What is the Tollkit MCP server?

Tollkit is an MCP server listed in the public MCP registry as io.github.UltraStarz/x402-extract. Extract product data, or notarize what a page said. Paid per call in USDC, no signup or API key. This page covers its hosted endpoint (https://extract.tollkit.dev/mcp).

Is the Tollkit MCP server safe to use?

Tollkit scores 63 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Tollkit MCP server expose?

Tollkit exposes 7 tools: get_product_details, try_it_free, compare_products, attest_page, verify_attestation, and 2 more. Their descriptions and schemas cost roughly 1,738 tokens of context every time the server is loaded.

Does the Tollkit MCP server require authentication?

No. We connected to Tollkit without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the Tollkit MCP server still maintained?

Tollkit is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.