# Quietforge x402 Tools

> Free tools: x402 endpoint directory + probe, on-chain x402 demand signal, sudoku, API pricing.

- name: io.github.quietforgestudio/x402-tools
- version: 1.3.0
- connection class: R0 (autonomous)
- trust: 96/100
- quality: 79/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.quietforgestudio%2Fx402-tools
- tools: https://api.protogrid.dev/v1/servers/io.github.quietforgestudio%2Fx402-tools/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "x402-tools": {
      "type": "http",
      "url": "https://qf-api.quietforge-studio.workers.dev/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 97
- freshness: 100
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-93% +updated-13d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 79/100 (good)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 7 of 7 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,548 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 25 (weight 15)

- warn `stability.changes`: 7 tool changes in 30 days
- fail `stability.rug_pull`: 1 tools kept their name but changed most of their description in 30 days; review before trusting them

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 7, about 1,548 tokens to load them all
- tool set hash: 63aae86a591f9d5f58db9dec9753fe95
- tools last changed: 2026-10-07T07:11:13.250Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.quietforgestudio/x402-tools.svg)](https://protogrid.dev/servers/io.github.quietforgestudio/x402-tools)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-07 `quietforge_pricing` changed (description) **meaning changed**
  - before: List Quietforge's paid x402 routes (document conversion, PDF text extraction, URL/HTML → PNG/JPEG/PDF rendering, sudoku books, manuscript typesetting, x402 index JSON API) with USD prices, the pay-to address and network, and how an x402 client pays. Free, read-only.
  - after: Price-check Quietforge's paid x402 HTTP routes before paying (free read-only list, not tools here): convert docx, xlsx, pptx, csv to pdf; PDF text; URL/HTML to PNG; sudoku books; manuscript typesetting; crosswords; family trees from GEDCOM; dataset quality audits; x402 index API. USD prices, pay-to address, how an x402 client pays.
- 2026-10-07 `sudoku_puzzle` changed (description, inputSchema)
  - before: Generate ONE sudoku puzzle with a unique solution, 180-degree symmetry, graded by the solving techniques it needs (easy | medium | hard | expert). Returns 81-char puzzle and solution strings (row by row, 0 = empty), given count and technique list. Deterministic when a seed is supplied. 20 per minute shared by all clients.
  - after: Use this when a user wants a sudoku to play or print, or an app needs a verified puzzle at a named difficulty. Generates ONE sudoku puzzle with a unique solution, 180-degree symmetry, graded by the solving techniques it needs (easy | medium | hard | expert). Returns 81-char puzzle and solution strings (row by row, 0 = empty), given count and technique list. Deterministic when a seed is supplied. 20 per minute shared by all clients.
- 2026-10-07 `x402_probe` changed (description)
  - before: Make ONE live unpaid request to a public http(s) URL and report whether it is an x402 endpoint: status code, latency, alive flag, whether a PAYMENT-REQUIRED challenge came back and the parsed USD price. GET only, except that a URL already in the index is probed with its listed method. Public hosts only (redirects re-checked), delisted hosts never contacted, results cached 60 s, 3 probes per host per 5 min and 30 per minute overall.
  - after: Use this to check a URL you are about to pay (or one you operate) for a well-formed x402 challenge before sending funds; a challenge is no guarantee the service delivers. Makes ONE live unpaid request to a public http(s) URL and reports whether it is an x402 endpoint: status code, latency, alive flag, whether a PAYMENT-REQUIRED challenge came back and the parsed USD price. GET only, except that a URL already in the index is probed with its listed method. Public hosts only (redirects re-checked), delisted hosts never contacted, results cached 60 s, 3 probes per host per 5 min and 30 per minute overall.
- 2026-10-07 `x402_demand` changed (description)
  - before: Market-level demand signal for the x402 ecosystem, verified against on-chain USDC settlement on Base rather than self-reported call counts: how many seller addresses were paid in the last 24h, total USD settled, and the distribution of sellers by payment count. Free and aggregate-only; the per-seller breakdown (distinct payers per address; payer counts include sampler/grader wallets that pay many sellers once, so read them as an upper bound on customers) is the paid GET /v1/x402/demand route. Refuses to answer rather than serve a stale snapshot.
  - after: Use this to answer "is anyone actually paying for x402 APIs today" with settled on-chain numbers instead of listings. Market-level demand signal for the x402 ecosystem, verified against on-chain USDC settlement on Base rather than self-reported call counts: how many seller addresses were paid in the last 24h, total USD settled, and the distribution of sellers by payment count. Free and aggregate-only; the per-seller breakdown (distinct payers per address; payer counts include sampler/grader wallets that pay many sellers once, so read them as an upper bound on customers) is the paid GET /v1/x402/demand route. Refuses to answer rather than serve a stale snapshot.
- 2026-10-07 `x402_index_stats` changed (description)
  - before: Summary of the x402 service index: totals, how many endpoints answered on the last probe, counts per network and per source, and when the crawl ran.
  - after: Use this to see how much this index covers (it is a subset of the x402 market, not all of it) and to sanity-check x402_search coverage before relying on it. Summary of the index: totals, how many endpoints answered on the last probe, counts per network and per source, and when the crawl ran.
- 2026-10-07 `x402_service` changed (description)
  - before: One endpoint from the x402 service index by id (from x402_search), with its last 20 health probes (status code, latency, alive) and uptime across them.
  - after: Use this to check whether one endpoint from x402_search is reliable enough to pay: its record plus its last 20 health probes (status code, latency, alive) and uptime across them.
- 2026-10-07 `x402_search` changed (description, inputSchema)
  - before: Search a health-probed directory of live x402 pay-per-call HTTP endpoints on Base, Solana and other networks (x402_index_stats gives the current count). Returns id, resource URL, method, network, USD price, description, 30-day call/payer counts and our own uptime/probe data. Data is re-crawled a few times a day, not real-time. Quietforge operates this directory and also operates some listed endpoints (source=quietforge) under the same per-host cap as every operator; ordering is by 30-day usage, then liveness, then freshness, never by operator.
  - after: Use this to find a pay-per-call x402 API for a given task, network or price cap before calling it (mostly USDC on Base; check each row's network and asset, some are testnet or other assets). Searches a health-probed directory of live x402 pay-per-call HTTP endpoints on Base, Solana and other networks (x402_index_stats gives the current count). Returns id, resource URL, method, network, USD price, description, 30-day call/payer counts and our own uptime/probe data. Data is re-crawled a few times a day, not real-time. Quietforge operates this directory and also operates some listed endpoints (source=quietforge) under the same per-host cap as every operator; ordering is by 30-day usage, then liveness, then freshness, never by operator.

Full history: https://api.protogrid.dev/v1/servers/io.github.quietforgestudio%2Fx402-tools/changes

## Remotes

- https://qf-api.quietforge-studio.workers.dev/mcp (streamable-http, auth none, reachable true, uptime30d 0.92727274)

## Packages

_none_

## Tools (7)

- `quietforge_pricing`: Price-check Quietforge's paid x402 HTTP routes before paying (free read-only list, not tools here): convert docx, xlsx, pptx, csv to pdf; PDF text; URL/HTML to PNG; sudoku books; manuscript typesetting; crosswords; family trees from GEDCOM; dataset quality audits; x402 index API. USD prices, pay-to address, how an x402 client pays.
- `sudoku_puzzle`: Use this when a user wants a sudoku to play or print, or an app needs a verified puzzle at a named difficulty. Generates ONE sudoku puzzle with a unique solution, 180-degree symmetry, graded by the solving techniques it needs (easy | medium | hard | expert). Returns 81-char puzzle and solution strings (row by row, 0 = empty), given count and technique list. Deterministic when a seed is supplied. 20 per minute shared by all clients.
- `x402_demand`: Use this to answer "is anyone actually paying for x402 APIs today" with settled on-chain numbers instead of listings. Market-level demand signal for the x402 ecosystem, verified against on-chain USDC settlement on Base rather than self-reported call counts: how many seller addresses were paid in the last 24h, total USD settled, and the distribution of sellers by payment count. Free and aggregate-only; the per-seller breakdown (distinct payers per address; payer counts include sampler/grader wallets that pay many sellers once, so read them as an upper bound on customers) is the paid GET /v1/x402/demand route. Refuses to answer rather than serve a stale snapshot.
- `x402_index_stats`: Use this to see how much this index covers (it is a subset of the x402 market, not all of it) and to sanity-check x402_search coverage before relying on it. Summary of the index: totals, how many endpoints answered on the last probe, counts per network and per source, and when the crawl ran.
- `x402_probe`: Use this to check a URL you are about to pay (or one you operate) for a well-formed x402 challenge before sending funds; a challenge is no guarantee the service delivers. Makes ONE live unpaid request to a public http(s) URL and reports whether it is an x402 endpoint: status code, latency, alive flag, whether a PAYMENT-REQUIRED challenge came back and the parsed USD price. GET only, except that a URL already in the index is probed with its listed method. Public hosts only (redirects re-checked), delisted hosts never contacted, results cached 60 s, 3 probes per host per 5 min and 30 per minute overall.
- `x402_search`: Use this to find a pay-per-call x402 API for a given task, network or price cap before calling it (mostly USDC on Base; check each row's network and asset, some are testnet or other assets). Searches a health-probed directory of live x402 pay-per-call HTTP endpoints on Base, Solana and other networks (x402_index_stats gives the current count). Returns id, resource URL, method, network, USD price, description, 30-day call/payer counts and our own uptime/probe data. Data is re-crawled a few times a day, not real-time. Quietforge operates this directory and also operates some listed endpoints (source=quietforge) under the same per-host cap as every operator; ordering is by 30-day usage, then liveness, then freshness, never by operator.
- `x402_service`: Use this to check whether one endpoint from x402_search is reliable enough to pay: its record plus its last 20 health probes (status code, latency, alive) and uptime across them.
