Server definition
- Hash
- sha256:6fd9e443d2222f1d9ffad64faf323b9065eea95123a203b960f919c6f3bc6c3a
- What it is
- What a remote MCP server returned when asked what it offers: 12 tools
The blob, as servednamed by its sha256
{
"instructions": "Agent Data Tools: 12 data tools (blockchain reads, token prices, sanctions and company checks, web and PDF text, weather, time, countries, utilities). Most cost $0.01 per successful call. Each caller gets 25 free successful calls, used automatically (not for the AI, rendering, screenshot, transcription and search tools); failed calls never count. Here they are counted per network address, which cloud apps such as Claude and ChatGPT share between users: there, https://agent-data-tools.revmesh2074.workers.dev/mcp/account gives each person their own. After that a call returns a payment request. If your client pays x402 (USDC on Base, Polygon, Arbitrum, Monad or World Chain) it can pay it. Otherwise tell your user they can buy a prepaid key by card at https://agent-data-tools.revmesh2074.workers.dev/credits ($5 = 5,000 credits, about 500 calls at $0.01) and add the header \"Authorization: Bearer <key>\" to this server's connection settings (or, in apps that only take a URL, connect to https://agent-data-tools.revmesh2074.workers.dev/mcp/k/<key>). If your client supports MPP with a Link agent wallet, it can buy a pack itself: GET https://agent-data-tools.revmesh2074.workers.dev/credits/buy/5 (or /20, /100) and pay the 402; the response carries the key (send an existing key as X-API-Key to top it up instead). Every tool's result shape is in its output schema. Pick by task: is it safe to pay an address → check_counterparty; OFAC only → sanctions_check; token price by ticker or address → price_token (many: price_tokens); a wallet's holdings in USD → wallet_portfolio (5 chains: wallet_balances); chain state on base, eth, arb, op or polygon → <chain>_balance, _token_balance (tickers work), _tx, _receipt, _logs, _gas, _block; read a web page → extract (JavaScript sites: extract_rendered); PDF → pdf_text; company → company; FX → fx; weather by city → weather. Smaller servers per section: /mcp/prices, /mcp/chain, /mcp/web, /mcp/compliance, /mcp/ai, /mcp/everyday, /mcp/utilities.",
"tools": [
{
"description": "Definitions of an English word from Wiktionary, grouped by part of speech, with example sentences where Wiktionary gives them, plus the page link and the CC BY-SA attribution to show. Use for writing help, vocabulary, translation checks and word games. Example: word=serendipity. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"word": {
"description": "An English word",
"type": "string"
}
},
"required": [
"word"
],
"type": "object"
},
"name": "dictionary",
"outputSchema": null
},
{
"description": "Fetch any public web page URL and get clean, LLM-ready text or Markdown: main content, code blocks, tables, links and headings, for RAG and agent context. Static HTML, Markdown or text; optional section ID. Default 20,000 output characters, max 100,000; input 2 MiB. No JavaScript rendering (see /extract/rendered), logins or paywalls. Empty pages, bad sections, browser challenges and errors are not charged. Use to read docs or articles. Example: url=https://example.com. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"format": {
"description": "Returned representation: text (default), markdown, or both. HTML structured details are included in every format; Markdown/plain sources have empty details.",
"enum": [
"text",
"markdown",
"both"
],
"type": "string"
},
"maxChars": {
"description": "Maximum characters of body text to return (500-100000, default 20000)",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"section": {
"description": "Optional exact visible HTML ID within primary content, 1-500 characters. Heading scope includes subsections until next same/higher-level heading; section/article/main/div scope is its subtree. Missing/ambiguous/unsupported targets fail uncharged. URL fragments alone do not select a section.",
"type": "string"
},
"url": {
"description": "Absolute http(s) URL of the page to fetch",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "extract",
"outputSchema": {
"oneOf": [
{
"not": {
"required": [
"markdown"
]
},
"properties": {
"format": {
"const": "text"
},
"hashFormat": {
"const": "text"
}
},
"required": [
"text"
]
},
{
"not": {
"required": [
"text"
]
},
"properties": {
"format": {
"const": "markdown"
},
"hashFormat": {
"const": "markdown"
}
},
"required": [
"markdown"
]
},
{
"properties": {
"format": {
"const": "both"
},
"hashFormat": {
"const": "text"
}
},
"required": [
"text",
"markdown"
]
}
],
"properties": {
"canonical": {
"type": [
"string",
"null"
]
},
"codeBlocks": {
"items": {
"properties": {
"language": {
"type": [
"string",
"null"
]
},
"text": {
"maxLength": 20000,
"type": "string"
},
"truncated": {
"type": "boolean"
}
},
"required": [
"language",
"text",
"truncated"
],
"type": "object"
},
"maxItems": 20,
"type": "array"
},
"contentHash": {
"pattern": "^sha256:[a-f0-9]{64}$",
"type": "string"
},
"contentSelection": {
"enum": [
"main",
"article",
"body",
"plain"
]
},
"contentType": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"fetchedAt": {
"type": "string"
},
"finalUrl": {
"type": "string"
},
"format": {
"enum": [
"text",
"markdown",
"both"
]
},
"hashFormat": {
"enum": [
"text",
"markdown"
]
},
"headings": {
"items": {
"properties": {
"id": {
"description": "Source HTML heading ID or direct child anchor ID, when present and supported; not a generated slug.",
"maxLength": 500,
"type": [
"string",
"null"
]
},
"level": {
"maximum": 6,
"minimum": 1,
"type": "integer"
},
"text": {
"type": "string"
}
},
"required": [
"level",
"text",
"id"
],
"type": "object"
},
"maxItems": 100,
"type": "array"
},
"lang": {
"type": [
"string",
"null"
]
},
"linkBaseUrl": {
"description": "Effective source-derived HTTP(S) base for links: the first supported HTML base href outside inert/foreign subtrees, otherwise finalUrl. Credentials and non-HTTP(S) base values are ignored with a warning. HTML links/canonical use this base; raw Markdown keeps relative syntax and can be resolved using this field. No linked resource is fetched. This static interpretation does not evaluate scripts or Content Security Policy.",
"type": "string"
},
"links": {
"items": {
"properties": {
"href": {
"type": "string"
},
"text": {
"type": "string"
}
},
"required": [
"href",
"text"
],
"type": "object"
},
"maxItems": 200,
"type": "array"
},
"markdown": {
"maxLength": 100000,
"type": "string"
},
"section": {
"anyOf": [
{
"type": "null"
},
{
"properties": {
"headingLevel": {
"maximum": 6,
"minimum": 1,
"type": [
"integer",
"null"
]
},
"id": {
"maxLength": 500,
"type": "string"
},
"kind": {
"enum": [
"heading",
"container"
]
},
"title": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"title",
"kind",
"headingLevel"
],
"type": "object"
}
],
"description": "Null for full primary-content reading. Otherwise the explicitly requested scope; title/description/canonical remain page-level metadata. Heading scope ends before the next same/higher-level heading, including nested subsections; container scope is its subtree."
},
"sourceFormat": {
"description": "Source interpretation. Markdown is identified by text/markdown, or a .md/.markdown final path served as text/plain (warned). Markdown syntax is retained verbatim within the cap, not converted to HTML or parsed for structured details; text also retains that syntax. HTML section IDs are unsupported for Markdown/plain text.",
"enum": [
"html",
"markdown",
"plain"
]
},
"sourceMetadata": {
"description": "Page-level source declarations, not verified authorship or freshness. Head author/Open Graph date tags and bounded direct Schema.org JSON-LD Article/WebPage-like nodes only; exact-URL matches preferred, otherwise only one identity-free candidate. Author @id references resolve only to unambiguous local Person/Organization names, with both paths recorded. No external context/reference fetching or general JSON-LD expansion. Separate 2000-character value+provenance budget; 5 authors/10 dates. Original date strings are not normalized. Empty for Markdown/plain sources; unrelated entities and ambiguous nodes are omitted with warnings.",
"properties": {
"authors": {
"items": {
"properties": {
"source": {
"maxLength": 256,
"type": "string"
},
"value": {
"maxLength": 256,
"type": "string"
}
},
"required": [
"value",
"source"
],
"type": "object"
},
"maxItems": 5,
"type": "array"
},
"dates": {
"items": {
"properties": {
"kind": {
"enum": [
"published",
"modified"
]
},
"source": {
"maxLength": 256,
"type": "string"
},
"value": {
"maxLength": 128,
"type": "string"
}
},
"required": [
"value",
"source",
"kind"
],
"type": "object"
},
"maxItems": 10,
"type": "array"
},
"truncated": {
"type": "boolean"
},
"verification": {
"const": "not_verified"
}
},
"required": [
"verification",
"authors",
"dates",
"truncated"
],
"type": "object"
},
"status": {
"type": "integer"
},
"tables": {
"items": {
"properties": {
"caption": {
"type": [
"string",
"null"
]
},
"hasSpans": {
"type": "boolean"
},
"headerRows": {
"items": {
"maximum": 99,
"minimum": 0,
"type": "integer"
},
"type": "array"
},
"rows": {
"items": {
"items": {
"type": "string"
},
"maxItems": 20,
"type": "array"
},
"maxItems": 100,
"type": "array"
},
"truncated": {
"type": "boolean"
}
},
"required": [
"caption",
"rows",
"headerRows",
"hasSpans",
"truncated"
],
"type": "object"
},
"maxItems": 20,
"type": "array"
},
"text": {
"maxLength": 100000,
"type": "string"
},
"textLength": {
"description": "Full extracted text length before the character cap, within the input limit.",
"minimum": 0,
"type": "integer"
},
"title": {
"type": [
"string",
"null"
]
},
"truncated": {
"description": "Input or requested primary representation is incomplete. Structured detail limits are reported separately in warnings.",
"type": "boolean"
},
"url": {
"type": "string"
},
"warnings": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"url",
"finalUrl",
"status",
"contentType",
"sourceFormat",
"linkBaseUrl",
"sourceMetadata",
"title",
"description",
"lang",
"canonical",
"headings",
"section",
"links",
"codeBlocks",
"tables",
"contentSelection",
"warnings",
"format",
"textLength",
"truncated",
"contentHash",
"hashFormat",
"fetchedAt"
],
"type": "object"
}
},
{
"description": "Same output as /extract, but the page is first rendered in a real browser, so single-page apps and pages that build their content with JavaScript come back with their text instead of an empty shell. Waits for the network to settle (up to 15 seconds). Public pages only; no login. Use when /extract returns EXTRACTION_EMPTY or too little text for a page you can read in a browser. Example: url=https://example.com/. Price $0.01/call via x402 USDC or a card key (/credits); failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"format": {
"description": "text (default), markdown or both",
"enum": [
"text",
"markdown",
"both"
],
"type": "string"
},
"maxChars": {
"description": "Output limit, 500-100000 characters (default 20000)",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"section": {
"description": "Optional exact HTML id to read only that element",
"type": "string"
},
"url": {
"description": "Absolute public http(s) URL of the page",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "extract_rendered",
"outputSchema": null
},
{
"description": "Read a public RSS 2.0, RSS 1.0 or Atom feed and get the feed title, link and description plus its newest items: title, link, date (ISO 8601), short plain-text summary, author and id. Up to 50 items, feeds up to 2 MB. Lenient with real-world feeds; a page that is not a feed returns 422, uncharged. Use to follow news, blogs, release notes or podcasts without scraping pages. Example: url=https://github.blog/feed/. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"description": "Items to return (1-50, default 20)",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"url": {
"description": "Absolute public http(s) URL of the feed",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "feed",
"outputSchema": null
},
{
"description": "Search scholarly literature across journals, conferences, preprints and books: title, authors, year, venue, citation count, DOI link and abstract where available. Optional fromYear filter and up to 20 results per call. Use for research agents, literature reviews, fact-checking a claim against published work, and finding the DOI for a citation. Example: query=CRISPR off-target effects. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"fromYear": {
"description": "Only works published in or after this year",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"limit": {
"description": "Number of results, 1-20 (default 5)",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"query": {
"description": "Search terms, a title or a research question (3-300 characters)",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "papers",
"outputSchema": null
},
{
"description": "Download a public PDF (up to 10 MB) and return its text page by page, with title, author, page count and character counts. Choose a first page and how many pages to read (up to 200) and cap the output with maxChars. Scanned PDFs without a text layer, encrypted files and non-PDF URLs fail uncharged. Use to read papers, invoices, reports and manuals into an agent's context. Example: url=https://bitcoin.org/bitcoin.pdf. Price $0.005/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"firstPage": {
"description": "First page to read (default 1)",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"maxChars": {
"description": "Maximum characters of text returned across all pages (1000-200000, default 50000)",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"pages": {
"description": "How many pages to read (1-200, default 50)",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"url": {
"description": "Absolute public http(s) URL of the PDF",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "pdf_text",
"outputSchema": null
},
{
"description": "Render any public web page in a real headless Chrome browser, with JavaScript executed, and get a JPEG screenshot (1280 px wide, base64) plus the final URL, HTTP status and page title. Set fullPage=true to capture up to 4000 px of page height. Use for visual checks, page previews, monitoring and feeding pages to vision models. Example: url=https://example.com. Price $0.02/call via x402 USDC or a card key (/credits); failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"fullPage": {
"description": "Set to true to capture the full page height (max 4000 px) instead of the 1280x800 viewport",
"type": [
"string",
"number",
"boolean"
]
},
"url": {
"description": "Absolute http(s) URL of the page to capture",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "screenshot",
"outputSchema": null
},
{
"description": "Search the web and get the top results as JSON: title, URL, a short snippet and the page age, from the Brave Search API. 1-20 results per call. Results are for the caller's immediate use only: no storing, resale or model training (Brave API terms). Upstream failures and exhausted daily capacity return 503, uncharged. Pair with /extract to read a result in full. Use when an agent needs current information or sources from the open web. Example: q=x402 payment protocol. Price $0.01/call via x402 USDC or a card key (/credits); failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"count": {
"description": "Number of results (1-20, default 10)",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"q": {
"description": "Search query, at most 400 characters",
"type": "string"
}
},
"required": [
"q"
],
"type": "object"
},
"name": "search",
"outputSchema": null
},
{
"description": "Read one public XML sitemap or sitemap index as structured URLs and source-reported dates. Supports gzip, substring filtering and pagination. Maximum 512 KiB expanded input and 1000 entries. Does not crawl pages or follow child sitemaps. Invalid XML and execution errors are not charged; a valid empty match is charged. Use to find which pages of a docs site to read before calling /extract. Example: url=https://www.sitemaps.org/sitemap.xml. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"contains": {
"description": "Optional case-insensitive URL substring, at most 200 characters",
"type": "string"
},
"maxUrls": {
"description": "Reported matching locations examined in one page (1-100, default 25); invalid/nonpublic locations may reduce returned entries",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"offset": {
"description": "Offset into distinct reported matching locations (0-1000, default 0); use nextOffset to continue",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"url": {
"description": "Absolute public HTTP(S) XML sitemap URL; child sitemaps are not fetched automatically",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "sitemap",
"outputSchema": {
"properties": {
"contains": {
"maxLength": 200,
"type": "string"
},
"contentHash": {
"pattern": "^sha256:[a-f0-9]{64}$",
"type": "string"
},
"duplicateReportedLocations": {
"minimum": 0,
"type": "integer"
},
"entries": {
"items": {
"properties": {
"lastModified": {
"description": "Source-reported value; not a verified modification time.",
"maxLength": 80,
"type": [
"string",
"null"
]
},
"url": {
"maxLength": 2048,
"type": "string"
}
},
"required": [
"url",
"lastModified"
],
"type": "object"
},
"maxItems": 100,
"type": "array"
},
"fetchedAt": {
"type": "string"
},
"finalUrl": {
"type": "string"
},
"format": {
"const": "text"
},
"hasMore": {
"type": "boolean"
},
"hashFormat": {
"const": "text"
},
"kind": {
"enum": [
"urlset",
"sitemapindex"
]
},
"matchingReportedLocations": {
"description": "Distinct reported locations matching contains, before public-URL validation of the selected page.",
"minimum": 0,
"type": "integer"
},
"missingOrInvalidLocations": {
"minimum": 0,
"type": "integer"
},
"nextOffset": {
"minimum": 0,
"type": [
"integer",
"null"
]
},
"offset": {
"minimum": 0,
"type": "integer"
},
"rejectedLocationsInPage": {
"minimum": 0,
"type": "integer"
},
"reportedEntries": {
"maximum": 1000,
"minimum": 0,
"type": "integer"
},
"sourceHash": {
"pattern": "^sha256:[a-f0-9]{64}$",
"type": "string"
},
"text": {
"type": "string"
},
"uniqueReportedLocations": {
"maximum": 1000,
"minimum": 0,
"type": "integer"
},
"url": {
"type": "string"
},
"warnings": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"url",
"finalUrl",
"kind",
"entries",
"reportedEntries",
"uniqueReportedLocations",
"missingOrInvalidLocations",
"duplicateReportedLocations",
"rejectedLocationsInPage",
"matchingReportedLocations",
"contains",
"offset",
"nextOffset",
"hasMore",
"warnings",
"text",
"format",
"hashFormat",
"contentHash",
"sourceHash",
"fetchedAt"
],
"type": "object"
}
},
{
"description": "Give a URL, get a short summary of the page plus three to six key points, ready to drop into an agent's context. Fetches the page, strips navigation and boilerplate, and summarizes the main text with an LLM. HTML pages only; for a PDF use pdf_text, then ai_summarize_text. Use for research, news triage, link previews and deciding whether a page is worth reading in full. For the full text use extract. Example: url=https://en.wikipedia.org/wiki/HTTP_402. Price $0.01/call via x402 USDC or a card key (/credits); failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"url": {
"description": "Absolute http(s) URL of the page to summarize",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "summarize",
"outputSchema": null
},
{
"description": "Fetch a public web page's head and return link-preview metadata: title, description, site name, type, preview image, canonical URL, language, author, published time, favicon, theme colour, and every OpenGraph and Twitter-card field. Reads at most 512 KB and never runs JavaScript. Use to build link previews, label citations or check how a URL will unfurl before sharing it. Example: url=https://github.com/. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"url": {
"description": "Absolute public http(s) URL of the page",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "url_meta",
"outputSchema": null
},
{
"description": "Short summary of a Wikipedia article in any language edition: title, one-paragraph extract, description, thumbnail and page URL. Use to ground an agent's answer in a quick, citable fact sheet. Example: title=Stockholm. Price $0.01/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"lang": {
"description": "Language code (default en)",
"type": "string"
},
"title": {
"description": "Article title",
"type": "string"
}
},
"required": [
"title"
],
"type": "object"
},
"name": "wikipedia",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:6fd9e443d2222f1d9ffad64faf323b9065eea95123a203b960f919c6f3bc6c3a | sha256sum