Skip to content

Agent Margin Router

by AgentMarginRouter · remote · no sign-in to list tools · v0.6.0 · published by GitHub user AgentMarginRouter

38 x402 pay-per-call tools for AI agents (USDC/USDT on Base): web, crypto, on-chain, geo, packages

Final · 2Changes · 37

53 tools: 2 do something that can't be undone, 37 change things and 14 only read.

Scanned Oct 21, 2026

6 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http agent-margin-router https://agent-margin-router-production.up.railway.app/mcp

Findings

Matches of fixed checks, with the text they matched.

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

    Matched text

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

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

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "convert": a word for a change.

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

    Matched text

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

    What this check looks for
  • Warnuuid

    The server marks "uuid" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "generate": a word for a change.

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

    Matched text

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

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

    Matched text

    annotations: {"readOnlyHint":true}; The name "payment_info" says "payment": 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.

53 tools

Can't be undone 2Claude Code: ask
  • currency_convertFiat currency conversion with ECB reference rates (30+ currencies): amount, source currency, one or many targets.1 finding

    Why it is in this group

    • The name "currency_convert" says "convert": a word for a change.
    • 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.

    Findings

    • Warn

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

      Matched text

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

      What this check looks for
    Description, as the server wrote it
    Fiat currency conversion with ECB reference rates (30+ currencies): amount, source currency, one or many targets. Returns rates, converted amounts and rate date. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • payment_infoFree.1 finding

    Why it is in this group

    • The name "payment_info" says "payment": 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.

    Findings

    • Warn

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

      Matched text

      annotations: {"readOnlyHint":true}; The name "payment_info" says "payment": a word that usually means money moves, which cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    Free. Returns the x402 payment requirements (price, USDC/USDT contract, pay-to wallet, network) for a given tool so an agent can construct an x402 payment.

    Annotations the server declares

    • readOnlyHint: true
Changes things 37Claude Code: ask
  • best_priceBest-price router: queries several independent gas-price sources in parallel, returns the cheapest quote and charges a configurable share of the savings (average - best) as commiss…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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Best-price router: queries several independent gas-price sources in parallel, returns the cheapest quote and charges a configurable share of the savings (average - best) as commission. Response includes the full breakdown (best_price, average_price, savings_gross, provision, user_pays) for Base, Ethereum, Arbitrum, Optimism and Polygon. No API key. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • contract_infoSmart-contract metadata from Blockscout for Base, Ethereum, Optimism or Arbitrum: verification status, name, compiler, proxy/implementation, creator, creation tx, token details and…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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Smart-contract metadata from Blockscout for Base, Ethereum, Optimism or Arbitrum: verification status, name, compiler, proxy/implementation, creator, creation tx, token details and function/event names. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • crypto_ohlcvHistorical OHLCV candles for any major crypto pair (Binance, Coinbase fallback): intervals 1m-1w, up to 500 candles, with period summary (high, low, volume, change %).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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Historical OHLCV candles for any major crypto pair (Binance, Coinbase fallback): intervals 1m-1w, up to 500 candles, with period summary (high, low, volume, change %). Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • defi_tvlTotal value locked of a DeFi protocol (by DefiLlama slug: TVL, 1d/7d change, market cap, mcap/TVL ratio, TVL per chain, category) or of a whole chain (TVL, native token, protocol c…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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Total value locked of a DeFi protocol (by DefiLlama slug: TVL, 1d/7d change, market cap, mcap/TVL ratio, TVL per chain, category) or of a whole chain (TVL, native token, protocol count, top-10 protocols). Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • defi_yieldsLive DeFi pool yields (APY, TVL, stablecoin flag) across 100+ chains and protocols from DefiLlama.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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Live DeFi pool yields (APY, TVL, stablecoin flag) across 100+ chains and protocols from DefiLlama. Filter by chain, asset, project, minimum TVL; sorted by APY. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • dex_priceLive DEX price, 24h change, volume and liquidity for any on-chain token (long-tail tokens not listed on CEXs) by contract address or symbol on Base, Ethereum, Arbitrum, Optimism, P…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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Live DEX price, 24h change, volume and liquidity for any on-chain token (long-tail tokens not listed on CEXs) by contract address or symbol on Base, Ethereum, Arbitrum, Optimism, Polygon, BSC, Avalanche or Solana, with the top liquidity pairs per DEX (DexScreener). Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • dns_whoisDNS records (A, AAAA, MX, NS, TXT, CNAME, SOA, CAA) via DNS-over-HTTPS plus RDAP/WHOIS registration data (registrar, created/expires, status, nameservers, DNSSEC).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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    DNS records (A, AAAA, MX, NS, TXT, CNAME, SOA, CAA) via DNS-over-HTTPS plus RDAP/WHOIS registration data (registrar, created/expires, status, nameservers, DNSSEC). Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • domain_rdapDomain registration data via RDAP (the WHOIS successor): registered flag, registrar, status, registration/expiry events, nameservers and DNSSEC – for availability checks and due di…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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Domain registration data via RDAP (the WHOIS successor): registered flag, registrar, status, registration/expiry events, nameservers and DNSSEC – for availability checks and due diligence. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • erc20_balanceBalances of up to 20 arbitrary ERC-20 tokens for one wallet in a single Multicall3 round-trip: raw and decimal-formatted balance, decimals and symbol per token, on Base, Ethereum, …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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Balances of up to 20 arbitrary ERC-20 tokens for one wallet in a single Multicall3 round-trip: raw and decimal-formatted balance, decimals and symbol per token, on Base, Ethereum, BSC, Polygon, Arbitrum or Optimism. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • extract_cleanClean page extraction from any public URL: title, meta description, main text, JSON-LD, language.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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Clean page extraction from any public URL: title, meta description, main text, JSON-LD, language. Optional `schema` keeps only the listed top-level keys. Apify (JS-rendered) with direct-fetch fallback. Pay per call with USDC or USDT on Base via x402 – no API key, no signup. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • fear_greedCrypto market sentiment: the daily Fear & Greed index (0-100) with classification, 1d/7d change and up to 90 days of history from alternative.me.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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Crypto market sentiment: the daily Fear & Greed index (0-100) with classification, 1d/7d change and up to 90 days of history from alternative.me. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • gas_feesLive EIP-1559 gas fees (slow/standard/fast tiers) plus USD cost per transaction type (transfer, ERC-20 transfer, swap, NFT mint) for Base, Ethereum, Arbitrum, Optimism and Polygon.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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Live EIP-1559 gas fees (slow/standard/fast tiers) plus USD cost per transaction type (transfer, ERC-20 transfer, swap, NFT mint) for Base, Ethereum, Arbitrum, Optimism and Polygon. Aggregated from public RPC nodes – no API key. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • geo_ipIP geolocation for IPv4/IPv6: country, region, city, coordinates, timezone, ASN, ISP/org, EU flag, private-range detection.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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    IP geolocation for IPv4/IPv6: country, region, city, coordinates, timezone, ASN, ISP/org, EU flag, private-range detection. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • geocodeTurn a place name or address into coordinates, bounding box, address parts and OSM type using OpenStreetMap Nominatim (ODbL); cached 24h.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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Turn a place name or address into coordinates, bounding box, address parts and OSM type using OpenStreetMap Nominatim (ODbL); cached 24h. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • github_repo_summaryOne-call overview of any public GitHub repository: description, stars, forks, open issues, primary language and language split (%), topics, license, default branch, README excerpt …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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    One-call overview of any public GitHub repository: description, stars, forks, open issues, primary language and language split (%), topics, license, default branch, README excerpt and the 5 most recent commits. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • hashCompute cryptographic hash digests (MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512) of any text.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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Compute cryptographic hash digests (MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512) of any text. Key-less, local computation. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • healthFree.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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Free. Returns AMR service status, provider health and cache metrics.

    Annotations the server declares

    • readOnlyHint: true
  • holidaysOfficial public holidays for a country and year via Nager.Date (key-less): date, local + English name, whether it is nationwide, and sub-region counties.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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Official public holidays for a country and year via Nager.Date (key-less): date, local + English name, whether it is nationwide, and sub-region counties. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • html_to_markdownConvert any public web page into clean, LLM-ready Markdown: main content only (boilerplate, nav and ads removed), headings, lists, tables and optional links/images preserved.1 finding

    Why it is in this group

    • The description's first verb is "convert": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "html_to_markdown" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Convert any public web page into clean, LLM-ready Markdown: main content only (boilerplate, nav and ads removed), headings, lists, tables and optional links/images preserved. Trafilatura extraction with markdownify fallback, SSRF-guarded fetch, up to 3 MB HTML. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • market_spreadCross-exchange crypto spread from live tickers: gross spread, fees, modelled slippage, transfer cost and net edge in bps for a given trade size.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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Cross-exchange crypto spread from live tickers: gross spread, fees, modelled slippage, transfer cost and net edge in bps for a given trade size. Ticker/volume based (no full order book). Pay per call with USDC or USDT on Base via x402 – no API key, no signup. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • media_convertConvert or transcode a public audio/video/image file via a self-hosted FFmpeg container: pass a source URL and a target format (mp3, mp4, webm, wav, png, …) and receive a public ou…1 finding

    Why it is in this group

    • The name "media_convert" says "convert": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "media_convert" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

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

      What this check looks for
    Description, as the server wrote it
    Convert or transcode a public audio/video/image file via a self-hosted FFmpeg container: pass a source URL and a target format (mp3, mp4, webm, wav, png, …) and receive a public output URL. Pay per call with USDC or USDT on Base via x402 – no API key, no signup. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • metadataStructured metadata for any public page in one call: title, meta description/keywords, canonical URL, HTML lang, charset, favicon (absolute URL) and the FULL OpenGraph (all og:*) a…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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Structured metadata for any public page in one call: title, meta description/keywords, canonical URL, HTML lang, charset, favicon (absolute URL) and the FULL OpenGraph (all og:*) and Twitter-Card (all twitter:*) tag sets. Ideal for link previews / unfurling and agent research. SSRF-guarded. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • npm_packagenpm package intelligence: latest version, license, repository, maintainers, dependency count, publish dates and weekly downloads – ideal for dependency vetting by coding agents.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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    npm package intelligence: latest version, license, repository, maintainers, dependency count, publish dates and weekly downloads – ideal for dependency vetting by coding agents. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • pdf_textExtract clean text (per page + full) and metadata from any public PDF URL up to 25 MB / 200 pages.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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Extract clean text (per page + full) and metadata from any public PDF URL up to 25 MB / 200 pages. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • pypi_packagePyPI project intelligence: latest version, summary, license, author, project URLs, Python requirement, declared dependencies, release count and last release date.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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    PyPI project intelligence: latest version, summary, license, author, project URLs, Python requirement, declared dependencies, release count and last release date. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • qr_generateGenerate a QR code from any text or URL and return it as a scalable SVG image plus a data-URI.1 finding

    Why it is in this group

    • The name "qr_generate" says "generate": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "qr_generate" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

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

      What this check looks for
    Description, as the server wrote it
    Generate a QR code from any text or URL and return it as a scalable SVG image plus a data-URI. Pure key-less generation, no third-party service. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • robots_checkAnswer 'may this user-agent crawl this URL?' by fetching and parsing the site's robots.txt: allowed flag, crawl-delay, request-rate and declared sitemaps.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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Answer 'may this user-agent crawl this URL?' by fetching and parsing the site's robots.txt: allowed flag, crawl-delay, request-rate and declared sitemaps. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • seo_checkOn-page SEO audit of any URL: title, meta description, canonical, headings, images without alt, links, Open Graph, structured data, robots.txt/sitemap, prioritized issues and a 0-1…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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    On-page SEO audit of any URL: title, meta description, canonical, headings, images without alt, links, Open Graph, structured data, robots.txt/sitemap, prioritized issues and a 0-100 score with grade. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • sitemap_urlsParse a sitemap into the real URL list: accepts a direct sitemap.xml, a <sitemapindex> (recursed, bounded) or a site root (robots.txt Sitemap: lines, then /sitemap.xml as fallback)…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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Parse a sitemap into the real URL list: accepts a direct sitemap.xml, a <sitemapindex> (recursed, bounded) or a site root (robots.txt Sitemap: lines, then /sitemap.xml as fallback). Returns each URL with lastmod, changefreq and priority. SSRF-guarded. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • text_statsReadability and text statistics for raw text or a fetched page: word/sentence/syllable counts, Flesch Reading Ease, Flesch-Kincaid grade, and reading/speaking time.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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Readability and text statistics for raw text or a fetched page: word/sentence/syllable counts, Flesch Reading Ease, Flesch-Kincaid grade, and reading/speaking time. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • timezoneCurrent local time, UTC offset, DST status and abbreviation for any IANA timezone name, or resolve a place name to its timezone and local time.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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Current local time, UTC offset, DST status and abbreviation for any IANA timezone name, or resolve a place name to its timezone and local time. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • token_priceMulti-venue median spot price for any major crypto asset (Binance, Coinbase, Kraken, CoinGecko) with min/max, deviation and confidence score – one call instead of four.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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Multi-venue median spot price for any major crypto asset (Binance, Coinbase, Kraken, CoinGecko) with min/max, deviation and confidence score – one call instead of four. No API key. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • uuidGenerate one or more RFC 4122 UUIDs (random v4, or deterministic v5 from a namespace and name).1 finding

    Why it is in this group

    • The description's first verb is "generate": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "uuid" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "generate": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Generate one or more RFC 4122 UUIDs (random v4, or deterministic v5 from a namespace and name). Key-less, local generation. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • wallet_balanceNative + stablecoin balances (ETH, USDC, USDT, DAI, WETH) of any EVM wallet with USD valuation, read directly from public RPC nodes on Base, Ethereum, Arbitrum, Optimism or Polygon…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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Native + stablecoin balances (ETH, USDC, USDT, DAI, WETH) of any EVM wallet with USD valuation, read directly from public RPC nodes on Base, Ethereum, Arbitrum, Optimism or Polygon. No API key. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • weatherCurrent conditions plus a daily forecast (up to 16 days) for any place name or lat/lon via Open-Meteo (key-less, CC BY 4.0); temperature in °C or °F, cached 30 min.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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Current conditions plus a daily forecast (up to 16 days) for any place name or lat/lon via Open-Meteo (key-less, CC BY 4.0); temperature in °C or °F, cached 30 min. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • web_crawlMini crawler: fetches a start page and follows same-domain links breadth-first (max 10 pages), returning clean LLM-ready Markdown, title, word count and discovered links per page; …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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Mini crawler: fetches a start page and follows same-domain links breadth-first (max 10 pages), returning clean LLM-ready Markdown, title, word count and discovered links per page; honours robots.txt by default. SSRF-guarded. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • wikipedia_summaryClean article summary from Wikipedia in any language: title, short description, extract (capped), canonical URL, thumbnail and coordinates; falls back to search when the title is f…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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Clean article summary from Wikipedia in any language: title, short description, extract (capped), canonical URL, thumbnail and coordinates; falls back to search when the title is fuzzy. Content CC BY-SA 4.0. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
Only reads 14Claude Code: allow
  • agent_wallet_snapshotOne-call wallet overview for autonomous agents: native balance, ERC-20 balances (default stablecoins + WETH, or any contracts you pass), current gas price, tx count, contract check…No findings

    Why it is in this group

    • The name "agent_wallet_snapshot" says "snapshot": a word for reading.
    Description, as the server wrote it
    One-call wallet overview for autonomous agents: native balance, ERC-20 balances (default stablecoins + WETH, or any contracts you pass), current gas price, tx count, contract check and USD values incl. total – bundles what would otherwise be 5+ RPC calls. Base, Ethereum, BSC, Polygon, Arbitrum, Optimism. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • dns_lookupResolve any DNS record type (A, AAAA, CNAME, MX, NS, TXT, SOA, SRV, CAA, PTR) over DNS-over-HTTPS with TTLs and DNSSEC validation flag.No findings

    Why it is in this group

    • The name "dns_lookup" says "lookup": a word for reading.
    Description, as the server wrote it
    Resolve any DNS record type (A, AAAA, CNAME, MX, NS, TXT, SOA, SRV, CAA, PTR) over DNS-over-HTTPS with TTLs and DNSSEC validation flag. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • email_validateValidate an email address: RFC syntax, MX/A records via DNS-over-HTTPS, disposable and free-provider detection, role-account flag, deliverability score and verdict.No findings

    Why it is in this group

    • The name "email_validate" says "validate": a word for reading.
    Description, as the server wrote it
    Validate an email address: RFC syntax, MX/A records via DNS-over-HTTPS, disposable and free-provider detection, role-account flag, deliverability score and verdict. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • ens_resolveResolve an ENS name to its Ethereum address plus text records (url, com.twitter, avatar, ...) via on-chain calls.No findings

    Why it is in this group

    • The name "ens_resolve" says "resolve": a word for reading.
    Description, as the server wrote it
    Resolve an ENS name to its Ethereum address plus text records (url, com.twitter, avatar, ...) via on-chain calls. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • feed_discoverFind the RSS/Atom feed URLs for a website from its HTML link tags, with a common-path fallback (/feed, /rss.xml, ...).No findings

    Why it is in this group

    • The description's first verb is "find": a word for reading.
    Description, as the server wrote it
    Find the RSS/Atom feed URLs for a website from its HTML link tags, with a common-path fallback (/feed, /rss.xml, ...). Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • rss_feedFetch and parse any RSS 2.0 or Atom feed into clean JSON: title, link, published date, author, summary, optional full text content and categories per item.No findings

    Why it is in this group

    • The description's first verb is "fetch": a word for reading.
    Description, as the server wrote it
    Fetch and parse any RSS 2.0 or Atom feed into clean JSON: title, link, published date, author, summary, optional full text content and categories per item. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • tx_statusStatus of any EVM transaction on Base, Ethereum, BSC, Polygon, Arbitrum or Optimism: success/failed/pending, block number, confirmations, gas used, effective gas price, fee, from/t…No findings

    Why it is in this group

    • The name "tx_status" says "status": a word for reading.
    Description, as the server wrote it
    Status of any EVM transaction on Base, Ethereum, BSC, Polygon, Arbitrum or Optimism: success/failed/pending, block number, confirmations, gas used, effective gas price, fee, from/to/value and all ERC-20 Transfer events decoded from the receipt logs (contract, symbol, decimals, amount). Public JSON-RPC nodes with fallback. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • url_statusHealth check for any public URL: HTTP status, full redirect chain, response time, content type, SSL certificate validity/expiry/issuer and a security-header audit (HSTS, CSP, X-Fra…No findings

    Why it is in this group

    • The name "url_status" says "status": a word for reading.
    Description, as the server wrote it
    Health check for any public URL: HTTP status, full redirect chain, response time, content type, SSL certificate validity/expiry/issuer and a security-header audit (HSTS, CSP, X-Frame-Options, …) with score. SSRF-guarded (private/internal targets are rejected). Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • youtube_transcriptFetch the transcript of a YouTube video (manual or auto-generated captions) as timestamped segments plus full text, with language preference and English fallback.No findings

    Why it is in this group

    • The description's first verb is "fetch": a word for reading.
    Description, as the server wrote it
    Fetch the transcript of a YouTube video (manual or auto-generated captions) as timestamped segments plus full text, with language preference and English fallback. Accepts a video id or any YouTube URL. No API key, no download. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true

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.

Install

Pinned to version 0.6.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http agent-margin-router https://agent-margin-router-production.up.railway.app/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__agent-margin-router__web_search",
      "mcp__agent-margin-router__email_validate",
      "mcp__agent-margin-router__rss_feed",
      "mcp__agent-margin-router__ens_resolve",
      "mcp__agent-margin-router__youtube_transcript",
      "mcp__agent-margin-router__tx_status",
      "mcp__agent-margin-router__news_search",
      "mcp__agent-margin-router__hn_search",
      "mcp__agent-margin-router__reddit_search",
      "mcp__agent-margin-router__agent_wallet_snapshot",
      "mcp__agent-margin-router__url_status",
      "mcp__agent-margin-router__arxiv_search",
      "mcp__agent-margin-router__dns_lookup",
      "mcp__agent-margin-router__feed_discover"
    ],
    "ask": [
      "mcp__agent-margin-router__extract_clean",
      "mcp__agent-margin-router__market_spread",
      "mcp__agent-margin-router__gas_fees",
      "mcp__agent-margin-router__best_price",
      "mcp__agent-margin-router__token_price",
      "mcp__agent-margin-router__wallet_balance",
      "mcp__agent-margin-router__dns_whois",
      "mcp__agent-margin-router__pdf_text",
      "mcp__agent-margin-router__seo_check",
      "mcp__agent-margin-router__defi_yields",
      "mcp__agent-margin-router__currency_convert",
      "mcp__agent-margin-router__geo_ip",
      "mcp__agent-margin-router__crypto_ohlcv",
      "mcp__agent-margin-router__html_to_markdown",
      "mcp__agent-margin-router__github_repo_summary",
      "mcp__agent-margin-router__dex_price",
      "mcp__agent-margin-router__erc20_balance",
      "mcp__agent-margin-router__defi_tvl",
      "mcp__agent-margin-router__fear_greed",
      "mcp__agent-margin-router__web_crawl",
      "mcp__agent-margin-router__metadata",
      "mcp__agent-margin-router__sitemap_urls",
      "mcp__agent-margin-router__wikipedia_summary",
      "mcp__agent-margin-router__npm_package",
      "mcp__agent-margin-router__pypi_package",
      "mcp__agent-margin-router__geocode",
      "mcp__agent-margin-router__domain_rdap",
      "mcp__agent-margin-router__contract_info",
      "mcp__agent-margin-router__weather",
      "mcp__agent-margin-router__holidays",
      "mcp__agent-margin-router__robots_check",
      "mcp__agent-margin-router__text_stats",
      "mcp__agent-margin-router__timezone",
      "mcp__agent-margin-router__qr_generate",
      "mcp__agent-margin-router__uuid",
      "mcp__agent-margin-router__hash",
      "mcp__agent-margin-router__media_convert",
      "mcp__agent-margin-router__health",
      "mcp__agent-margin-router__payment_info"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as agent-margin-router. Review it before you use it.