Free tools: x402 endpoint directory + probe, on-chain x402 demand signal, sudoku, API pricing.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
This tool takes no arguments.
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.
No arguments.
{
"type": "object",
"title": "quietforge_pricingArguments",
"properties": {}
}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.
| Argument | Type | Description |
|---|---|---|
| seed | integer | Integer 1-2147483647 for a reproducible puzzle; omit for a random one. |
| level | string | Difficulty by solving technique: easy, medium, hard or expert. |
{
"type": "object",
"title": "sudoku_puzzleArguments",
"properties": {
"seed": {
"type": "integer",
"title": "Seed",
"description": "Integer 1-2147483647 for a reproducible puzzle; omit for a random one."
},
"level": {
"type": "string",
"title": "Level",
"default": "medium",
"description": "Difficulty by solving technique: easy, medium, hard or expert."
}
}
}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.
No arguments.
{
"type": "object",
"title": "x402_demandArguments",
"properties": {}
}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.
No arguments.
{
"type": "object",
"title": "x402_index_statsArguments",
"properties": {}
}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.
| Argument | Type | Description |
|---|---|---|
| url* | string | Absolute http(s) URL to probe, max 2048 chars; public hosts only. |
| method | string | HTTP method. GET unless the URL is already in the index with a different listed method (then that method is allowed). |
{
"type": "object",
"title": "x402_probeArguments",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"title": "Url",
"description": "Absolute http(s) URL to probe, max 2048 chars; public hosts only."
},
"method": {
"type": "string",
"title": "Method",
"default": "GET",
"description": "HTTP method. GET unless the URL is already in the index with a different listed method (then that method is allowed)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| q | string | Case-insensitive substring matched against the resource URL, description and service name; omit for no text filter. |
| alive | boolean | true = answered its paid route on our last probe; false = did not; omit for both. |
| limit | integer | Page size, 1-100; out-of-range values are clamped. |
| offset | integer | Rows to skip for paging; negative is treated as 0. |
| source | string | Listing source: cdp (Coinbase CDP bazaar), payai (PayAI discovery) or quietforge (our own endpoints); omit for all sources. |
| network | string |
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.
| Argument | Type | Description |
|---|---|---|
| id* | string | Service id exactly as returned by x402_search. |
{
"type": "object",
"title": "x402_serviceArguments",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"title": "Id",
"description": "Service id exactly as returned by x402_search."
}
}
}| CAIP-2 network id to filter on, e.g. eip155:8453 (Base mainnet); omit for all networks. |
| max_price_usd | number | Only endpoints priced at or below this USD amount per call; omit for any price. |
{
"type": "object",
"title": "x402_searchArguments",
"properties": {
"q": {
"type": "string",
"title": "Q",
"description": "Case-insensitive substring matched against the resource URL, description and service name; omit for no text filter."
},
"alive": {
"type": "boolean",
"title": "Alive",
"description": "true = answered its paid route on our last probe; false = did not; omit for both."
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 20,
"description": "Page size, 1-100; out-of-range values are clamped."
},
"offset": {
"type": "integer",
"title": "Offset",
"default": 0,
"description": "Rows to skip for paging; negative is treated as 0."
},
"source": {
"type": "string",
"title": "Source",
"description": "Listing source: cdp (Coinbase CDP bazaar), payai (PayAI discovery) or quietforge (our own endpoints); omit for all sources."
},
"network": {
"type": "string",
"title": "Network",
"description": "CAIP-2 network id to filter on, e.g. eip155:8453 (Base mainnet); omit for all networks."
},
"max_price_usd": {
"type": "number",
"title": "Max Price Usd",
"description": "Only endpoints priced at or below this USD amount per call; omit for any price."
}
}
}