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
53 tools: 2 do something that can't be undone, 37 change things and 14 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone2Claude Code: ask: see these tools
- Changes things37Claude Code: ask: see these tools
- Only reads14Claude Code: allow: see these tools
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/mcpFindings
Matches of fixed checks, with the text they matched.
- Warncurrency_convert
The server marks "currency_convert" 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 "currency_convert" says "convert": a word for a change.
- Warnhtml_to_markdown
The server marks "html_to_markdown" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "convert": a word for a change.
- Warnqr_generate
The server marks "qr_generate" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "qr_generate" says "generate": a word for a change.
- Warnuuid
The server marks "uuid" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "generate": a word for a change.
- Warnmedia_convert
The server marks "media_convert" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "media_convert" says "convert": a word for a change.
- Warnpayment_info
The server marks "payment_info" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "payment_info" says "payment": 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.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "currency_convert" says "convert": a word for a change.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "payment_info" says "payment": a word that usually means money moves, which cannot be taken back.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "convert": a word for a change.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "media_convert" says "convert": a word for a change.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "qr_generate" says "generate": a word for a change.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "generate": a word for a change.
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
arxiv_searchSearch arXiv preprints: returns id, title, authors, abstract, categories, published/updated dates and PDF links, sortable by relevance or date, optionally filtered by category (e.g…No findings
Why it is in this group
- The name "arxiv_search" says "search": a word for reading.
Description, as the server wrote it Search arXiv preprints: returns id, title, authors, abstract, categories, published/updated dates and PDF links, sortable by relevance or date, optionally filtered by category (e.g. cs.AI). 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
hn_searchSearch Hacker News stories and comments via the Algolia HN API: title, URL, author, points, comment count, timestamp and HN discussion link; sort by relevance or date, optional tag…No findings
Why it is in this group
- The name "hn_search" says "search": a word for reading.
Description, as the server wrote it Search Hacker News stories and comments via the Algolia HN API: title, URL, author, points, comment count, timestamp and HN discussion link; sort by relevance or date, optional tag filter (story, comment, ask_hn, show_hn). Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
news_searchGlobal news article search across 65+ languages via the GDELT DOC 2.0 API: title, URL, source domain, publication time, language and country per article, with look-back window (e.g…No findings
Why it is in this group
- The name "news_search" says "search": a word for reading.
Description, as the server wrote it Global news article search across 65+ languages via the GDELT DOC 2.0 API: title, URL, source domain, publication time, language and country per article, with look-back window (e.g. 24h, 7d) and language filter. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
reddit_searchSearch Reddit posts site-wide or within one subreddit: title, URL, subreddit, author, score, upvote ratio, comment count, timestamp and the first 500 characters of the post text; s…No findings
Why it is in this group
- The name "reddit_search" says "search": a word for reading.
Description, as the server wrote it Search Reddit posts site-wide or within one subreddit: title, URL, subreddit, author, score, upvote ratio, comment count, timestamp and the first 500 characters of the post text; sort by relevance, hot, new, top or comments with a time filter. 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
web_searchLive web search results (title, URL, domain, snippet) for any query, key-less, region-aware.No findings
Why it is in this group
- The name "web_search" says "search": a word for reading.
Description, as the server wrote it Live web search results (title, URL, domain, snippet) for any query, key-less, region-aware. 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/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .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.
