Koskamo

RobotBase Web3 MCP

A read-only MCP server providing 65 tools for Web3 agents, including on-chain verification and risk analysis for Bitcoin, Ethereum, Monero, Zcash, and Tron via self-hosted nodes. It also includes 17 web tools for search, fetching, and crawling public pages, with metered access via x402 USDC credits after free daily allowances.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

RobotBase Web3 MCP logo, by RobotBaseCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by RobotBase
MCP endpoint (Streamable HTTP)
https://web3.robotbase.cc/mcp
Vendor documentation

What you can do with it

  • Verify Bitcoin, Ethereum, Monero, Zcash, and Tron transactions and block states
  • Check on-chain risk and network statistics for five supported blockchains
  • Search the live web and fetch public pages as clean Markdown
  • Access prediction market odds and crypto trending data

Source and maintenance

Community listingRegistry 0.32.3
Maintenance checked

Protocol and capabilities

Server
robotbase-mcp-web3 0.32.6
MCP protocol
2025-06-18
Tools
65 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

RobotBase Web3 is the on-chain verification, risk and market-intelligence surface for Web3 agents. BTC/ETH/XMR/ZEC/TRON are read from nodes we run ourselves. Free verification tools, 2 metered risk tools (5 calls/day/IP), plus prediction_market_odds and crypto_trending for market context. All 17 web tools are included as the common lead magnet. Every tool is a read-only query: none of them sign, trade, move funds or hold keys. Payment is x402 USDC on Base or Solana; there is no API key, no account and no subscription. Free web calls are counted per edition (100/day/IP), then 1-3 credits per call; every metered answer carries its own _metering block.

Tools

65 advertised

web_search — Web Search
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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

web_search input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "lang": {
      "type": "string",
      "description": "Optional language preference, e.g. zh-cn or en."
    },
    "site": {
      "type": "string",
      "description": "Optional: restrict results to one domain, e.g. github.com."
    },
    "count": {
      "type": "integer",
      "description": "Number of results to return, 1-10. Default 5."
    },
    "query": {
      "type": "string",
      "description": "Search query (1-200 characters)."
    },
    "freshness": {
      "enum": [
        "day",
        "week",
        "month",
        "year"
      ],
      "type": "string",
      "description": "Optional freshness filter."
    }
  },
  "additionalProperties": false
}
web_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
web_fetch — Web Fetch
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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 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[].

web_fetch input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "ocr": {
      "type": "boolean",
      "description": "Force OCR on scanned PDFs/images (auto-detected by default; set false to skip)."
    },
    "url": {
      "type": "string",
      "description": "The http(s) URL to read (max 2048 chars)."
    },
    "format": {
      "enum": [
        "markdown",
        "text"
      ],
      "type": "string",
      "description": "Output format. Default markdown."
    },
    "max_chars": {
      "type": "integer",
      "description": "Truncate the returned content to this many characters (2000-20000). Default 8000."
    }
  },
  "additionalProperties": false
}
web_fetch annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
web_screenshot — Web Screenshot
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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 twelve web tools), then 2 credits per call over x402 - there is no API key; the 402 answer carries accepts[].

web_screenshot input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "The http(s) URL to capture (max 2048 chars)."
    },
    "width": {
      "type": "integer",
      "description": "Viewport width 320-1920. Default 1280."
    },
    "height": {
      "type": "integer",
      "description": "Viewport height 240-1200. Default 800."
    },
    "full_page": {
      "type": "boolean",
      "description": "Capture the whole page instead of the viewport. Default false."
    }
  },
  "additionalProperties": false
}
web_screenshot annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
web_map — Web Map
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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 web tools), then 1 credit per call over x402 - there is no API key; the 402 answer carries accepts[].

web_map input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Site root or page URL (max 2048 chars)."
    },
    "limit": {
      "type": "integer",
      "description": "Max URLs to return, 1-50. Default 50."
    }
  },
  "additionalProperties": false
}
web_map annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
web_fetch_batch — Web Fetch Batch
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

web_fetch_batch input schema
{
  "type": "object",
  "required": [
    "urls"
  ],
  "properties": {
    "urls": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 5,
      "minItems": 1,
      "description": "1-5 http(s) URLs to fetch in one call."
    },
    "format": {
      "enum": [
        "markdown",
        "text"
      ],
      "type": "string",
      "description": "Snippet format. Default markdown."
    },
    "max_chars": {
      "type": "integer",
      "description": "Snippet length per page, 200-2000. Default 1200."
    }
  },
  "additionalProperties": false
}
web_fetch_batch annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
web_feed — Web Feed
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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 web tools), then 1 credit per call over x402 - there is no API key.

web_feed input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "RSS/Atom feed URL (max 2048 chars)."
    },
    "limit": {
      "type": "integer",
      "description": "Max items to return, 1-20. Default 10."
    }
  },
  "additionalProperties": false
}
web_feed annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
web_metadata — Web Metadata
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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 web tools), then 1 credit per call over x402 - there is no API key.

web_metadata input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "The http(s) page URL (max 2048 chars)."
    }
  },
  "additionalProperties": false
}
web_metadata annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
web_crawl — Web Crawl
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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 web tools), then 3 credits per call over x402 - no API key.

web_crawl input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Start URL (same host is crawled)."
    },
    "depth": {
      "type": "integer",
      "description": "Link depth 1-2. Default 2."
    },
    "max_chars": {
      "type": "integer",
      "description": "Per-page content cap 200-4000. Default 1000."
    },
    "max_pages": {
      "type": "integer",
      "description": "Max pages 1-20. Default 20."
    }
  },
  "additionalProperties": false
}
web_crawl annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
web_extract — Web Extract
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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 web tools), then 1 credit per call over x402.

web_extract input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "The http(s) page URL."
    },
    "include_links": {
      "type": "boolean",
      "description": "Also return same-host links (max 100). Default false."
    }
  },
  "additionalProperties": false
}
web_extract annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
web_act — Web Act
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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 web tools), then 3 credits per call over x402.

web_act input schema
{
  "type": "object",
  "required": [
    "url",
    "actions"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "The http(s) page URL."
    },
    "actions": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "maxItems": 10,
      "minItems": 1,
      "description": "Actions: {type: click|type|press|scroll|wait_for|wait_ms, ...}"
    },
    "full_page": {
      "type": "boolean",
      "description": "Full-page screenshot. Default false."
    },
    "max_chars": {
      "type": "integer",
      "description": "Text cap 1000-20000. Default 20000."
    },
    "screenshot": {
      "type": "boolean",
      "description": "Return a JPEG screenshot. Default false."
    },
    "include_xhr": {
      "type": "boolean",
      "description": "Return JSON XHR responses captured while acting. Default false."
    }
  },
  "additionalProperties": false
}
web_act annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
web_crawl_async — Web Crawl Async
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Submit a same-host crawl as an asynchronous job and return a job_id immediately. When to use: you need more than a couple of pages and cannot hold a long HTTP request; submit here, then poll web_crawl_job until status is done, failed or cancelled. Do not use: for one page (web_fetch) or when you need the result in this call (web_crawl). Returns: {ok, job_id, status, url, depth, max_pages, max_chars, idempotent, poll_with}. Pass idempotency_key to retry safely (24h window returns the same job). Metered: shares the web free bucket (100 calls/day per IP), then 3 credits per submit over x402.

web_crawl_async input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Start URL (same host is crawled)."
    },
    "depth": {
      "type": "integer",
      "description": "Link depth 1-2. Default 2."
    },
    "max_chars": {
      "type": "integer",
      "description": "Per-page content cap 200-4000. Default 1000."
    },
    "max_pages": {
      "type": "integer",
      "description": "Max pages 1-20. Default 20."
    },
    "idempotency_key": {
      "type": "string",
      "description": "Optional; retries within 24h return the same job."
    }
  },
  "additionalProperties": false
}
web_crawl_async annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
web_crawl_job — Web Crawl Job
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Check or cancel an asynchronous crawl job created by web_crawl_async. When to use: after web_crawl_async, poll with action=status until status is done/failed/cancelled; use action=cancel to stop a running job. Do not use: to start a crawl (web_crawl_async) or for a quick one-page read (web_fetch). Returns status: {ok, job_id, status: queued|running|done|failed|cancelled, progress:{pages_done,max_pages}, created_at, updated_at, result?, error?}. Free (not metered); rate-limited. Done result uses the same shape as web_crawl.

web_crawl_job input schema
{
  "type": "object",
  "required": [
    "job_id"
  ],
  "properties": {
    "action": {
      "enum": [
        "status",
        "cancel"
      ],
      "type": "string",
      "description": "Poll status (default) or cancel the job."
    },
    "job_id": {
      "type": "string",
      "description": "job_id returned by web_crawl_async."
    }
  },
  "additionalProperties": false
}
web_crawl_job annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
web_extract_schema — Web Extract Schema
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Extract a page's structured data into a named schema's common fields (no LLM): article, product, event, faq, recipe, course, organization, local_business, breadcrumb, dataset or job_posting. When to use: you need fields (title/author/date, price/currency/availability, event dates, FAQ Q&A, recipe ingredients, org address) rather than raw markdown or tables. Do not use: to get every JSON-LD block verbatim (web_metadata/web_extract) or to read text (web_fetch). Returns: {ok, url, final_url, schema, requested_schema, detected_types, matched, fields:{...}, sources:[jsonld|meta], jsonld_count, tables_count, took_ms, cached, _metering}. If no matching JSON-LD exists it falls back to Open Graph/meta fields and matched=false. Metered: shares the web free bucket (100 calls/day per IP), then 1 credit per call over x402.

web_extract_schema input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "The http(s) page URL."
    },
    "schema": {
      "enum": [
        "auto",
        "article",
        "product",
        "event",
        "faq",
        "recipe",
        "course",
        "organization",
        "local_business",
        "breadcrumb",
        "dataset",
        "job_posting"
      ],
      "type": "string",
      "description": "Target schema; auto detects from JSON-LD types. Default auto."
    }
  },
  "additionalProperties": false
}
web_extract_schema annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
web_diff — Web Diff
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Fetch a page now and compare it with the previous snapshot of the same URL, returning whether it changed and a unified diff (no LLM). When to use: monitoring a page for updates - prices, docs, policy pages, SEO titles/meta; first call stores the baseline, later calls return added/removed lines. Do not use: for one-off reading (web_fetch) or structured fields (web_extract_schema). Returns: {ok, url, baseline, changed, diff, added_lines, removed_lines, previous_ts, current_ts, title, hash, chars, fetched_cached, took_ms, _metering}. fresh=true (default) adds a cache-busting query to bypass the 6h page cache; pass fresh=false to compare cached content. Snapshots are kept per URL in SQLite (latest only). Metered: shares the web free bucket (100 calls/day per IP), then 1 credit per call over x402.

web_diff input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "The http(s) page URL."
    },
    "fresh": {
      "type": "boolean",
      "description": "Bypass the page cache with a cache-busting query. Default true."
    },
    "max_chars": {
      "type": "integer",
      "description": "Compare at most this many chars (500-12000). Default 4000."
    }
  },
  "additionalProperties": false
}
web_diff annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
web_monitor_set — Web Monitor Set
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Create a scheduled change monitor for one public URL: the server re-fetches the page on an interval, stores a new snapshot and records a diff event whenever the readable text changes. When to use: the user wants to be told when a page changes (price, docs, policy page, job post, release notes) and cannot poll it themselves; also for handing off 'watch this for me'. Do not use: for a single comparison right now (web_diff) or when you only need the page today (web_fetch). Returns: {ok, monitor_id, url, status:active, interval_minutes, next_check_ts, webhook_enabled, webhook_secret?, webhook_signature?, hint}. The first check runs within ~60s to store the baseline; later changes show up in web_monitor_list.recent_events and, if requested, are POSTed to webhook_url. Webhook: https only, no redirects, 8s timeout, up to 2 retries (30s/120s); body JSON {monitor_id,url,ts,changed,added_lines,removed_lines,title,diff,event_id}; verify header 'X-RobotBase-Signature: sha256=<hex HMAC-SHA256 of the raw body using webhook_secret>'. Limits: 15-1440 minutes; max 5 monitors per IP; monitors expire after 7 days. Metered: 1 credit (shares the web free bucket of 100 calls/day per IP).

web_monitor_set input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "The http(s) URL to watch (max 2048 chars)."
    },
    "webhook_url": {
      "type": "string",
      "description": "Optional https endpoint notified on each change (HMAC-signed)."
    },
    "interval_minutes": {
      "type": "integer",
      "description": "Check interval 15-1440 minutes. Default 60."
    }
  },
  "additionalProperties": false
}
web_monitor_set annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
web_monitor_list — Web Monitor List
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

List the scheduled change monitors owned by the calling IP, with latest/next check time, last title or error, and the 5 most recent change events. When to use: after web_monitor_set, poll this instead of re-fetching the page; or to show the user what is currently being watched. Do not use: to create a monitor (web_monitor_set) or to compare one page now (web_diff). Returns: {ok, count, monitors:[{monitor_id,url,interval_minutes,active,created_ts,last_check_ts,next_check_ts,last_title,last_error,webhook_enabled,events_total,recent_events}], note}. Pass monitor_id to get that one monitor plus last_event.diff (the most recent detected change, up to 4000 chars) so you can read what changed without a webhook. Free (not metered); rate-limited to 20 calls/min per IP.

web_monitor_list input schema
{
  "type": "object",
  "properties": {
    "monitor_id": {
      "type": "string",
      "description": "Optional: return this monitor (owned by the calling IP) plus its most recent change diff."
    },
    "include_diff": {
      "type": "boolean",
      "description": "With monitor_id, include the latest unified diff. Default true."
    }
  },
  "additionalProperties": false
}
web_monitor_list annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
web_monitor_delete — Web Monitor Delete
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Delete one scheduled change monitor owned by the calling IP (its event history is removed too). When to use: the user no longer needs to watch a page, or the per-IP monitor limit was reached. Do not use: to pause a monitor temporarily - there is no pause; delete and re-create. Returns: {ok, deleted, monitor_id, note}; unknown or foreign ids return {ok:false,error:'monitor_not_found'} and delete nothing. Free (not metered); rate-limited to 20 calls/min per IP.

web_monitor_delete input schema
{
  "type": "object",
  "required": [
    "monitor_id"
  ],
  "properties": {
    "monitor_id": {
      "type": "string",
      "description": "monitor_id returned by web_monitor_set."
    }
  },
  "additionalProperties": false
}
web_monitor_delete annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
prediction_market_odds — Prediction Market Odds
Advertised by the server during the last successful anonymous check.
Advertised read-only

Live implied probabilities from prediction markets (Polymarket primary, Manifold fallback). When to use: 'what does the market think will happen', event odds, election/crypto/macro probabilities. Do not use: for spot prices (crypto_trending) or historical search interest (attention_trend). Returns: {query, count, markets:[{question, outcomes:[{outcome, implied_probability_pct}], volume_usd, liquidity_usd, end_date, url, source}], errors}.

prediction_market_odds input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 5,
      "maximum": 10,
      "minimum": 1
    },
    "query": {
      "type": "string",
      "description": "Optional event/topic search, e.g. 'bitcoin ETF 2026'."
    }
  },
  "additionalProperties": false
}
prediction_market_odds annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
crypto_trending — Crypto Trending
Advertised by the server during the last successful anonymous check.
Advertised read-only

Crypto attention and market context: CoinGecko trending coins, top markets, DeFi TVL and Fear & Greed. When to use: what is trending in crypto, which tokens are moving, risk appetite, TVL leaders. Do not use: for on-chain settlement verification (use btc/eth/xmr/zec/tron tools) or price charts. Returns: {trending[], top_markets[], fear_greed, defi_tvl_top[], errors}.

crypto_trending input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 20,
      "minimum": 1
    },
    "query": {
      "type": "string",
      "description": "Optional token/theme hint (currently informational)."
    }
  },
  "additionalProperties": false
}
crypto_trending annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_chains — List Chains
Advertised by the server during the last successful anonymous check.
Advertised read-only

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

list_chains input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
list_chains annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
chain_status — Chain Status
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

chain_status input schema
{
  "type": "object",
  "required": [
    "chain"
  ],
  "properties": {
    "chain": {
      "enum": [
        "btc",
        "eth",
        "xmr",
        "zec",
        "tron"
      ],
      "type": "string",
      "description": "Chain id: btc / eth / xmr / zec / tron"
    }
  },
  "additionalProperties": false
}
chain_status annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
robotbase_services — Robotbase Services
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

robotbase_services input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
robotbase_services annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
robotbase_capabilities — Robotbase Capabilities
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

robotbase_capabilities input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
robotbase_capabilities annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
btc_get_mempool_state — Btc Get Mempool State
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

btc_get_mempool_state input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
btc_get_mempool_state annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
btc_get_fee_rates — Btc Get Fee Rates
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

btc_get_fee_rates input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
btc_get_fee_rates annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
btc_get_transaction — Btc Get Transaction
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

btc_get_transaction input schema
{
  "type": "object",
  "required": [
    "txid"
  ],
  "properties": {
    "txid": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{64}$",
      "description": "Bitcoin transaction hash (64 hex chars)"
    }
  },
  "additionalProperties": false
}
btc_get_transaction annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
btc_get_block — Btc Get Block
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

btc_get_block input schema
{
  "type": "object",
  "properties": {
    "height": {
      "type": "integer",
      "description": "Block height (optional)"
    },
    "blockhash": {
      "type": "string",
      "description": "Block hash (optional; use instead of height)"
    }
  },
  "additionalProperties": false
}
btc_get_block annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
btc_get_address — Btc Get Address
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

btc_get_address input schema
{
  "type": "object",
  "required": [
    "address"
  ],
  "properties": {
    "address": {
      "type": "string",
      "description": "Bitcoin mainnet address"
    }
  },
  "additionalProperties": false
}
btc_get_address annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
btc_get_network_stats — Btc Get Network Stats
Advertised by the server during the last successful anonymous check.
Advertised read-only

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{}.

btc_get_network_stats input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
btc_get_network_stats annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
broadcast_raw_transaction — Broadcast Raw Transaction
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

broadcast_raw_transaction input schema
{
  "type": "object",
  "required": [
    "chain",
    "signed_raw_tx_hex"
  ],
  "properties": {
    "chain": {
      "enum": [
        "btc"
      ],
      "type": "string"
    },
    "signed_raw_tx_hex": {
      "type": "string",
      "description": "Raw signed transaction hex"
    }
  },
  "additionalProperties": false
}
broadcast_raw_transaction annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
eth_get_block — Eth Get Block
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

eth_get_block input schema
{
  "type": "object",
  "properties": {
    "height": {
      "description": "Block number (integer or hex), or a tag like latest / finalized / safe"
    },
    "block_hash": {
      "type": "string",
      "description": "0x + 64 hex block hash; takes precedence"
    }
  },
  "additionalProperties": false
}
eth_get_block annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
eth_read_contract — Eth Read Contract
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

eth_read_contract input schema
{
  "type": "object",
  "required": [
    "contract",
    "function"
  ],
  "properties": {
    "argument": {
      "type": "string",
      "description": "Ethereum address argument (balanceOf / allowance)"
    },
    "contract": {
      "type": "string",
      "description": "0x + 40 hex contract address"
    },
    "function": {
      "type": "string",
      "description": "balanceOf | allowance | decimals | symbol | name | totalSupply, or a label for a raw selector"
    },
    "selector": {
      "type": "string",
      "description": "Explicit 4-byte selector hex for non-ERC-20 calls"
    },
    "argument2": {
      "type": "string",
      "description": "Second address argument (allowance)"
    },
    "parameter": {
      "type": "string",
      "description": "ABI-encoded parameter hex (with an explicit selector)"
    },
    "output_type": {
      "enum": [
        "uint256",
        "address",
        "string",
        "bool"
      ],
      "type": "string"
    }
  },
  "additionalProperties": false
}
eth_read_contract annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
eth_get_logs — Eth Get Logs
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

eth_get_logs input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 1000,
      "minimum": 1,
      "description": "Max logs to return (default 50)"
    },
    "topic0": {
      "type": "string",
      "description": "Optional event signature hash filter"
    },
    "address": {
      "type": "string",
      "description": "Optional contract address filter"
    },
    "to_block": {
      "description": "Integer or hex or tag; defaults to latest"
    },
    "from_block": {
      "description": "Integer or hex or tag; defaults to 50 blocks back"
    }
  },
  "additionalProperties": false
}
eth_get_logs annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
eth_get_transaction — Eth Get Transaction
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

eth_get_transaction input schema
{
  "type": "object",
  "required": [
    "txid"
  ],
  "properties": {
    "txid": {
      "type": "string",
      "description": "0x + 64 hex transaction hash"
    }
  },
  "additionalProperties": false
}
eth_get_transaction annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
eth_get_account — Eth Get Account
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

eth_get_account input schema
{
  "type": "object",
  "required": [
    "address"
  ],
  "properties": {
    "address": {
      "type": "string",
      "description": "0x + 40 hex address"
    }
  },
  "additionalProperties": false
}
eth_get_account annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
eth_get_fee_rates — Eth Get Fee Rates
Advertised by the server during the last successful anonymous check.
Advertised read-only

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

eth_get_fee_rates input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
eth_get_fee_rates annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
tron_check_address_risk — Tron Check Address Risk
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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[].

tron_check_address_risk input schema
{
  "type": "object",
  "required": [
    "address"
  ],
  "properties": {
    "address": {
      "type": "string",
      "description": "TRON base58 address (T...)"
    }
  },
  "additionalProperties": false
}
tron_check_address_risk annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
tron_verify_usdt_transfer — Tron Verify Usdt Transfer
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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[].

tron_verify_usdt_transfer input schema
{
  "type": "object",
  "required": [
    "txid"
  ],
  "properties": {
    "txid": {
      "type": "string",
      "description": "TRON transaction id (64 hex chars)"
    },
    "expected_to": {
      "type": "string",
      "description": "Optional: the recipient you expect"
    },
    "expected_amount_usdt": {
      "type": "number",
      "description": "Optional: the USDT amount you expect"
    }
  },
  "additionalProperties": false
}
tron_verify_usdt_transfer annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
tron_get_current_block — Tron Get Current Block
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

tron_get_current_block input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
tron_get_current_block annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
tron_get_transaction — Tron Get Transaction
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

tron_get_transaction input schema
{
  "type": "object",
  "required": [
    "txid"
  ],
  "properties": {
    "txid": {
      "type": "string",
      "description": "64 hex char Tron transaction id"
    }
  },
  "additionalProperties": false
}
tron_get_transaction annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
tron_get_account — Tron Get Account
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

tron_get_account input schema
{
  "type": "object",
  "required": [
    "address"
  ],
  "properties": {
    "address": {
      "type": "string",
      "description": "TRON address, base58 (T...) or 41-hex"
    }
  },
  "additionalProperties": false
}
tron_get_account annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
tron_read_contract — Tron Read Contract
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

tron_read_contract input schema
{
  "type": "object",
  "required": [
    "contract",
    "function"
  ],
  "properties": {
    "argument": {
      "type": "string",
      "description": "TRON address argument (for balanceOf / allowance)"
    },
    "contract": {
      "type": "string",
      "description": "Contract address (base58 or 41-hex)"
    },
    "function": {
      "type": "string",
      "description": "balanceOf | allowance | decimals | symbol | name | totalSupply, or a raw selector like 'foo(uint256)'"
    },
    "argument2": {
      "type": "string",
      "description": "Second address argument (for allowance)"
    },
    "parameter": {
      "type": "string",
      "description": "Raw ABI-encoded parameter hex, for raw selectors"
    },
    "output_type": {
      "enum": [
        "uint256",
        "address",
        "string",
        "bool"
      ],
      "type": "string"
    }
  },
  "additionalProperties": false
}
tron_read_contract annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
tron_get_block — Tron Get Block
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

tron_get_block input schema
{
  "type": "object",
  "properties": {
    "height": {
      "type": "integer",
      "description": "Block height"
    },
    "block_id": {
      "type": "string",
      "description": "Block id (64 hex chars); takes precedence over height"
    }
  },
  "additionalProperties": false
}
tron_get_block annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
tron_get_node_status — Tron Get Node Status
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

tron_get_node_status input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
tron_get_node_status annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
tron_get_contract — Tron Get Contract
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

tron_get_contract input schema
{
  "type": "object",
  "required": [
    "address"
  ],
  "properties": {
    "address": {
      "type": "string",
      "description": "TRON contract address"
    }
  },
  "additionalProperties": false
}
tron_get_contract annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
tron_get_chain_economics — Tron Get Chain Economics
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

tron_get_chain_economics input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
tron_get_chain_economics annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
tron_list_witnesses — Tron List Witnesses
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

tron_list_witnesses input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 200,
      "minimum": 1,
      "description": "How many top producers to return (default 30)"
    }
  },
  "additionalProperties": false
}
tron_list_witnesses annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
tron_list_proposals — Tron List Proposals
Advertised by the server during the last successful anonymous check.
Advertised read-only

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{}.

tron_list_proposals input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "How many top proposals to return (default 20)"
    }
  },
  "additionalProperties": false
}
tron_list_proposals annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
xmr_get_recent_blocks — Xmr Get Recent Blocks
Advertised by the server during the last successful anonymous check.
Advertised read-only

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

xmr_get_recent_blocks input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 50,
      "minimum": 1,
      "description": "How many blocks (default 10, max 50)"
    }
  },
  "additionalProperties": false
}
xmr_get_recent_blocks annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
xmr_get_block — Xmr Get Block
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

xmr_get_block input schema
{
  "type": "object",
  "anyOf": [
    {
      "required": [
        "height"
      ]
    },
    {
      "required": [
        "block_hash"
      ]
    }
  ],
  "properties": {
    "height": {
      "type": "integer",
      "description": "Block height"
    },
    "block_hash": {
      "type": "string",
      "description": "64 hex chars; takes precedence over height"
    }
  },
  "additionalProperties": false
}
xmr_get_block annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
xmr_get_node_status — Xmr Get Node Status
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

xmr_get_node_status input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
xmr_get_node_status annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
xmr_get_fee_rates — Xmr Get Fee Rates
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

xmr_get_fee_rates input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
xmr_get_fee_rates annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
xmr_get_mempool_state — Xmr Get Mempool State
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

xmr_get_mempool_state input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
xmr_get_mempool_state annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
xmr_get_transaction — Xmr Get Transaction
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

xmr_get_transaction input schema
{
  "type": "object",
  "required": [
    "txid"
  ],
  "properties": {
    "txid": {
      "type": "string",
      "description": "64 hex char Monero transaction id"
    }
  },
  "additionalProperties": false
}
xmr_get_transaction annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
xmr_get_network_stats — Xmr Get Network Stats
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

xmr_get_network_stats input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
xmr_get_network_stats annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
xmr_verify_payment — Xmr Verify Payment
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

xmr_verify_payment input schema
{
  "type": "object",
  "required": [
    "txid",
    "address"
  ],
  "properties": {
    "txid": {
      "type": "string",
      "description": "64 hex char Monero transaction id"
    },
    "tx_key": {
      "type": "string",
      "description": "Transaction key from your own wallet (get_tx_key)"
    },
    "address": {
      "type": "string",
      "description": "The Monero address that should have received the payment"
    },
    "message": {
      "type": "string",
      "description": "Optional message the proof was signed over"
    },
    "signature": {
      "type": "string",
      "description": "Transaction proof signature (get_tx_proof) instead of tx_key"
    }
  },
  "additionalProperties": false
}
xmr_verify_payment annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
xmr_get_output_distribution — Xmr Get Output Distribution
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

xmr_get_output_distribution input schema
{
  "type": "object",
  "properties": {
    "to_height": {
      "type": "integer",
      "description": "End height; defaults to tip-5000"
    },
    "from_height": {
      "type": "integer",
      "description": "Start height; defaults to tip-5010"
    }
  },
  "additionalProperties": false
}
xmr_get_output_distribution annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
xmr_merchant_report — Xmr Merchant Report
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

xmr_merchant_report input schema
{
  "type": "object",
  "required": [
    "address",
    "view_key"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "description": "max transfers returned, 1-2000 (default 500)"
    },
    "address": {
      "type": "string",
      "description": "Monero address to reconcile"
    },
    "view_key": {
      "type": "string",
      "description": "64 hex char private view key (read-only, cannot spend)"
    },
    "period_days": {
      "type": "integer",
      "description": "1-30 days window (default 7)"
    },
    "include_pending": {
      "type": "boolean",
      "description": "include pool/pending transfers (default true)"
    }
  },
  "additionalProperties": false
}
xmr_merchant_report annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
xmr_wallet_balance — Xmr Wallet Balance
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

xmr_wallet_balance input schema
{
  "type": "object",
  "required": [
    "address",
    "view_key"
  ],
  "properties": {
    "address": {
      "type": "string",
      "description": "Monero address"
    },
    "view_key": {
      "type": "string",
      "description": "64 hex char private view key"
    },
    "lookback_days": {
      "type": "integer",
      "description": "rescan window in days, 1-3650 (default 30)"
    }
  },
  "additionalProperties": false
}
xmr_wallet_balance annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
xmr_mining_profitability — Xmr Mining Profitability
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

xmr_mining_profitability input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "hashrate_hs": {
      "type": "number",
      "description": "hashrate in H/s"
    },
    "power_watts": {
      "type": "number",
      "description": "rig power draw in watts"
    },
    "hashrate_khs": {
      "type": "number",
      "description": "alternative: kH/s"
    },
    "hashrate_mhs": {
      "type": "number",
      "description": "alternative: MH/s"
    },
    "xmr_price_usd": {
      "type": "number",
      "description": "XMR price in USD for profit calc"
    },
    "power_cost_kwh": {
      "type": "number",
      "description": "electricity price per kWh (USD)"
    },
    "hardware_cost_usd": {
      "type": "number",
      "description": "optional hardware cost for ROI"
    },
    "service_fee_percent": {
      "type": "number",
      "description": "optional pool fee percent"
    }
  },
  "additionalProperties": false
}
xmr_mining_profitability annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
zec_get_recent_blocks — Zec Get Recent Blocks
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

zec_get_recent_blocks input schema
{
  "type": "object",
  "properties": {
    "n": {
      "type": "integer",
      "default": 5,
      "maximum": 20,
      "minimum": 1,
      "description": "How many recent blocks to return; default 5"
    }
  },
  "additionalProperties": false
}
zec_get_recent_blocks annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
zec_get_pool_status — Zec Get Pool Status
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

zec_get_pool_status input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
zec_get_pool_status annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
zec_get_transaction — Zec Get Transaction
Advertised by the server during the last successful anonymous check.
Advertised read-only

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[].

zec_get_transaction input schema
{
  "type": "object",
  "required": [
    "txid"
  ],
  "properties": {
    "txid": {
      "type": "string",
      "description": "64 hex char Zcash transaction id"
    }
  },
  "additionalProperties": false
}
zec_get_transaction annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
zec_get_treestate — Zec Get Treestate
Advertised by the server during the last successful anonymous check.
Advertised read-only

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

zec_get_treestate input schema
{
  "type": "object",
  "properties": {
    "height": {
      "type": "integer",
      "description": "Block height instead of a hash"
    },
    "block_hash": {
      "type": "string",
      "description": "64 hex block hash"
    }
  },
  "additionalProperties": false
}
zec_get_treestate annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
zec_get_network_stats — Zec Get Network Stats
Advertised by the server during the last successful anonymous check.
Advertised read-only

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[].

zec_get_network_stats input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
zec_get_network_stats annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1868 ms
95th percentile latency
1868 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1868 ms · metadata changed · 65 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http robotbase-web3-mcp https://web3.robotbase.cc/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add robotbase-web3-mcp --url https://web3.robotbase.cc/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable robotbase-web3-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "robotbase-web3-mcp": {
      "url": "https://web3.robotbase.cc/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "robotbase-web3-mcp": {
      "type": "streamableHttp",
      "url": "https://web3.robotbase.cc/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start robotbase-web3-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "robotbase-web3-mcp": {
      "type": "http",
      "url": "https://web3.robotbase.cc/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http robotbase-web3-mcp https://web3.robotbase.cc/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "robotbase-web3-mcp": {
      "url": "https://web3.robotbase.cc/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "robotbase-web3-mcp": {
      "serverUrl": "https://web3.robotbase.cc/mcp"
    }
  }
}

Let your agent find its tools

Find servers like RobotBase Web3 MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.