An MCP server that bundles 25+ of the highest-leverage keyless public APIs of the open internet.
13 tools with complete input schemas and descriptions. Naming is verb-based and clear (wikidata_sparql, wikipedia_search, nominatim_geocode). Descriptions are concise (50-150 chars) and explain WHAT and WHEN. All parameters have type constraints (minLength, maxLength, pattern, min/max for numbers). However, parameter descriptions are minimal or absent, most params lack explanatory text beyond the constraint itself. Output schemas are not documented; responses are returned as raw text strings. Error handling is basic (SafeFetchError with category + message) but lacks recovery guidance. No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are read-only, which is a strength, but this is not declared in the schema.
Search arXiv preprints. Returns Atom XML with titles, authors, abstracts, and IDs. Use search_query syntax like 'all:transformers' or 'cat:cs.LG AND ti:diffusion'.
Look up canonical metadata + references for a DOI on Crossref.
Public Ethereum RPC (read-only allowlist). Supports eth_blockNumber, eth_chainId, eth_gasPrice, eth_feeHistory, eth_getBalance, eth_getCode, eth_getStorageAt, eth_getTransactionCount, eth_getTransactionByHash, eth_getTransactionByBlockHashAndIndex, eth_getTransactionByBlockNumberAndIndex, eth_getTransactionReceipt, eth_getBlockByHash, eth_getBlockByNumber, eth_getBlockTransactionCountByHash, eth_getBlockTransactionCountByNumber, eth_call, eth_estimateGas, eth_getLogs.
Forward-geocode a place name → lat/lon list using OpenStreetMap Nominatim.
Reverse-geocode a lat/lon → address using OpenStreetMap Nominatim.
Online Encyclopedia of Integer Sequences. Pass a comma-separated prefix like '1,1,2,3,5,8' or an A-number like 'A000045'.
Parameter descriptions are missing or minimal. Most params (e.g., 'query', 'title', 'q', 'ql', 'lat', 'lon', 'zoom', 'cik', 'doi', 'method', 'params') have no description text, only JSON Schema constraints. LLMs cannot infer parameter meaning from names alone and will struggle to construct valid calls.
Output schemas are not documented. All tools return raw text strings (r.text + truncatedNote). LLMs cannot plan downstream calls or extract structured data without knowing what fields to expect. Responses should document JSON structure, field types, and pagination info.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | 2026-07-28+ | v2 |
Search 250M+ scholarly works (papers, datasets, books) on OpenAlex. Returns abstracts, citations, authors, institutions.
Query OpenStreetMap features with Overpass QL. Returns JSON. Use [out:json][timeout:25]; … out; pattern. Heavy queries may be rejected by the server.
Search MEDLINE/PubMed. Returns PMIDs that you can pass to a follow-up esummary call.
Fetch the recent filings index for a US public company by 10-digit CIK (zero-padded). Use cik_lookup-style search via the search endpoint if you only have a ticker.
Run a read-only SPARQL query against Wikidata (query.wikidata.org). Returns JSON results. Best for structured world knowledge: people, places, organisations, taxonomic classes.
Full-text search Wikipedia article titles and snippets. Returns matches with page IDs and excerpts.
Fetch the lead-section summary for a Wikipedia article by exact title. Use this after wikipedia_search if you need narrative text.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All 13 tools are read-only and safe to retry, but this is not declared in the schema. Agents cannot infer safety properties and may avoid retrying on transient failures.
Error handling lacks recovery guidance. SafeFetchError returns a category (bad_input, network_error, etc.) and message, but does not tell the LLM what to do next. E.g., 'SPARQL update verbs not allowed' should suggest 'Use read-only SELECT queries only.'
sec_edgar_company description mentions 'cik_lookup-style search' but does not explain what a CIK is or how to obtain one. ethereum_rpc lists 19 allowed methods but does not explain when to use each or what they return. Descriptions assume domain knowledge.