MCP Public Data
Provides access to OpenStreetMap Nominatim for geospatial search and geocoding via REST JSON queries.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Public DataGet me the unemployment rate from Eurostat for 2023"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Public Data
A generalized MCP server over free public data sources (EU, Global, CH, AT, DE, US). One uniform tool surface across all sources — no bespoke per-API clients.
Design
The core idea is generalization over specialization:
One parser per on-the-wire format (
public_data/parsers.py): CSV, JSON-stat, SDMX-JSON, World-Bank tabular, OData.One mother class (
public_data/base.py: DataSource) providing all shared plumbing (HTTP client, fail-soft catalog, uniform capability surface, export helpers).Archetypes (
public_data/archetypes.py) — reusable middle layer:JsonStatSource,ODataSource,TabularJsonSource,SdmxSource,DirectCsvSource.One file per concrete source (
public_data/sources/<source>.py), each a small subclass that only declares metadata + a fetch strategy. No bespoke parsing.
Schema
└── DataSource (mother)
├── JsonStatSource → Eurostat, (OECD)
├── TabularJsonSource → World Bank
├── ODataSource → WHO GHO, OpenFEMA
├── SdmxSource → Bundesbank / OECD SDMX
├── DirectCsvSource → OWID, + direct-download sources
└── (custom subclass) → BFS STAT-TAB (PxWeb POST), geo.admin.ch,
Swiss transport — each overrides only the
one step that differs and inherits the restBFS is the one source that breaks the GET pattern — STAT-TAB answers table
queries with a POST and (on this host) only serves the de/fr language
slices — so it subclasses DataSource directly and overrides only fetch.
Related MCP server: Civic Data MCP Server
Tools (same for every source)
Tool | Purpose |
| List sources + the tables each exposes |
| Query syntax / docs for one source |
| Column names + types |
| Small sample (default 5 rows) |
| Run a query → rows |
| CSV (default) or JSON export |
Enabled sources (keyless, verified live)
Source | Slug | Scope | Category | Format |
Eurostat |
| EU | multi | JSON-stat |
World Bank WDI |
| Global | multi | tabular JSON |
WHO Global Health Observatory |
| Global | health | OData |
OpenFEMA |
| US | other (disasters) | OData |
US Bureau of Labor Statistics |
| US | labor | JSON (POST) |
Our World in Data |
| Global | multi | direct CSV |
swisstopo geo.admin.ch |
| CH | infra/logistics | REST |
Swiss public transport |
| CH | infra/logistics | REST |
BFS STAT-TAB (CH federal stats) |
| CH | multi | JSON-stat (POST) |
Deutsche Bundesbank |
| DE/EU | gov finance | SDMX-JSON |
DWD Climate Data Center |
| DE | other (climate) | direct download (dir) |
European Central Bank |
| EU/euro | finance | SDMX-JSON 2.1 |
OpenAlex |
| Global | research | REST JSON |
Crossref |
| Global | research | REST JSON |
UK Office for National Statistics |
| UK | multi | REST JSON |
US SEC EDGAR |
| US | finance | REST JSON |
Open-Meteo |
| Global | climate & weather | columnar JSON |
US National Weather Service |
| US | climate & weather | GeoJSON |
USGS Earthquakes |
| Global | geohazards | GeoJSON |
openFDA |
| US | health | REST JSON |
NOAA NCEI Climate Data Online |
| US/Global | climate & weather | REST JSON |
OpenStreetMap Nominatim |
| Global | geospatial | REST JSON |
Socrata (SODA) portals |
| Global/US | multi | SODA |
Running
python3 -m venv .venv
.venv/bin/pip install -e .
.venv/bin/python server.py # starts MCP on stdioTest
.venv/bin/python smoke_test.py # hits live endpoints; 23 sources
PYTHONPATH=src python3 tests/adversarial_test.py # fail-soft + edge-case suiteFree-key APIs (documented, NOT wired yet)
These need free registration and are intentionally left out of the live surface for now (no-key-first). Add them as subclasses behind optional credentials when desired.
Source | Slug suggestion | Cat | Key |
UN Comtrade |
| trade | free key |
WTO Statistics |
| trade/tariffs | free key |
FAOSTAT (FAO) |
| agriculture | free key (bulk download keyless) |
ILOSTAT (ILO) |
| labor | free key (bulk CSV keyless) |
NASA FIRMS (wildfires) |
| other | free MAP_KEY (5000 req/10min) |
US Census Bureau |
| other | free key |
NOAA CDO v2 |
| other | free token |
Direct-download targets worth adding (next)
Bureau of Justice Statistics (US prisons) — CSV/XLSX downloads
ReliefWeb v2 (disasters) —
/v2/disastersOECD SDMX —
https://sdmx.oecd.org/public/rest(dataflow verified 200; dataset-specific keys need tuning)UN/LOCODE (global ports/logistics), ECDC, UCDP (conflict), data.gv.at OGD / Statistik Austria STATcube / GeoSphere (AT) — keyless when enabled, not yet wired
Notes / gotchas learned
Pagination is implemented for OpenAlex (per-page+page), ONS (limit+offset), and NOAA (limit+offset). All cap at
MAX_QUERY_ROWS(20,000). SEC EDGAR returns only the ~1000 most recent filings (server-capped; older filings require separate archive requests).geo.admin.ch STAC v0.9 returns 500 intermittently (server-side flake / limit param). The
api3.geo.admin.chREST endpoint is reliable — the adapter uses that.FAOSTAT old
fenixservices.fao.orgendpoint is dead; current base isfaostatservices.fao.org/api/v1.ReliefWeb v1 is decommissioned; use v2.
data.gv.at (AT) CKAN API is deprecated (404); portal moved to Piveau
/api/hub/.Bundesbank serializes SDMX-JSON 1.0 (
{"meta","data"}envelope), not 2.1 — the parser unwraps it. Series keys are flow-specific (use e.g.BBEX3/A.AED.DEM.CA.AA.A04); theM.USD.EUR...form is not accepted.BFS STAT-TAB pxweb REST v1 serves only the
de/frlanguage slices onpxweb.bfs.admin.ch(en/iton this route → 400); the adapter defaults to German.data.europa.eu hub search (
/api/hub/search/datasets) returns 400/401 on keyless requests — not integrated.Zefix (CH company register) returns 401 without credentials despite "PublicREST".
BLS allows ~5k requests/day keyless (v2) but raises limits with a free key.
openFDA query filters need the
search=prefix (e.g.search=receivedate:[20240101+TO+20240131]), not a bare field.NOAA CDO v1 rejects
dataTypes=TMAX,TMINon some endpoints (400) — dropdataTypesfor the default daily-summaries listing.Nominatim requires a browser-style
User-Agent(Mozilla/5.0 (compatible; ...)) — a plainapp/1.0UA gets 403 — and enforces 1 req/s fair use.SEC EDGAR and NWS mandate a descriptive
User-Agent; both are set in their adapters.ECB serves SDMX-JSON 2.1 (
dataSets+structuredimensions) — the existingparse_sdmx_jsonalready handles it; no new parser needed.IMF only serves SDMX over plain HTTP — excluded on security grounds.
License
Licensed under the Apache License, Version 2.0 — see LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Official public & government APIs, dozens of countries: registers, statistics, open data. Keyless.
294 public-data tools across 60 domains; source freshness varies. Free tier.
Search, sample and query open reproducible datasets published as immutable Parquet with schemas.
Normalized official data with provenance, aggregations, insights, free samples and agent access.
Related MCP Servers
- AlicenseBqualityNot gradedmaintenanceEnables AI assistants and CLI tools to explore and analyze datasets from 600+ global CKAN open-data portals. Provides comprehensive tools for dataset discovery, datastore queries, metadata analysis, and local downloads without writing custom CKAN integrations.14-
- AlicenseBqualityCmaintenanceProvides access to 7 free government and open data APIs including NOAA weather, US Census demographics, NASA imagery, World Bank economics, Data.gov, and EU Open Data through 22 specialized tools, with most requiring no API keys.223MIT
- AlicenseNot gradedqualityCmaintenanceEnables querying New York State DMV data including vehicle registrations, EV adoption, offices, road test sites, driving schools, and licensed facilities, with keyless access to public datasets.3MIT
- AlicenseAqualityBmaintenanceEnables querying international macro statistics, company identity data via LEI, and FX rates from dozens of free keyless providers through unified tools.12MIT