io. github. wygogogo19/ robotbase-mcp
by wygogogo19 · remote · no sign-in to list tools · v0.27.0 · published by GitHub user wygogogo19
Agent MCP: 10 web tools, BTC/ETH/XMR/ZEC/TRON verification & risk, 80k+ books.
72 tools: 5 do something that can't be undone, 17 change things and 50 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone5Claude Code: ask: see these tools
- Changes things17Claude Code: ask: see these tools
- Only reads50Claude 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 robotbase https://robotbase.cc/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnweb_screenshot
The server marks "web_screenshot" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "web_screenshot" says "screenshot": a word for reading.
The server marks "broadcast_raw_transaction" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "broadcast_raw_transaction" says "broadcast": a word for sending, and what is sent cannot be taken back.
The server marks "eth_get_transaction" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "eth_get_transaction" says "get": a word for reading.
The server marks "tron_verify_usdt_transfer" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "tron_verify_usdt_transfer" says "transfer": a word for a change that another call does not undo.
The server marks "xmr_verify_payment" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "xmr_verify_payment" says "payment": a word that usually means money moves, which cannot be taken back.
The description contains "every other tool", wording about other tools or servers.
What this check looks forMatched text
description: "...e or author and need the lang+slug that every other tool requires. Do not use: to find words ins..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
72 tools
Can't be undone 5Claude Code: ask
broadcast_raw_transactionRelay an already-signed raw transaction to the network through our own full node (non-custodial: we never see a private key).1 finding
Why it is in this group
- The name "broadcast_raw_transaction" says "broadcast": a word for sending, and what is sent cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "broadcast_raw_transaction" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "broadcast_raw_transaction" says "broadcast": a word for sending, and what is sent cannot be taken back.
Description, as the server wrote it Relay an already-signed raw transaction to the network through our own full node (non-custodial: we never see a private key). When to use: an agent signed a transaction locally and wants a high-availability broadcast path into the Bitcoin network. Do not use: to build or sign a transaction (we never hold keys), or to look up a payment (that is btc_get_transaction). Returns: {accepted, txid, chain, relayed} on success, or {accepted:false, reason} - a rejected transaction is never relayed. Availability: disabled by default on this deployment; the operator enables it with RB_ENABLE_BROADCAST=1.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
eth_get_transactionEthereum transaction check by hash: success or reverted, gas used, fee paid, confirmations, whether the block is finalized, and any ERC-20 transfers decoded from the receipt logs (…1 finding
Why it is in this group
- The name "eth_get_transaction" says "get": a word for reading.
- The description says "irreversible".
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "eth_get_transaction" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "eth_get_transaction" says "get": a word for reading.
Description, as the server wrote it Ethereum transaction check by hash: success or reverted, gas used, fee paid, confirmations, whether the block is finalized, and any ERC-20 transfers decoded from the receipt logs (token, from, to, amount). When to use: did this ETH or ERC-20 payment actually settle, is it irreversible, who paid whom and how much. Do not use: for fee estimation (eth_get_fee_rates) or for Tron (tron_get_transaction). Returns: found, status, block_number, from, to, value_eth, gas_used, fee_eth, confirmations, finalized, erc20_transfers[]. A miss is reported as absent from *our* node only - never as proof of non-existence. Boundary: the transaction-hash index starts at block 26,170,371 (2026-10-12, only widens) while receipts cover a rolling ~6 days, so a miss on an older transaction means outside our window, not non-existent.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
tron_verify_usdt_transferTRC-20 USDT settlement check by transaction id: did it land, is it irreversible, how much, from and to whom.1 finding
Why it is in this group
- The name "tron_verify_usdt_transfer" says "transfer": a word for a change that another call does not undo.
- The description says "irreversible".
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "tron_verify_usdt_transfer" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "tron_verify_usdt_transfer" says "transfer": a word for a change that another call does not undo.
Description, as the server wrote it TRC-20 USDT settlement check by transaction id: did it land, is it irreversible, how much, from and to whom. When to use: an agent or a merchant must confirm a USDT payment before releasing value - this is the settlement check that closes an automated trade loop. Do not use: to assess the counterparty (that is tron_check_address_risk). Data source: our own java-tron full node when the transaction is inside its ~6 day retention window (sub-second, no third party); it falls back to TronGrid automatically for older transactions, and says which one answered in `source`. A local miss is never reported as 'not found' by itself. Returns: found, status (SUCCESS|FAILED), finalized (present on the solidity/irreversible chain), confirmations, blocks_until_finality, block_number, block_time_utc, amount_usdt, from, to, fee_trx, checks {}, verified and a plain-language verdict. Pass expected_to / expected_amount_usdt to have the recipient and amount matched for you. Metered: 5 free calls per day per IP, then 0.01 USDC per call over x402. There is no API key: the 402 answer carries the machine-readable terms in structuredContent.accepts[].
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
web_screenshotCapture a screenshot of one public web page as an image (JPEG) plus metadata.1 finding
Why it is in this group
- The name "web_screenshot" says "screenshot": a word for reading.
- The description's first verb is "capture": 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 "web_screenshot" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "web_screenshot" says "screenshot": a word for reading.
Description, as the server wrote it Capture a screenshot of one public web page as an image (JPEG) plus metadata. When to use: visual layout matters - a dashboard, chart, UI state, or 'what does this page look like'. Do not use: to read text (use web_fetch), for pages behind a login or paywall, or for bulk capture. Returns: image content (image/jpeg) plus {url, final_url, title, width, height, bytes, engine, elapsed_ms, _metering}. Rendered by a real Chromium browser, robots.txt-respecting, SSRF-guarded, max 3MB per image. Metered: shares the web free bucket (100 calls/day per IP shared by all ten web tools), then 2 credits per call over x402 - there is no API key; the 402 answer carries accepts[].
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
xmr_verify_paymentVerify one Monero payment cryptographically, using proof material only the recipient can provide.1 finding
Why it is in this group
- The name "xmr_verify_payment" 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 "xmr_verify_payment" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "xmr_verify_payment" says "payment": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it Verify one Monero payment cryptographically, using proof material only the recipient can provide. Give it a txid plus either the transaction key (from your own wallet: get_tx_key <txid>) or a transaction proof signature (get_tx_proof), and it returns whether that transaction really pays the given address, for how much, and how many confirmations. When to use: a merchant or agent needs to confirm an XMR payment arrived before releasing value, without trusting a block explorer - and for Monero there is no other way, because amounts and both counterparties are hidden by the protocol. Do not use: to discover payments you cannot already prove (RobotBase does not index Monero wallets, and no third party can enumerate your incoming payments), or for TRC-20 USDT settlement (that is tron_verify_usdt_transfer). Returns: verified, confirmations, received_xmr, received_atomic, in_pool. Neither the tx key nor the proof can be used to spend funds or to scan other payments.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Changes things 17Claude Code: ask
cyberlibrary_book_metaMetadata for exactly one book: title, author, genre, chapter count, word count, source URL and every access URL (HTML page, Markdown mirror, first chapter).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 Metadata for exactly one book: title, author, genre, chapter count, word count, source URL and every access URL (HTML page, Markdown mirror, first chapter). When to use: you have a lang+slug and need to decide whether the book is worth fetching, or you need chapter_count before pulling a specific chapter. Do not use: to read content (call cyberlibrary_get_chapter or cyberlibrary_get_markdown). Returns: one catalog record object.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
cyberlibrary_catalog_indexEvery language catalog in Cyber Library with item counts and the corpus generation 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 Every language catalog in Cyber Library with item counts and the corpus generation date. When to use: first call in any session - it tells you which languages exist and how large each is, so you can pick a language before fetching a shard. Do not use: to list actual books (call cyberlibrary_language_shard) or to read a book (call cyberlibrary_get_markdown / cyberlibrary_get_chapter). Returns: {generated_at, total_items, readable_items, languages[]} where each language entry carries {lang, total_items, url|pages}.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
cyberlibrary_citeReady-to-paste citation for one book: title, author, canonical page URL, Markdown URL, license and the public-domain territory notice.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 Ready-to-paste citation for one book: title, author, canonical page URL, Markdown URL, license and the public-domain territory notice. When to use: before quoting or summarising a book, so the answer carries a verifiable source. Do not use: to fetch content (use cyberlibrary_get_chapter). Returns: {title, author, page_url, markdown_url, license, source_url, citation, notice}.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
cyberlibrary_language_shardOne page of the book catalog for a 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 One page of the book catalog for a language. Large languages are paginated (for example en = 25 pages x 2500 books); small languages are a single shard. When to use: browse or sample what a language holds, or locate a book title. Do not use: to search by keyword across the whole corpus (that is the planned cyberlibrary_fulltext_search) or to get one book's metadata when you already know its slug (call cyberlibrary_book_meta). Returns: {lang, page, total_pages, total_items, count, books[]} with books trimmed to `limit`.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
cyberlibrary_service_infoDiscovery endpoints for Cyber Library: MCP endpoint, tools list, Server Card, usage stats, catalog API, llms.txt / llms-full manifest, OpenAPI and the HTML search UI.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 Discovery endpoints for Cyber Library: MCP endpoint, tools list, Server Card, usage stats, catalog API, llms.txt / llms-full manifest, OpenAPI and the HTML search UI. When to use: you need a machine-readable entry point or want to know what else this service exposes. Do not use: for book data itself. Returns: a flat map of named endpoint URLs plus version and citation guidance.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
cyberlibrary_verify_quoteVerify whether a quotation actually occurs in the Cyber Library corpus and return the exact passage, book, chapter, permanent chunk_id and citation.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 Verify whether a quotation actually occurs in the Cyber Library corpus and return the exact passage, book, chapter, permanent chunk_id and citation. When to use: before citing a quotation, to catch model hallucination, or to ground a claim in a verifiable source. Do not use: to find a book by title (cyberlibrary_search_books) or to read a chapter (cyberlibrary_get_chapter). Matching is exact substring first, then fuzzy (>=90% of the quote). Returns: {quote, verified, match_type, best_score, matches[{chunk_id, score, title, chapter, para, citation, url, license}], corpus_version}.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
robotbase_capabilitiesPer-chain capability, retention boundary and fee model.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 Per-chain capability, retention boundary and fee model. When to use: before promising that some query is possible, or when a tool refused a query as out of range. Do not use: for live numbers (that is chain_status). Returns: one row per chain {chain, tier, name, client, state, capability}, plus the fee models we support and an honesty note. Key fact: RobotBase publishes no RPC endpoint - every read path is this MCP surface.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
robotbase_servicesLive availability of every service behind the RobotBase gateway: the chain nodes, Web3 Agent Hub, AITOKENS and MCP itself.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 availability of every service behind the RobotBase gateway: the chain nodes, Web3 Agent Hub, AITOKENS and MCP itself. When to use: an overall platform health check, or finding which service is down. Do not use: for a single chain's node state (chain_status) or its capability boundary (robotbase_capabilities). Returns: services[] {name, ok, detail} plus an overall ok flag.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
tron_check_address_riskTRON address risk intelligence: judicial and black-market labels, account profile and a 0-100 safety score.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 TRON address risk intelligence: judicial and black-market labels, account profile and a 0-100 safety score. When to use: before accepting USDT from a counterparty - OTC settlement, merchant payout, or any agent that must not receive tainted funds; also to sanity-check an address you are about to pay. Do not use: to confirm that a specific transfer arrived (that is tron_verify_usdt_transfer). Returns: risk_level (low|medium|high|unknown), safety_score, hit_flags (sanctioned / money_laundering / mixer / cybercrime / phishing / blacklist_doubt ...), malicious_contracts_created, account {activated, age_days, balance_trx, is_contract, trc20_holdings}, not_covered[] and a disclaimer. Metered: 5 free calls per day per IP, then 0.01 USDC per call over x402. There is no API key: the 402 answer carries the machine-readable terms in structuredContent.accepts[].
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
web_actDrive a real Chromium browser on one public page: click, type, press keys, scroll, wait for selectors, then return the resulting text (and optionally a screenshot and JSON XHR resp…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 Drive a real Chromium browser on one public page: click, type, press keys, scroll, wait for selectors, then return the resulting text (and optionally a screenshot and JSON XHR responses). When to use: the page needs interaction before its content appears (cookie banners, tabs, 'load more', form submit) and web_fetch/web_crawl cannot see it. Do not use: for plain reading (web_fetch) or bulk crawling (web_crawl); no login/paywall bypass. Returns: {ok, url, final_url, title, markdown, chars, elapsed_ms, screenshot?, xhr?, took_ms, _metering}. Max 10 actions; screenshot returns MCP image content. Metered: shares the web free bucket (100 calls/day per IP shared by all ten web tools), then 3 credits per call over x402.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
web_crawlCrawl one site's same-host pages starting from a URL (depth 1-2, at most 20 pages) and return each page's title, URL and readable 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 Crawl one site's same-host pages starting from a URL (depth 1-2, at most 20 pages) and return each page's title, URL and readable text. When to use: you need several pages from one site (docs section, news index, product list) and web_map alone is not enough. Do not use: to mirror a whole site (hard cap 20 pages, same host), or for one page (web_fetch). Returns: {ok, url, final_url, count, pages:[{url, title, status, chars, content}], cached, took_ms, _metering}. Respects robots.txt and SSRF guards; partial page failures are skipped. Metered: shares the web free bucket (100 calls/day per IP shared by all ten web tools), then 3 credits per call over x402 - no API key.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
web_extractExtract structured data from one public page: tables (headers + rows), JSON-LD blocks, and Open Graph/Twitter/canonical/language metadata.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 structured data from one public page: tables (headers + rows), JSON-LD blocks, and Open Graph/Twitter/canonical/language metadata. When to use: the page has tables or schema.org JSON-LD you need as data, without an LLM. Do not use: when you only need the page text (web_fetch) or a screenshot (web_screenshot). Returns: {ok, url, final_url, title, meta:{description,image,site_name,type,canonical,lang}, jsonld[], tables:[{caption,headers,rows}], links? , cached, took_ms, _metering}. Metered: shares the web free bucket (100 calls/day per IP shared by all ten web tools), then 1 credit per call over x402.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
web_mapDiscover the URLs of one site - sitemap first, then same-host links from the homepage.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 Discover the URLs of one site - sitemap first, then same-host links from the homepage. When to use: you need the list of pages a site exposes before fetching a few of them. Do not use: as a crawler (max 50 URLs, no page content) or to bypass robots.txt. Returns: {url, final_url, count, urls:[{url,source}], cached, took_ms, _metering}. Metered: shares the web free bucket (100 calls/day per IP shared by all ten web tools), then 1 credit per call over x402 - there is no API key; the 402 answer carries accepts[].
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
web_metadataExtract a page's structured metadata: Open Graph, Twitter cards, canonical URL, language and JSON-LD.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 a page's structured metadata: Open Graph, Twitter cards, canonical URL, language and JSON-LD. When to use: you need the title/description/author/image of a page, or JSON-LD structured data for a product/article, without reading the whole page. Do not use: when you need the page text (use web_fetch) or a screenshot (use web_screenshot). Returns: {ok, url, final_url, title, description, image, site_name, type, canonical, lang, jsonld[], cached, took_ms, _metering}. Metered: shares the web free bucket (100 calls/day per IP shared by all ten web tools), then 1 credit per call over x402 - there is no API key.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
xmr_merchant_reportHistorical incoming-payment ledger for one Monero address, computed with a view key.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 incoming-payment ledger for one Monero address, computed with a view key. Returns per-day counts and totals, the largest common amounts, confirmations, unlocked flags and a completion flag for a 1-30 day window. When to use: a merchant or treasury needs to reconcile what actually arrived over a period, not just one txid - the thing a block explorer cannot do for Monero because amounts are hidden. Do not use: to check a single payment when you already have a tx key (xmr_verify_payment), or for balances (xmr_wallet_balance). Returns: tx_count, received_total_xmr, daily[], top_amounts[], transfers[], window.complete. The view key can read but never spend; it is used in a single-use view-only wallet and discarded.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
xmr_mining_profitabilityMining profitability calculator using live chain difficulty and the Monero tail-emission reward: gross XMR per day/month, power cost, net USD profit, break-even XMR price, break-ev…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 Mining profitability calculator using live chain difficulty and the Monero tail-emission reward: gross XMR per day/month, power cost, net USD profit, break-even XMR price, break-even electricity price and hardware ROI days. When to use: decide whether a given hashrate is worth running at a power price, or to explain why XMR mining economics changed. Do not use: for pool share accounting (this service runs no pool) or price prediction. Returns: network{}, gross_xmr{}, power{}, usd{}, profitable, roi_days, break-even fields.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
xmr_wallet_balanceBalance for one Monero address using a view key: total, unlocked and pending XMR, with the scanned window and a completion flag.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 Balance for one Monero address using a view key: total, unlocked and pending XMR, with the scanned window and a completion flag. When to use: an agent or merchant wants to know how much an address holds right now, or whether incoming funds have unlocked, without running a wallet. Do not use: for payment proof (xmr_verify_payment) or history (xmr_merchant_report). Returns: balance_xmr, unlocked_xmr, pending_xmr, scanned_to_height, chain_tip, complete. View key can read but never spend and is discarded after the call.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 50Claude Code: allow
btc_get_addressBalance and activity of a Bitcoin address, with no key involved.No findings
Why it is in this group
- The name "btc_get_address" says "get": a word for reading.
Description, as the server wrote it Balance and activity of a Bitcoin address, with no key involved. When to use: reconciling a merchant wallet, or checking whether an address received funds and how active it is. Do not use: we do not label or risk-score addresses; for a single payment use btc_get_transaction. Returns: address, confirmed/unconfirmed balance, utxo count and total, tx count, last 10 transactions. Supports P2PKH (1..), P2SH (3..), bech32 (bc1q..), bech32m (bc1p..). Ultra-active addresses may return a degraded=true response under index load rather than hanging.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
btc_get_blockBitcoin block summary by height or hash; omit both for the chain tip.No findings
Why it is in this group
- The name "btc_get_block" says "get": a word for reading.
Description, as the server wrote it Bitcoin block summary by height or hash; omit both for the chain tip. When to use: an overview of a block, or confirming which block a payment landed in. Do not use: to fetch a single payment (that is btc_get_transaction). Returns: hash, height, time, txs, size, weight, confirmations, previousblockhash.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
btc_get_fee_ratesBitcoin fee rates for confirmation targets, plus the mempool floor.No findings
Why it is in this group
- The name "btc_get_fee_rates" says "get": a word for reading.
Description, as the server wrote it Bitcoin fee rates for confirmation targets, plus the mempool floor. When to use: pricing a Bitcoin transaction, or deciding when a sweep will confirm cheaply. Do not use: to measure backlog depth (that is btc_get_mempool_state). There is no equivalent for Zcash: ZEC fees are protocol-fixed, see robotbase_capabilities. Returns: estimates for 1/2/3/6/12/24-block targets in BTC/kvB, recommended.fast_1_block_sat_vb / medium_3_block_sat_vb / slow_12_block_sat_vb, mempool_min_sat_vb.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
btc_get_mempool_stateBitcoin mempool depth, capacity load and a busy/normal verdict.No findings
Why it is in this group
- The name "btc_get_mempool_state" says "get": a word for reading.
Description, as the server wrote it Bitcoin mempool depth, capacity load and a busy/normal verdict. When to use: deciding whether now is a good moment to settle on-chain, or how large the backlog is. Do not use: to choose a fee (that is btc_get_fee_rates). Returns: txs, bytes, usage_mb, max_mempool_mb, load_pct, min_fee_btc_kvb, total_fees_btc, verdict.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
btc_get_network_statsBitcoin network and node state: difficulty, network hashrate, total transactions processed and the current tx/s rate, protocol version, peer connections, relay fee, mempool size, u…No findings
Why it is in this group
- The name "btc_get_network_stats" says "get": a word for reading.
Description, as the server wrote it Bitcoin network and node state: difficulty, network hashrate, total transactions processed and the current tx/s rate, protocol version, peer connections, relay fee, mempool size, uptime and which indexes (txindex) are synced on our node. When to use: macro questions about Bitcoin - how much hashrate secures it, how fast the chain is moving, or whether our node's indexes are complete. Do not use: for fees (btc_get_fee_rates) or mempool depth (btc_get_mempool_state). Returns: difficulty, network_hashrate_hs, chain_tx_count_total, tx_rate_per_s, client, connections, relay_fee_btc_kvb, uptime_s, indexes{}.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
btc_get_transactionLook up one Bitcoin transaction by txid - the core settlement check.No findings
Why it is in this group
- The name "btc_get_transaction" says "get": a word for reading.
Description, as the server wrote it Look up one Bitcoin transaction by txid - the core settlement check. When to use: has this payment arrived, which block is it in, how many confirmations does it have. Do not use: for a whole block (that is btc_get_block); for an address balance (that is btc_get_address). Returns: txid, blockhash, confirmations, time, size/vsize, vin_count, up to 12 outputs with address and value, value_out_btc.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
chain_statusLive run-time state of one chain's node.No findings
Why it is in this group
- The name "chain_status" says "status": a word for reading.
Description, as the server wrote it Live run-time state of one chain's node. When to use: is this chain's node synced, healthy or lagging; what is its height, peer count, mempool depth or client version. Do not use: fees (that is btc_get_fee_rates); a specific payment (that is btc_get_transaction); ZEC pool distribution (that is zec_get_pool_status). Returns: chain, ok, synced, height, peers, mempool, client, state; a chain that is not live yet returns served=false plus its tier instead of an error.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
cyberlibrary_fulltext_searchFull-text search inside the actual book text (a 26 GB corpus of chapter Markdown), returning the matching passage plus the book, chapter and canonical source URL for each hit.No findings
Why it is in this group
- The name "cyberlibrary_fulltext_search" says "search": a word for reading.
Description, as the server wrote it Full-text search inside the actual book text (a 26 GB corpus of chapter Markdown), returning the matching passage plus the book, chapter and canonical source URL for each hit. When to use: you need to locate where a phrase, name or quotation occurs in the corpus, or to ground an answer in a verifiable passage. Do not use: to find a book by title (call cyberlibrary_search_books, which is far cheaper). Strongly prefer passing lang: English alone is 79% of the corpus (20.4 GB), so a language-scoped search is typically 10-100x faster and more relevant. Returns: {query, lang, searched_languages, skipped_languages, scanned_mb, elapsed_ms, results[{lang, book, chapter, source_url, match, snippet}]}.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
cyberlibrary_get_chapterClean Markdown of a single chapter - the recommended way to put Cyber Library text into an agent context.No findings
Why it is in this group
- The name "cyberlibrary_get_chapter" says "get": a word for reading.
Description, as the server wrote it Clean Markdown of a single chapter - the recommended way to put Cyber Library text into an agent context. Chapter 0/1 are both accepted for the opening chapter. When to use: after cyberlibrary_get_toc, to read the specific chapter you care about without pulling the whole book. Do not use: to read an entire book in one shot (use cyberlibrary_get_markdown, but mind the size). Returns: {chapter, title, chars_total, chars_returned, truncated, markdown, markdown_url}.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
cyberlibrary_get_chunksStable paragraph-level chunks for one book, each with a permanent chunk_id (lang:slug:chapter:para), citation text and canonical URL.No findings
Why it is in this group
- The name "cyberlibrary_get_chunks" says "get": a word for reading.
Description, as the server wrote it Stable paragraph-level chunks for one book, each with a permanent chunk_id (lang:slug:chapter:para), citation text and canonical URL. When to use: you need RAG-ready passages with deterministic IDs instead of whole chapters, or you want to cache/index exact passages. Do not use: to read a whole chapter (cyberlibrary_get_chapter) or to search across books (cyberlibrary_verify_quote / cyberlibrary_fulltext_search). Returns: {lang, slug, title, license, corpus_version, total_chunks, chunks[{chunk_id, chapter, para, text, citation, url}]}.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
cyberlibrary_get_markdownWhole-book Markdown mirror, including the book's own metadata header and summary.No findings
Why it is in this group
- The name "cyberlibrary_get_markdown" says "get": a word for reading.
Description, as the server wrote it Whole-book Markdown mirror, including the book's own metadata header and summary. When to use: you need the complete text and have checked chapter_count/word_count via cyberlibrary_book_meta, or you specifically want the book-level summary block. Do not use: for long books where you only need part of the text - prefer cyberlibrary_get_toc + cyberlibrary_get_chapter, which is far cheaper. Returns: {chars_total, chars_returned, truncated, markdown, markdown_url}.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
cyberlibrary_get_tocTable of contents for one book: ordered chapters with their real titles.No findings
Why it is in this group
- The name "cyberlibrary_get_toc" says "get": a word for reading.
Description, as the server wrote it Table of contents for one book: ordered chapters with their real titles. When to use: right after cyberlibrary_book_meta, to pick which chapter to read; this is the cheapest way to survey a long book (single HTML read regardless of chapter count). Do not use: to read prose (call cyberlibrary_get_chapter). Returns: {lang, slug, total_chapters, page, total_pages, chapters[{chapter, title, url}]}.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
cyberlibrary_rag_contextRetrieve ranked passages for a question and pack them into a token budget, ready to paste into an agent context.No findings
Why it is in this group
- The description's first verb is "retrieve": a word for reading.
Description, as the server wrote it Retrieve ranked passages for a question and pack them into a token budget, ready to paste into an agent context. Each passage carries a permanent chunk_id, book/chapter/paragraph, citation, license and source URL, plus a packed context string and citations index. When to use: you are building a RAG answer and need grounded evidence with citations, without assembling chunks yourself. Do not use: to verify an exact quotation (cyberlibrary_verify_quote) or to read a whole book (cyberlibrary_get_chunks). Returns: {query, lang, budget_tokens, used_tokens, passages_returned, corpus_version, context, passages[], citations[]}.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
cyberlibrary_searchUnified CyberLibrary search: one query, automatic language, BM25 + neural semantic fusion (RRF), returning the most relevant passages with stable chunk IDs, citations, licenses and…No findings
Why it is in this group
- The name "cyberlibrary_search" says "search": a word for reading.
Description, as the server wrote it Unified CyberLibrary search: one query, automatic language, BM25 + neural semantic fusion (RRF), returning the most relevant passages with stable chunk IDs, citations, licenses and source URLs, plus an answerable/confidence signal. When to use: first choice when you do not want to decide between keyword and semantic search. Modes: auto (default, both), keyword (exact terms/names), semantic (paraphrase/theme). Options: lang, limit, snippet_chars. Returns: {query, lang, mode_requested, mode_used, answerable, confidence, corpus_version, results[{chunk_id, score, sources, title, author, chapter, para, citation, url, license, snippet}], next_actions}.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
cyberlibrary_search_booksSearch the catalog by title or author within one language, returning matching book records (title, author, lang, slug, chapter_count, word_count and URLs).1 finding
Why it is in this group
- The name "cyberlibrary_search_books" says "search": a word for reading.
Findings
- Warn
The description contains "every other tool", wording about other tools or servers.
What this check looks forMatched text
description: "...e or author and need the lang+slug that every other tool requires. Do not use: to find words ins..."
Description, as the server wrote it Search the catalog by title or author within one language, returning matching book records (title, author, lang, slug, chapter_count, word_count and URLs). When to use: you have a title or author and need the lang+slug that every other tool requires. Do not use: to find words inside the text of books - that is cyberlibrary_fulltext_search. Returns: {query, lang, searched_languages, matches_returned, books[']}.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
cyberlibrary_search_passagesRanked passage retrieval over the paragraph index (BM25).No findings
Why it is in this group
- The name "cyberlibrary_search_passages" says "search": a word for reading.
Description, as the server wrote it Ranked passage retrieval over the paragraph index (BM25). Use a natural-language or keyword query to find the most relevant passages across books, with the book, chapter, chunk_id, citation, license and source URL for each hit. When to use: you need evidence passages for a question rather than a literal phrase match. Do not use: to verify an exact quotation (cyberlibrary_verify_quote) or to read a whole book (cyberlibrary_get_chunks). Pass lang when known (faster/more precise). Returns: {query, matched, candidates, corpus_version, results[{chunk_id, score, lang, slug, title, chapter, para, citation, url, license, snippet}]}. Note: BM25 lexical ranking; a neural semantic layer is planned.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
cyberlibrary_semantic_searchSemantic passage search over a neural embedding index: describe what you are looking for in natural language and get the closest passages, each with a permanent chunk_id, book/chap…No findings
Why it is in this group
- The name "cyberlibrary_semantic_search" says "search": a word for reading.
Description, as the server wrote it Semantic passage search over a neural embedding index: describe what you are looking for in natural language and get the closest passages, each with a permanent chunk_id, book/chapter/paragraph, citation, license and source URL. When to use: keyword/BM25 search misses paraphrases or themes ("a story about a soldier returning from war", "清代公案小说里的侠客"). Do not use: to verify an exact quotation (cyberlibrary_verify_quote) or to read a whole book (cyberlibrary_get_chunks). Falls back to BM25 if the embedding service is down. Returns: {query, lang, backend, total_vectors, corpus_version, results[{chunk_id, score, title, author, chapter, para, citation, url, license, snippet}]}.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
eth_get_accountEthereum account state from our own node: ETH balance, nonce, and whether the address is a contract.No findings
Why it is in this group
- The name "eth_get_account" says "get": a word for reading.
Description, as the server wrote it Ethereum account state from our own node: ETH balance, nonce, and whether the address is a contract. When to use: balance and account type before sizing a transfer, or telling an EOA from a contract. Do not use: for ERC-20 token balances (eth_read_contract with balanceOf) or address risk scoring. Returns: address, balance_eth, nonce, is_contract, code_size_bytes.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
eth_get_blockOne Ethereum block by number, tag (latest/finalized/safe) or hash: timestamp, transaction count, gas used against the limit, base fee, block builder and size.No findings
Why it is in this group
- The name "eth_get_block" says "get": a word for reading.
Description, as the server wrote it One Ethereum block by number, tag (latest/finalized/safe) or hash: timestamp, transaction count, gas used against the limit, base fee, block builder and size. When to use: block-level context - how full is Ethereum right now, when a block was produced, what the base fee was, or which builder produced it. Do not use: for a transaction (eth_get_transaction) or for fees across blocks (eth_get_fee_rates). Returns: found, number, hash, parent_hash, timestamp, age_s, tx_count, gas_used, gas_limit, gas_used_pct, base_fee_gwei, miner, size_bytes. Boundary: block bodies are retained from 15,500,000 (2022-09-14) only; older heights return a pruned-history error, not an empty block.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
eth_get_fee_ratesEthereum fee market from our own Reth node: current and next base fee, priority-fee percentiles over the last blocks, and the estimated ETH cost of a plain transfer and of an ERC-2…No findings
Why it is in this group
- The name "eth_get_fee_rates" says "get": a word for reading.
Description, as the server wrote it Ethereum fee market from our own Reth node: current and next base fee, priority-fee percentiles over the last blocks, and the estimated ETH cost of a plain transfer and of an ERC-20 transfer. When to use: pricing an Ethereum transaction, or deciding what tip gets included quickly. Do not use: for Bitcoin (btc_get_fee_rates), Monero (xmr_get_fee_rates) or Tron (tron_get_chain_economics). Returns: base_fee_gwei, next_base_fee_gwei, base_fee_last_blocks_gwei, priority_percentiles_gwei, estimated_cost{simple_eth_transfer_21000_gas_eth, erc20_transfer_65000_gas_eth}.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
eth_get_logsEthereum event logs over a block range, optionally filtered by contract address and event signature, with ERC-20 Transfer logs decoded (token, from, to, amount).No findings
Why it is in this group
- The name "eth_get_logs" says "get": a word for reading.
Description, as the server wrote it Ethereum event logs over a block range, optionally filtered by contract address and event signature, with ERC-20 Transfer logs decoded (token, from, to, amount). When to use: find transfers or contract events in a window - 'who moved this token in the last N blocks', or watch a contract's activity without an indexer. Do not use: for a single transaction (eth_get_transaction) or to scan huge ranges (max 1000 blocks per call, results truncated with a flag). Returns: filter, matched, returned, truncated, logs[] with block_number, tx_hash, address, topics, data and a decoded block for ERC-20 Transfers. Boundary: logs are read from receipts, which exist only for a rolling window (~6 days today, 1.4-8.3 days as the 50k-block static-file shard advances); older ranges are refused.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
eth_read_contractRead-only (eth_call) against any Ethereum contract, executed by our own Reth node.No findings
Why it is in this group
- The name "eth_read_contract" says "read": a word for reading.
Description, as the server wrote it Read-only (eth_call) against any Ethereum contract, executed by our own Reth node. ERC-20 helpers balanceOf / allowance / decimals / symbol / name / totalSupply are built in; any other function can be called by passing its 4-byte `selector` plus ABI-encoded `parameter`. Nothing is signed or written. When to use: an agent needs an on-chain value without trusting a third-party API - a USDT/USDC balance, token decimals, an allowance, or any view function. Do not use: to send a transaction (this never writes), or for a historical balance. Returns: ok, contract, function, selector, output_type, value, value_human for known-decimals tokens.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_chainsList every chain on the RobotBase roster with its state.No findings
Why it is in this group
- The name "list_chains" says "list": a word for reading.
Description, as the server wrote it List every chain on the RobotBase roster with its state. When to use: the user asks which chains are supported, which nodes are online, or where to start. Do not use: for one chain's live health call chain_status; for what a node can and cannot answer call robotbase_capabilities. Returns: chains[], each {chain, tier (live|provisioning|planned), ok, synced, height, state}.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
tron_get_accountTRON account state read straight off our own node: TRX balance, whether the account is activated, energy and bandwidth (used / limit), whether it is a witness, and account age.No findings
Why it is in this group
- The name "tron_get_account" says "get": a word for reading.
Description, as the server wrote it TRON account state read straight off our own node: TRX balance, whether the account is activated, energy and bandwidth (used / limit), whether it is a witness, and account age. When to use: TRX balance and resource state before sizing a transfer, or checking whether an address exists on chain. Do not use: for USDT/TRC-20 token balances (use tron_read_contract with balanceOf) or for address risk scoring (that is tron_check_address_risk). Returns: found, address, trx_balance, name, created_ms, last_operation_ms, is_witness, has_code, energy, bandwidth.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
tron_get_blockOne Tron block by height or block id, read from our own node: producer, timestamp, transaction count split by contract type, and the tx ids in it.No findings
Why it is in this group
- The name "tron_get_block" says "get": a word for reading.
Description, as the server wrote it One Tron block by height or block id, read from our own node: producer, timestamp, transaction count split by contract type, and the tx ids in it. When to use: inspect a specific block, or confirm which block a transaction landed in. Do not use: for the tip only (tron_get_current_block) or for a transaction itself (tron_get_transaction). Boundary: our Tron node is a lite full node that keeps only a recent window (~6 days). An empty result means 'outside our window', NOT 'the block does not exist'. Returns: found, number, block_id, parent_hash, timestamp_ms, tx_count, tx_by_type, producer_address, tx_ids, retention_window.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
tron_get_chain_economicsTRON chain economics straight off our node: energy price (sun per energy unit), transaction fee, account creation fee, witness pay per block, total energy and bandwidth limits, mai…No findings
Why it is in this group
- The name "tron_get_chain_economics" says "get": a word for reading.
Description, as the server wrote it TRON chain economics straight off our node: energy price (sun per energy unit), transaction fee, account creation fee, witness pay per block, total energy and bandwidth limits, maintenance interval and the next maintenance time, unfreeze delay. When to use: working out what a transaction will actually cost in TRX, or how TRON's resource market is currently priced. Do not use: for Bitcoin fees (btc_get_fee_rates) or Monero fees (xmr_get_fee_rates). Returns: energy_fee_sun_per_unit, transaction_fee_sun, create_account_fee_trx, witness_pay_per_block_trx, maintenance_interval_s, next_maintenance_ms, unfreeze_delay_days, latest_energy_price.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
tron_get_contractTRON contract metadata: name, creator, whether its ABI is published on chain, the function list, code hash and whether it looks like a TRC-20.No findings
Why it is in this group
- The name "tron_get_contract" says "get": a word for reading.
Description, as the server wrote it TRON contract metadata: name, creator, whether its ABI is published on chain, the function list, code hash and whether it looks like a TRC-20. When to use: before calling a contract, or to tell an unverified contract from a published one. Do not use: for risk/backdoor analysis (that is tron_check_address_risk). Returns: found, address, name, creator, has_abi, abi_entry_count, is_trc20, functions, code_hash.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
tron_get_current_blockThe current (tip) TRON block: number, id, parent, timestamp, transaction count and a breakdown by contract type, plus the producing witness.No findings
Why it is in this group
- The name "tron_get_current_block" says "get": a word for reading.
Description, as the server wrote it The current (tip) TRON block: number, id, parent, timestamp, transaction count and a breakdown by contract type, plus the producing witness. When to use: how busy TRON is right now, what is in the block being produced, who produced it. Do not use: to fetch an older block - a lite full node serves the tip only, historical blocks are closed. Returns: number, block_id, parent_hash, timestamp_ms, age_s, tx_count, tx_by_type, producer_address.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
tron_get_node_statusTRON node state from our own java-tron full node: tip height, finalized (solidity) height and how far solidity lags, peers, client version, transactions in the tip block.No findings
Why it is in this group
- The name "tron_get_node_status" says "get": a word for reading.
Description, as the server wrote it TRON node state from our own java-tron full node: tip height, finalized (solidity) height and how far solidity lags, peers, client version, transactions in the tip block. When to use: is the TRON node we operate synced and healthy, and how far behind is the finalized state. Do not use: for historical blocks or transactions - this is a lite full node and those APIs are closed. Returns: height, solidity_height, solidity_lag_blocks, age_s, tx_in_tip_block, peer_count, client_version.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
tron_get_transactionOne Tron transaction by txid: success or reverted, energy used, the call it made, and - this is the important part - any TRC-20 transfers decoded from the receipt logs (token, from…No findings
Why it is in this group
- The name "tron_get_transaction" says "get": a word for reading.
Description, as the server wrote it One Tron transaction by txid: success or reverted, energy used, the call it made, and - this is the important part - any TRC-20 transfers decoded from the receipt logs (token, from, to, amount). When to use: did this USDT payment really land, for how much, from whom, and is it finalized. Do not use: for address risk scoring (tron_check_address_risk) or for blocks (tron_get_block). Boundary: our node is a lite full node with a recent window (~6 days); an empty result means 'outside our window', NOT 'the payment did not arrive' - fall back to an indexer before saying a payment is missing. Returns: found, block_number, status, contract_type, owner/to/contract_address, amount_trx, trc20_transfers[], energy_used, confirmations, finalized, retention_window.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
tron_list_proposalsTron governance proposals: id, proposer, state, approvals, expiry and the parameters they would change.No findings
Why it is in this group
- The name "tron_list_proposals" says "list": a word for reading.
Description, as the server wrote it Tron governance proposals: id, proposer, state, approvals, expiry and the parameters they would change. When to use: governance or staking questions, or checking whether a chain-parameter change is pending. Do not use: for the current parameter values (tron_get_chain_economics) or the witness list (tron_list_witnesses). Returns: total_proposals, by_state{}, top_by_approvals[] with proposal_id, proposer, approvals, state, parameters{}.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
tron_list_witnessesTRON super representatives and candidates: who is producing blocks, how many they produced, how many they missed, votes and websites - read from our own node.No findings
Why it is in this group
- The name "tron_list_witnesses" says "list": a word for reading.
Description, as the server wrote it TRON super representatives and candidates: who is producing blocks, how many they produced, how many they missed, votes and websites - read from our own node. When to use: governance or staking questions about TRON, or checking the health of block production. Do not use: for account balances (tron_get_account). Returns: registered_witnesses, active_block_producers, top_by_blocks_produced[] with address, url, blocks_produced, blocks_missed, votes, in_active_set.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
tron_read_contractRead-only (constant) call against any TRON contract, executed by our own node.No findings
Why it is in this group
- The name "tron_read_contract" says "read": a word for reading.
Description, as the server wrote it Read-only (constant) call against any TRON contract, executed by our own node. TRC-20 helpers balanceOf / allowance / decimals / symbol / name / totalSupply are built in; any other function can be called with a raw selector plus ABI-encoded parameter. No state is changed and no key is involved. When to use: an agent needs an on-chain value without trusting a third-party API - USDT balance of an address, token decimals, an allowance, or any view function. Do not use: to send a transaction (this never writes), or to look up a historical balance. Returns: ok, contract, function, output_type, value (decoded), value_human for 6-decimal tokens, raw, energy_used.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
web_feedRead an RSS or Atom feed and return its latest items.No findings
Why it is in this group
- The description's first verb is "read": a word for reading.
Description, as the server wrote it Read an RSS or Atom feed and return its latest items. When to use: the user wants the latest posts/news from a site that publishes a feed, or you found a feed URL and want headlines plus links. Do not use: to read article text (use web_fetch) or to discover a site's URLs (use web_map). Returns: {ok, url, final_url, title, count, items:[{title, link, published, summary}], cached, took_ms, _metering}. Summary is HTML-stripped and capped at 500 characters. Metered: shares the web free bucket (100 calls/day per IP shared by all ten web tools), then 1 credit per call over x402 - there is no API key.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
web_fetchFetch one public web page and return its readable text as clean markdown or plain text, with navigation, scripts, headers and footers stripped.No findings
Why it is in this group
- The name "web_fetch" says "fetch": a word for reading.
Description, as the server wrote it Fetch one public web page and return its readable text as clean markdown or plain text, with navigation, scripts, headers and footers stripped. When to use: you have a specific URL (from web_search or the user) and need what the page actually says - 'read this article', 'summarise this docs page', 'turn this URL into markdown'. Do not use: to crawl or mirror a site, to fetch a page behind a login or paywall, to read API/RPC endpoints, or for book text inside CyberLibrary (use cyberlibrary_get_chapter). Returns: {url, final_url, status, title, content, chars, truncated, fetched_at, source (direct|provider), cached, took_ms, _metering}. The response is capped at 12000 characters per call; raise max_chars (up to 20000) when you need more. Reads one public URL only, respects robots.txt, and does not bypass login or paywall. Direct fetch is tried first; pages blocked from this node are fetched through a provider and marked source=provider. Metered: all ten web tools share 100 free calls/day per IP (separate from the risk/library allowance), then 1 credit per call over x402 - there is no API key; the 402 answer carries accepts[].
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
web_fetch_batchFetch up to 5 public URLs in one call and return each page's title, engine and a short snippet (first ~1200 characters), so an agent can triage several links quickly.No findings
Why it is in this group
- The name "web_fetch_batch" says "fetch": a word for reading.
Description, as the server wrote it Fetch up to 5 public URLs in one call and return each page's title, engine and a short snippet (first ~1200 characters), so an agent can triage several links quickly. When to use: search returned several candidate pages and you want a first pass over all of them; then call web_fetch on the ones worth reading in full. Do not use: when you need the complete text of a page (use web_fetch), or to crawl a site (use web_map). Returns: {ok, count, ok_count, results:[{url, ok, final_url, status, title, engine, chars, snippet, error?}], took_ms, _metering}. Partial failures do not fail the whole call. Metered: counts one call per URL against the shared web free bucket (50 URLs/day per IP together with web_fetch), then 1 credit per URL over x402 - max 5 URLs per call, no API key.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
web_searchSearch the live web and get ranked results with title, URL, snippet and published date.No findings
Why it is in this group
- The name "web_search" says "search": a word for reading.
Description, as the server wrote it Search the live web and get ranked results with title, URL, snippet and published date. When to use: an agent needs current facts, news or links that are not on chain - 'what is the BTC fee market saying today', 'recent Zcash governance proposals', 'find the docs page for X'. Use it before web_fetch, then fetch the one URL that looks authoritative. Do not use: for on-chain facts (use the BTC/ETH/XMR/ZEC/TRON tools) or for content inside a CyberLibrary book (use cyberlibrary_fulltext_search). Provider: self-hosted SearXNG (Bing/Baidu/360/Sogou/Yandex/Marginalia) first, then Serper, Tavily and cn.bing RSS as automatic fallbacks. Returns: {query, count, results:[{title,url,snippet,published}], provider (serper|tavily|bing_rss), cached, took_ms, _metering}. Results may be cached for up to 10 minutes; a cached result still counts as one call against the free allowance. Metered: all ten web tools share 100 free calls/day per IP (separate from the risk/library allowance), then 1 credit per call over x402 - there is no API key; the 402 answer carries accepts[]. max count is 10.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
xmr_get_blockOne Monero block header, by height or by block hash.No findings
Why it is in this group
- The name "xmr_get_block" says "get": a word for reading.
Description, as the server wrote it One Monero block header, by height or by block hash. When to use: confirming which block a transaction landed in, or inspecting reward, difficulty and weight of a block. Do not use: to list recent blocks (xmr_get_recent_blocks) or to look up a transaction (xmr_get_transaction). Returns: height, hash, prev_hash, timestamp, age_s, tx_count, reward_xmr, difficulty, block_weight, block_size_bytes, major_version / minor_version, orphan.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
xmr_get_fee_ratesMonero fee estimate per kB, split into ascending priority tiers, read from our own monerod.No findings
Why it is in this group
- The name "xmr_get_fee_rates" says "get": a word for reading.
Description, as the server wrote it Monero fee estimate per kB, split into ascending priority tiers, read from our own monerod. When to use: pricing an XMR transaction, or deciding whether to pay the baseline fee to land in the next block. Do not use: for Bitcoin fees (btc_get_fee_rates) or for mempool depth (xmr_get_mempool_state). Returns: baseline_fee_per_kb_xmr plus priority_tiers[] each with {priority, fee_per_kb_atomic, fee_per_kb_xmr}. Monero has no EIP-1559 style fee market: blocks are never full, so the baseline tier normally confirms next block.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
xmr_get_mempool_stateMonero mempool: pending transaction count, total bytes and fees, age of the oldest pending tx, double-spend/failing counts.No findings
Why it is in this group
- The name "xmr_get_mempool_state" says "get": a word for reading.
Description, as the server wrote it Monero mempool: pending transaction count, total bytes and fees, age of the oldest pending tx, double-spend/failing counts. When to use: is the network quiet or piling up, and roughly how long a new transaction waits. Do not use: for fees (xmr_get_fee_rates) or for a specific payment (xmr_get_transaction). Returns: pending_txs, bytes_total, fee_total_xmr, oldest_pending_age_s, double_spends, failing, tx_size_median_bytes, congestion verdict.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
xmr_get_network_statsMonero network-wide state: network hashrate, difficulty, emission and fees over the last 720 blocks, protocol version and the next hard fork.No findings
Why it is in this group
- The name "xmr_get_network_stats" says "get": a word for reading.
Description, as the server wrote it Monero network-wide state: network hashrate, difficulty, emission and fees over the last 720 blocks, protocol version and the next hard fork. When to use: macro questions about the Monero network - how much hashrate secures it, what is being issued, and which protocol version is active. Do not use: for our node's own health (xmr_get_node_status). Returns: height, network_hashrate_hs, difficulty, block_size/weight median and limit, emission_last_720_blocks_xmr, fees_last_720_blocks_xmr, hard_fork_version, next_fork_earliest_height, client_version.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
xmr_get_node_statusMonero node state: height vs target, sync flag, difficulty, txpool size, database size, monerod version and peer counts.No findings
Why it is in this group
- The name "xmr_get_node_status" says "get": a word for reading.
Description, as the server wrote it Monero node state: height vs target, sync flag, difficulty, txpool size, database size, monerod version and peer counts. When to use: whether the XMR node is synced and healthy, or how big its chain and txpool are. Do not use: for fees call xmr_get_fee_rates; for one transaction call xmr_get_transaction; for network-wide numbers call xmr_get_network_stats. RobotBase does not index Monero wallets or ring signatures. Returns: height, target_height, synced, status, network, difficulty, txpool_txs, database_size_gb, block_size_limit, version, incoming_connections / outgoing_connections.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
xmr_get_output_distributionMonero output distribution: how many spendable outputs fall into each ring-size bucket, read from our own monerod.No findings
Why it is in this group
- The name "xmr_get_output_distribution" says "get": a word for reading.
Description, as the server wrote it Monero output distribution: how many spendable outputs fall into each ring-size bucket, read from our own monerod. This is the anonymity-set side of Monero that free explorers rarely expose. When to use: reasoning about Monero privacy - how large the spendable-output set is at a given height. Do not use: to guess a 'privacy score' (we return raw counts only). Boundary: monerod's distribution data lags the chain tip by roughly 5,000 blocks, so the default range is 5,010 to 5,000 blocks back and the response states the real height and the lag. Returns: tip_height, queried_range, data_lags_tip_by_blocks, start_height, outputs_before_start, distribution[] with the raw per-bucket counts.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
xmr_get_recent_blocksThe most recent Monero blocks with the observed block interval.No findings
Why it is in this group
- The name "xmr_get_recent_blocks" says "get": a word for reading.
Description, as the server wrote it The most recent Monero blocks with the observed block interval. When to use: checking that XMR is producing blocks normally and at roughly the 120s target. Do not use: for one specific block (xmr_get_block). Returns: tip_height, avg_block_interval_s, target_interval_s, blocks[] {height, hash, timestamp, tx_count, reward_xmr, difficulty, weight}.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
xmr_get_transactionLook up one Monero transaction by txid: is it mined, in which block, how many confirmations, its size, output count and ring size.No findings
Why it is in this group
- The name "xmr_get_transaction" says "get": a word for reading.
Description, as the server wrote it Look up one Monero transaction by txid: is it mined, in which block, how many confirmations, its size, output count and ring size. When to use: did this XMR transfer get into a block, and how deep is it now. Do not use: to learn the amount or the sender/recipient - Monero hides those by design and no third party can recover them; only the recipient (or a holder of the tx key) can prove a payment. Returns: found, confirmed, in_mempool, block_height, block_timestamp, confirmations, double_spend_seen, size_bytes, inputs, outputs, ring_size_per_input, tx_version, unlock_time, and explicitly the list of fields not disclosed by the protocol.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
zec_get_network_statsZcash network and node state: mempool size and bytes, node version, difficulty, network hashrate, chain progress and disk, block subsidy, and the funding streams (including Zcash C…No findings
Why it is in this group
- The name "zec_get_network_stats" says "get": a word for reading.
Description, as the server wrote it Zcash network and node state: mempool size and bytes, node version, difficulty, network hashrate, chain progress and disk, block subsidy, and the funding streams (including Zcash Community Grants). When to use: macro questions about Zcash - how much hashrate secures it, whether our node is caught up, what the block subsidy and funding allocations currently are. Do not use: for shielded-pool supplies (zec_get_pool_status) or our node's own sync state (zec_get_pool_status / chain_status). Returns: mempool, network, difficulty, network_hashrate_hs, blockchain, height, verification_progress, size_on_disk_gb, block_reward_zec, funding_streams[], lockbox_streams[].
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
zec_get_pool_statusZcash chain state plus the distribution of all six value pools, in one call.No findings
Why it is in this group
- The name "zec_get_pool_status" says "get": a word for reading.
Description, as the server wrote it Zcash chain state plus the distribution of all six value pools, in one call. When to use: how much ZEC sits in each shielded pool, the shielded share of supply, and whether the ZEC node is caught up. Do not use: we do not index Zcash transactions or wallets; for node peers and disk usage call chain_status. Returns: blocks/headers/estimated_height/chain_supply/difficulty/size_on_disk_gb, node_value_pools, pools[] with {pool, balance, share_of_supply_pct, delta_1h, delta_24h}, shielded_total, shielded_pct.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
zec_get_recent_blocksThe most recent Zcash blocks.No findings
Why it is in this group
- The name "zec_get_recent_blocks" says "get": a word for reading.
Description, as the server wrote it The most recent Zcash blocks. When to use: checking whether ZEC is producing blocks normally and at what interval. Do not use: for shielded-pool supply (that is zec_get_pool_status). Returns: for the last N blocks (default 5, max 20): height, hash, time, difficulty.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
zec_get_transactionZcash transaction check by txid from our own Zebra node: confirmations, block height and time, whether it is in the active chain, size, and how much of it is transparent versus shi…No findings
Why it is in this group
- The name "zec_get_transaction" says "get": a word for reading.
Description, as the server wrote it Zcash transaction check by txid from our own Zebra node: confirmations, block height and time, whether it is in the active chain, size, and how much of it is transparent versus shielded. When to use: did this ZEC payment land, how deep is it, and does it involve shielded inputs/outputs. Do not use: to learn shielded amounts or parties - shielded values are hidden by the protocol and only a viewing key held by a party to the transaction can read them; this tool reports the shielded *shape* (spend/output/action counts) and says so explicitly rather than guessing. Returns: found, confirmations, block_height, block_hash, block_time, in_active_chain, size_bytes, transparent{inputs, outputs, total_output_zec}, shielded{sapling_spends, sapling_outputs, orchard_actions}, has_shielded_component, not_disclosed_by_protocol[].
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
zec_get_treestateZcash shielded commitment-tree state: the Sapling, Orchard and Ironwood anchor roots at a given block.No findings
Why it is in this group
- The name "zec_get_treestate" says "get": a word for reading.
Description, as the server wrote it Zcash shielded commitment-tree state: the Sapling, Orchard and Ironwood anchor roots at a given block. When to use: shielded-pool depth - how the shielded sets advance over time, or the anchor a wallet or prover needs to recognise. Do not use: for pool supplies (zec_get_pool_status) or a transaction (zec_get_transaction). Returns: block_hash, height, time, pools{sapling, orchard, ironwood}{final_root, final_state}.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
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.27.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http robotbase https://robotbase.cc/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__robotbase__web_search",
"mcp__robotbase__web_fetch",
"mcp__robotbase__web_fetch_batch",
"mcp__robotbase__web_feed",
"mcp__robotbase__list_chains",
"mcp__robotbase__chain_status",
"mcp__robotbase__btc_get_mempool_state",
"mcp__robotbase__btc_get_fee_rates",
"mcp__robotbase__btc_get_transaction",
"mcp__robotbase__btc_get_block",
"mcp__robotbase__btc_get_address",
"mcp__robotbase__btc_get_network_stats",
"mcp__robotbase__eth_get_block",
"mcp__robotbase__eth_read_contract",
"mcp__robotbase__eth_get_logs",
"mcp__robotbase__eth_get_account",
"mcp__robotbase__eth_get_fee_rates",
"mcp__robotbase__tron_get_current_block",
"mcp__robotbase__tron_get_transaction",
"mcp__robotbase__tron_get_account",
"mcp__robotbase__tron_read_contract",
"mcp__robotbase__tron_get_block",
"mcp__robotbase__tron_get_node_status",
"mcp__robotbase__tron_get_contract",
"mcp__robotbase__tron_get_chain_economics",
"mcp__robotbase__tron_list_witnesses",
"mcp__robotbase__tron_list_proposals",
"mcp__robotbase__xmr_get_recent_blocks",
"mcp__robotbase__xmr_get_block",
"mcp__robotbase__xmr_get_node_status",
"mcp__robotbase__xmr_get_fee_rates",
"mcp__robotbase__xmr_get_mempool_state",
"mcp__robotbase__xmr_get_transaction",
"mcp__robotbase__xmr_get_network_stats",
"mcp__robotbase__xmr_get_output_distribution",
"mcp__robotbase__zec_get_recent_blocks",
"mcp__robotbase__zec_get_pool_status",
"mcp__robotbase__zec_get_transaction",
"mcp__robotbase__zec_get_treestate",
"mcp__robotbase__zec_get_network_stats",
"mcp__robotbase__cyberlibrary_fulltext_search",
"mcp__robotbase__cyberlibrary_search_books",
"mcp__robotbase__cyberlibrary_search_passages",
"mcp__robotbase__cyberlibrary_semantic_search",
"mcp__robotbase__cyberlibrary_rag_context",
"mcp__robotbase__cyberlibrary_get_chapter",
"mcp__robotbase__cyberlibrary_get_markdown",
"mcp__robotbase__cyberlibrary_get_toc",
"mcp__robotbase__cyberlibrary_get_chunks",
"mcp__robotbase__cyberlibrary_search"
],
"ask": [
"mcp__robotbase__web_screenshot",
"mcp__robotbase__web_map",
"mcp__robotbase__web_metadata",
"mcp__robotbase__web_crawl",
"mcp__robotbase__web_extract",
"mcp__robotbase__web_act",
"mcp__robotbase__robotbase_services",
"mcp__robotbase__robotbase_capabilities",
"mcp__robotbase__broadcast_raw_transaction",
"mcp__robotbase__eth_get_transaction",
"mcp__robotbase__tron_check_address_risk",
"mcp__robotbase__tron_verify_usdt_transfer",
"mcp__robotbase__xmr_verify_payment",
"mcp__robotbase__xmr_merchant_report",
"mcp__robotbase__xmr_wallet_balance",
"mcp__robotbase__xmr_mining_profitability",
"mcp__robotbase__cyberlibrary_book_meta",
"mcp__robotbase__cyberlibrary_catalog_index",
"mcp__robotbase__cyberlibrary_cite",
"mcp__robotbase__cyberlibrary_verify_quote",
"mcp__robotbase__cyberlibrary_language_shard",
"mcp__robotbase__cyberlibrary_service_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 robotbase. Review it before you use it.
