Skip to content

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

Final · 18Changes · 9

28 tools: 18 do something that can't be undone, 9 change things and 1 only read.

Scanned Oct 21, 2026

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/mcp

Findings

Matches of fixed checks, with the text they matched.

18 warn
  • The server marks "apis_search" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "apis_search" says "search": a word for reading.

    What this check looks for
  • The server marks "free_tiers" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched 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.

    What this check looks for
  • The server marks "robots_check" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched 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.

    What this check looks for
  • The server marks "page_meta" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched 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.

    What this check looks for
  • The server marks "llm_pricing" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched 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.

    What this check looks for
  • The server marks "llm_cost" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched 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.

    What this check looks for
Show 12 more findings
  • The server marks "mcp_servers" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched 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.

    What this check looks for
  • The server marks "page_check" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched 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.

    What this check looks for
  • The server marks "link_check" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "link_check" says "link": a word for a change.

    What this check looks for
  • The server marks "country" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched 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.

    What this check looks for
  • The server marks "holidays" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched 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.

    What this check looks for
  • The server marks "currency" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched 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.

    What this check looks for
  • The server marks "base_gas" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched 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.

    What this check looks for
  • The server marks "page_markdown" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched 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.

    What this check looks for
  • The server marks "email_verify" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched 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.

    What this check looks for
  • The server marks "extract_json" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched 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.

    What this check looks for
  • The server marks "x402_services" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched 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.

    What this check looks for
  • The server marks "agent_tools" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched 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.

    What this check looks for

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".

      Matched 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.

      What this check looks for
    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
  • 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".

      Matched 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.

      What this check looks for
    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".

      Matched 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.

      What this check looks for
    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".

      Matched 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.

      What this check looks for
    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".

      Matched 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.

      What this check looks for
    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".

      Matched 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.

      What this check looks for
    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".

      Matched 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.

      What this check looks for
    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".

      Matched 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.

      What this check looks for
    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
  • 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".

      Matched 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.

      What this check looks for
    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".

      Matched 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.

      What this check looks for
    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".

      Matched 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.

      What this check looks for
    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".

      Matched 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.

      What this check looks for
    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".

      Matched 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.

      What this check looks for
    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".

      Matched 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.

      What this check looks for
    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".

      Matched 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.

      What this check looks for
    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".

      Matched 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.

      What this check looks for
    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.

    Matched 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

    What this check looks for

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/mcp

Run 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.

.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