FreeTier Agent API
by freetier-agent-api.pages.dev · remote · no sign-in to list tools · v3.0.0 · published by dev.pages.freetier-agent-api
x402 pay-per-call data for agents: LLM prices, MCP/x402 directories, holidays, FX, page checks
28 tools: 18 do something that can't be undone, 9 change things and 1 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone18Claude Code: ask: see these tools
- Changes things9Claude Code: ask: see these tools
- Only reads1Claude Code: allow: see these tools
18 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http freetier-agent-api https://freetier-agent-api.pages.dev/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnapis_search
The server marks "apis_search" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "apis_search" says "search": a word for reading.
- Warnfree_tiers
The server marks "free_tiers" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- Warnrobots_check
The server marks "robots_check" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- Warnpage_meta
The server marks "page_meta" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- Warnllm_pricing
The server marks "llm_pricing" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- Warnllm_cost
The server marks "llm_cost" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
Show 12 more findingsShow fewer
- Warnmcp_servers
The server marks "mcp_servers" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- Warnpage_check
The server marks "page_check" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- Warnlink_check
The server marks "link_check" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "link_check" says "link": a word for a change.
- Warncountry
The server marks "country" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- Warnholidays
The server marks "holidays" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- Warncurrency
The server marks "currency" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- Warnbase_gas
The server marks "base_gas" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- Warnpage_markdown
The server marks "page_markdown" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- Warnemail_verify
The server marks "email_verify" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- Warnextract_json
The server marks "extract_json" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- Warnx402_services
The server marks "x402_services" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- Warnagent_tools
The server marks "agent_tools" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
28 tools
Can't be undone 18Claude Code: ask
agent_toolsPay-per-call: 25 free/day then $0.001 USDC via x402.Reads text others write1 finding
Why it is in this group
- The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Warn
The server marks "agent_tools" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it Pay-per-call: 25 free/day then $0.001 USDC via x402. One search across ~13,000 agent tools: 4,259 MCP servers (awesome-mcp-servers, MIT) and ~8,900 x402 pay-per-call APIs (nohumans.directory, CC BY 4.0). Filters: q, type=mcp|x402, limit<=100. Calling this tool returns the HTTP request and x402 payment requirements (or use the free quota).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
apis_searchPay-per-call: 25 free/day then $0.001 USDC via x402.Reads text others write1 finding
Why it is in this group
- The name "apis_search" says "search": a word for reading.
- The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Warn
The server marks "apis_search" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "apis_search" says "search": a word for reading.
Description, as the server wrote it Pay-per-call: 25 free/day then $0.001 USDC via x402. Search 2,230 link-checked public & free-tier APIs (59 categories). Filters: q, category, auth=none, alive=yes, https=yes, kind, limit<=50. Calling this tool returns the HTTP request and x402 payment requirements (or use the free quota).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
base_gasPay-per-call: 25 free/day then $0.001 USDC via x402.Reads text others write1 finding
Why it is in this group
- The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Warn
The server marks "base_gas" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it Pay-per-call: 25 free/day then $0.001 USDC via x402. Live Base mainnet gas price (gwei), latest block, and estimated ETH cost of a USDC transfer (~65k gas) and a plain ETH transfer (21k gas). Calling this tool returns the HTTP request and x402 payment requirements (or use the free quota).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
countryPay-per-call: 25 free/day then $0.001 USDC via x402.Reads text others write1 finding
Why it is in this group
- The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Warn
The server marks "country" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it Pay-per-call: 25 free/day then $0.001 USDC via x402. Country reference lookup by ISO2/ISO3/name: capital, population, area, continent, currency, phone prefix, TLD, languages, neighbours, time zones with current UTC offset and local time. Calling this tool returns the HTTP request and x402 payment requirements (or use the free quota).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
currencyPay-per-call: 25 free/day then $0.001 USDC via x402.Reads text others writeCan send data out1 finding
Why it is in this group
- The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a destination (input.to): what the tool writes goes there.
Findings
- Warn
The server marks "currency" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it Pay-per-call: 25 free/day then $0.001 USDC via x402. Currency conversion with official ECB euro reference rates (~30 currencies, daily). Params: from, to, amount. Also returns the rate date. Calling this tool returns the HTTP request and x402 payment requirements (or use the free quota).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
email_verifyPay-per-call: 25 free/day then $0.001 USDC via x402.Reads text others write1 finding
Why it is in this group
- The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Warn
The server marks "email_verify" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it Pay-per-call: 25 free/day then $0.001 USDC via x402. Email address check WITHOUT sending mail or SMTP probing: RFC-style syntax check, domain MX/A records via DNS-over-HTTPS, disposable-domain flag (CC0 blocklist, ~9,900 domains), role-address flag (info@, support@...), free-mail flag. Verdict: deliverable_domain | risky | invalid. Cannot confirm that the mailbox itself exists. Addresses are not stored or logged. Calling this tool returns the HTTP request and x402 payment requirements (or use the free quota).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
extract_jsonPay-per-call: 25 free/day then $0.001 USDC via x402.Reads text others write1 finding
Why it is in this group
- The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Warn
The server marks "extract_json" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it Pay-per-call: 25 free/day then $0.001 USDC via x402. Messy text + JSON Schema in, clean JSON out. Uses a small LLM (Cloudflare Workers AI, Llama 3.1 8B, JSON mode) when available, else a deterministic key:value/regex extractor; the result is type-checked against your schema and missing fields are null. Limits: text <= 6,000 chars, schema <= 30 top-level properties (flat objects, arrays of scalars); the model can misread ambiguous text, so check important values. Params: text, schema (JSON string), mode=auto|heuristic. GET query or POST JSON body. Calling this tool returns the HTTP request and x402 payment requirements (or use the free quota).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
free_tiersPay-per-call: 25 free/day then $0.001 USDC via x402.Reads text others write1 finding
Why it is in this group
- The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Warn
The server marks "free_tiers" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it Pay-per-call: 25 free/day then $0.001 USDC via x402. Current free-tier limits for developer services (hosting, DB, auth, email, CI, monitoring) and AI/LLM APIs, with official source URLs. Filter: q, category. Calling this tool returns the HTTP request and x402 payment requirements (or use the free quota).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
holidaysPay-per-call: 25 free/day then $0.001 USDC via x402.Reads text others write1 finding
Why it is in this group
- The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Warn
The server marks "holidays" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it Pay-per-call: 25 free/day then $0.001 USDC via x402. Public holidays for ~490 countries/territories for 2026 and 2027; optional date=YYYY-MM-DD answers is_holiday. Calling this tool returns the HTTP request and x402 payment requirements (or use the free quota).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
link_checkPay-per-call: 25 free/day then $0.001 USDC via x402.Reads text others writeCan send data out1 finding
Why it is in this group
- The name "link_check" says "link": a word for a change.
- The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a URL (input.urls): a request to a URL can carry data to whoever runs it.
Findings
- Warn
The server marks "link_check" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "link_check" says "link": a word for a change.
Description, as the server wrote it Pay-per-call: 25 free/day then $0.001 USDC via x402. Check up to 20 URLs in one call: HTTP status, final URL after redirects, redirect count, latency, content-type, ok flag. Calling this tool returns the HTTP request and x402 payment requirements (or use the free quota).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
llm_costPay-per-call: 25 free/day then $0.001 USDC via x402.Reads text others write1 finding
Why it is in this group
- The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Warn
The server marks "llm_cost" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it Pay-per-call: 25 free/day then $0.001 USDC via x402. Token & cost calculator: estimate tokens for a text (or pass input_tokens/output_tokens) and price it across several models using provider list prices (LiteLLM price table, MIT). Params: models (comma list of model ids like gpt-4o-mini, claude-sonnet-4-5, gemini/gemini-2.5-flash or search words, max 15), text or input_tokens, output_tokens, calls. Calling this tool returns the HTTP request and x402 payment requirements (or use the free quota).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
llm_pricingPay-per-call: 25 free/day then $0.001 USDC via x402.Reads text others write1 finding
Why it is in this group
- The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Warn
The server marks "llm_pricing" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it Pay-per-call: 25 free/day then $0.001 USDC via x402. AI model list prices (USD per 1M input/output/cached tokens, context window, vision/tools/reasoning flags) for ~3,000 models across OpenAI, Anthropic, Google, Mistral, Groq, Bedrock, Azure, Together, Fireworks and more, plus verified free tiers/rate limits of AI APIs. Filters: q, provider, free=yes, max_input_per_m, min_context, vision=yes, tools=yes, sort=input|output|context, limit<=100. Calling this tool returns the HTTP request and x402 payment requirements (or use the free quota).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
mcp_serversPay-per-call: 25 free/day then $0.001 USDC via x402.Reads text others write1 finding
Why it is in this group
- The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Warn
The server marks "mcp_servers" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it Pay-per-call: 25 free/day then $0.001 USDC via x402. Search 4,259 MCP (Model Context Protocol) servers by keyword, category, language (python/typescript/go/rust...), scope (cloud/local) and official flag. Returns repo URL and description. Calling this tool returns the HTTP request and x402 payment requirements (or use the free quota).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
page_checkPay-per-call: 25 free/day then $0.001 USDC via x402.Reads text others writeCan send data out1 finding
Why it is in this group
- The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Findings
- Warn
The server marks "page_check" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it Pay-per-call: 25 free/day then $0.001 USDC via x402. One-call page audit for agents: HTTP status, redirects, latency, title, meta description, canonical, lang, Open Graph, JSON-LD types, headings, word count, plus agent-friendliness: robots.txt rules for 14 AI crawlers, llms.txt, sitemap, and a 0-100 score with reasons. Calling this tool returns the HTTP request and x402 payment requirements (or use the free quota).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
page_markdownPay-per-call: 25 free/day then $0.001 USDC via x402.Reads text others writeCan send data out1 finding
Why it is in this group
- The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Findings
- Warn
The server marks "page_markdown" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it Pay-per-call: 25 free/day then $0.001 USDC via x402. Convert a public web page to clean Markdown (title, headings, paragraphs, lists, links, code), scripts/nav/footer removed, max ~60k chars. robots.txt respected. Calling this tool returns the HTTP request and x402 payment requirements (or use the free quota).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
page_metaPay-per-call: 25 free/day then $0.001 USDC via x402.Reads text others writeCan send data out1 finding
Why it is in this group
- The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Findings
- Warn
The server marks "page_meta" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it Pay-per-call: 25 free/day then $0.001 USDC via x402. Fetch a public web page (robots.txt respected) and return title, meta description, canonical, Open Graph/Twitter tags, language, headings, link counts, HTTP status. Calling this tool returns the HTTP request and x402 payment requirements (or use the free quota).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
robots_checkPay-per-call: 25 free/day then $0.001 USDC via x402.Reads text others writeCan send data out1 finding
Why it is in this group
- The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Findings
- Warn
The server marks "robots_check" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it Pay-per-call: 25 free/day then $0.001 USDC via x402. Check whether a URL may be crawled per the site's robots.txt for a given user-agent. Returns allowed, matched rule, crawl-delay, sitemaps. Calling this tool returns the HTTP request and x402 payment requirements (or use the free quota).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
x402_servicesPay-per-call: 25 free/day then $0.001 USDC via x402.Reads text others write1 finding
Why it is in this group
- The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Warn
The server marks "x402_services" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "pay": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it Pay-per-call: 25 free/day then $0.001 USDC via x402. Search ~8,900 live x402 pay-per-call APIs (verified/unverified by nohumans.directory probes, CC BY 4.0): name, endpoint URL, category, price, chains, status, score. Filters: q, category, chain, max_price, status=verified, limit<=100. Calling this tool returns the HTTP request and x402 payment requirements (or use the free quota).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
Changes things 9Claude Code: ask
api_directory_sampleFree.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Free. Five live public APIs that need no key.
dataset_fullPaid dump ($8 USDC via x402, or buy_with_card in the 402 body).Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Paid dump ($8 USDC via x402, or buy_with_card in the 402 body). Buy the full Verified API Directory dataset (2,230 rows, JSON, CC BY 4.0 + MIT sources) in one call. Calling this tool returns the HTTP request and x402 payment requirements (or use the free quota).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
dump_agent_toolsPaid dump ($7 USDC via x402, or buy_with_card in the 402 body).Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Paid dump ($7 USDC via x402, or buy_with_card in the 402 body). Full dump: Agent Tool Directory, ~13,000 MCP servers + x402 APIs in one unified schema (JSON). MIT + CC BY 4.0 sources, attribution included. Calling this tool returns the HTTP request and x402 payment requirements (or use the free quota).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
dump_llm_pricingPaid dump ($5 USDC via x402, or buy_with_card in the 402 body).Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Paid dump ($5 USDC via x402, or buy_with_card in the 402 body). Full dump: list prices of ~3,000 AI models (LiteLLM table, MIT) + verified AI/dev free tiers with limits (JSON). Calling this tool returns the HTTP request and x402 payment requirements (or use the free quota).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
dump_mcp_serversPaid dump ($9 USDC via x402, or buy_with_card in the 402 body).Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Paid dump ($9 USDC via x402, or buy_with_card in the 402 body). Full MCP server directory dump (4,259 servers, JSON). Source awesome-mcp-servers (MIT). Calling this tool returns the HTTP request and x402 payment requirements (or use the free quota).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
dump_world_referencePaid dump ($6 USDC via x402, or buy_with_card in the 402 body).Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Paid dump ($6 USDC via x402, or buy_with_card in the 402 body). Full dump: 252 countries (GeoNames, CC BY 4.0), 418 time zones, ~14,000 public holidays 2026-2027 (python-holidays, MIT). JSON. Calling this tool returns the HTTP request and x402 payment requirements (or use the free quota).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
dump_x402_servicesPaid dump ($6 USDC via x402, or buy_with_card in the 402 body).Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Paid dump ($6 USDC via x402, or buy_with_card in the 402 body). Full dump: ~8,900 x402 pay-per-call APIs with category, price, chains and probe status (JSON). Data from nohumans.directory, CC BY 4.0, attribution required. Calling this tool returns the HTTP request and x402 payment requirements (or use the free quota).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
llm_pricing_sampleFree.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Free. List prices of five popular LLMs (USD per 1M tokens, LiteLLM table, MIT).
mcp_servers_sampleFree.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Free. Five sample MCP servers from the 4,259-server directory (MIT source).
Only reads 1Claude Code: allow
list_endpointsFree.No findings
Why it is in this group
- The name "list_endpoints" says "list": a word for reading.
Description, as the server wrote it Free. List every FreeTier Agent API endpoint with price (25 free calls/day then $0.001 USDC via x402 on pay-per-call routes; dumps $5–$9), description and example query.
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged private-data.
- Reads private data0
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write24
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out6
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Remote posture
What anyone on the internet sees at the remote endpoint: an anonymous initialize and tools/list, and the public OAuth metadata.
Looked at Oct 22, 2026, 14:46 UTC, unchanged since Oct 22, 2026. No credentials were sent and no tool was called. What is looked at.
- Reachable
- yes
- HTTP status of an anonymous initialize
- 200
- tools/list served without credentials
- yes
- Tools that change things, listed without credentials
- 27
- Protocol version
- 2025-06-18
- WWW-Authenticate on 401
- not observed
- resource_metadata in WWW-Authenticate
- none
- RFC 9728 protected resource metadata
- none
- Authorization servers
- none
- Legacy HTTP+SSE transport
- no
- Dynamic client registration
- not observed
- Client ID metadata documents
- not observed
- HighThe whole server
The endpoint served tools/list without credentials, and the list has 27 tools that change things (18 irreversible, 9 write). Whether a call also works without credentials was not tested: tools are never called.
What this check looks forMatched text
https://freetier-agent-api.pages.dev/mcp: tools/list returned 28 tools to an anonymous client, including apis_search (irreversible), free_tiers (irreversible), robots_check (irreversible), page_meta (irreversible), llm_pricing (irreversible) and 22 more
Install
Pinned to version 3.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http freetier-agent-api https://freetier-agent-api.pages.dev/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__freetier-agent-api__list_endpoints"
],
"ask": [
"mcp__freetier-agent-api__mcp_servers_sample",
"mcp__freetier-agent-api__llm_pricing_sample",
"mcp__freetier-agent-api__api_directory_sample",
"mcp__freetier-agent-api__apis_search",
"mcp__freetier-agent-api__free_tiers",
"mcp__freetier-agent-api__robots_check",
"mcp__freetier-agent-api__page_meta",
"mcp__freetier-agent-api__dataset_full",
"mcp__freetier-agent-api__llm_pricing",
"mcp__freetier-agent-api__llm_cost",
"mcp__freetier-agent-api__mcp_servers",
"mcp__freetier-agent-api__page_check",
"mcp__freetier-agent-api__link_check",
"mcp__freetier-agent-api__country",
"mcp__freetier-agent-api__holidays",
"mcp__freetier-agent-api__currency",
"mcp__freetier-agent-api__base_gas",
"mcp__freetier-agent-api__page_markdown",
"mcp__freetier-agent-api__dump_mcp_servers",
"mcp__freetier-agent-api__dump_llm_pricing",
"mcp__freetier-agent-api__dump_world_reference",
"mcp__freetier-agent-api__email_verify",
"mcp__freetier-agent-api__extract_json",
"mcp__freetier-agent-api__x402_services",
"mcp__freetier-agent-api__agent_tools",
"mcp__freetier-agent-api__dump_x402_services",
"mcp__freetier-agent-api__dump_agent_tools"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as freetier-agent-api. Review it before you use it.
Capability tags behind 24 rules
- mcp__freetier-agent-api__apis_search untrusted-input
- mcp__freetier-agent-api__free_tiers untrusted-input
- mcp__freetier-agent-api__robots_check untrusted-input, outbound
- mcp__freetier-agent-api__page_meta untrusted-input, outbound
- mcp__freetier-agent-api__dataset_full untrusted-input
- mcp__freetier-agent-api__llm_pricing untrusted-input
- mcp__freetier-agent-api__llm_cost untrusted-input
- mcp__freetier-agent-api__mcp_servers untrusted-input
- mcp__freetier-agent-api__page_check untrusted-input, outbound
- mcp__freetier-agent-api__link_check untrusted-input, outbound
- mcp__freetier-agent-api__country untrusted-input
- mcp__freetier-agent-api__holidays untrusted-input
- mcp__freetier-agent-api__currency untrusted-input, outbound
- mcp__freetier-agent-api__base_gas untrusted-input
- mcp__freetier-agent-api__page_markdown untrusted-input, outbound
- mcp__freetier-agent-api__dump_mcp_servers untrusted-input
- mcp__freetier-agent-api__dump_llm_pricing untrusted-input
- mcp__freetier-agent-api__dump_world_reference untrusted-input
- mcp__freetier-agent-api__email_verify untrusted-input
- mcp__freetier-agent-api__extract_json untrusted-input
- mcp__freetier-agent-api__x402_services untrusted-input
- mcp__freetier-agent-api__agent_tools untrusted-input
- mcp__freetier-agent-api__dump_x402_services untrusted-input
- mcp__freetier-agent-api__dump_agent_tools untrusted-input