EcuDataMCP is an MCP (Model Context Protocol) server I built together with Luis Figueroa, each of us bringing our own experience wrangling Ecuador’s open data sources, so that an AI assistant can query Ecuadorian public data directly inside a conversation — no endless government portals to dig through, no ugly spreadsheets to clean up first. I recently put it to use building a dashboard, Sismicidad Ecuador, which tracks the country’s recent seismic activity and doubles as a concrete demonstration of what the MCP can actually do.
What does EcuDataMCP do?
MCP is the open protocol that lets an AI assistant (Claude, ChatGPT, Cursor, and others) call structured tools mid-conversation, rather than just producing free text. EcuDataMCP uses it to expose, as queryable tools, data that today sits scattered across more than a dozen Ecuadorian government portals, each with its own format, its own authentication (or lack thereof), and its own level of upkeep:
| Source | What it exposes |
|---|---|
Open Data (CKAN, datosabiertos.gob.ec) |
The full national catalog, with preview and tabular querying through the DataStore — no need to download the file |
| SRI (tax authority) | ~130 files that live outside the CKAN portal: RUC registrations by province, tax collection, sales/purchases, vehicles |
| Gob.ec | Procedures, requirements and costs; regulations cross-referenced to the Official Registry |
| SERCOP (OCDS) | Public procurement: tenders, buyers, awards |
| Risk Management (SGR) | COE emergency events and tsunami early-warning stations |
| IG-EPN | The seismic catalog — the source behind the dashboard shown below |
| ANDA/INEC | Catalog of surveys and censuses, linked out to microdata |
| BCE (central bank) | Macroeconomic time series (monetary, fiscal, external sector, real sector) |
| Supercías | A directory of 226,000 companies, a financial ranking (~38 ratios per company), and a registry of external auditors |
All told, that adds up to roughly 40 distinct tools inside the MCP (search_datasets, query_resource_data, search_tramites, search_sismos, get_indicador_bce, and so on).
The idea is that an assistant should be able to answer something like “what tax-collection data does the SRI publish?” or “give me the latest earthquakes above magnitude 4” without a person having to manually hunt through each portal to find out.
How it was built
The server connects to the various APIs, links, and other “endpoints” the national government makes available. A non-technical user won’t much care about those details — what actually happens, at the end of the day, is that a lot of small, packaged tools get built so that a Claude Code, Codex, or Cursor can talk to the data faster and more easily than a human clicking through a portal ever could.
That’s not to say it’s problem-free. There’s plenty to account for, starting with the fact that, for now, you need an Ecuadorian VPN to use it.
All of this is open-source software under the MIT license, with no API key or account required, built to work both as a tool a client connects to (Claude Desktop, Claude Code, Cursor, ChatGPT on paid plans, and so on) and as something you can run locally with Docker.
Sismicidad Ecuador: the demo
With all that data and tooling already in place, I wanted a concrete way to show what it’s actually good for — something more tangible than a list of tools in a README. Sismicidad Ecuador is that demonstration: an interactive panel that queries EcuDataMCP’s search_sismos tool (which in turn calls the IG-EPN’s event feed) and lays out the country’s recent seismic activity with:
- An interactive map using the country’s real provincial and cantonal boundaries (from geoBoundaries, CC0), not a hand-drawn outline standing in for one.
- A 29-day timeline showing each event’s local time.1
- Filters by magnitude, depth, region, and time period, with an event list and a detail panel that stay in sync with the map as you move through it.
- KPIs that react live to whatever filters are applied.
The entire frontend — the map, the geographic projections, the interactivity — is written in plain HTML, SVG, and JavaScript: no external libraries, no backend. It’s a single .html file you can open as-is.
For now it doesn’t update live, and only the last 30 days of events are available.
I built the whole dashboard myself with Claude Code, from the first rough sketch through downloading and simplifying the geoBoundaries geometries to the final interface redesign, iterating over several rounds until it felt like a real product rather than a generic dashboard bolted onto a dataset.
Try it
It’s also embedded on my dashboards page, alongside my other data-visualization projects.
Footnotes
The IG-EPN’s public feed only retains the last 30 days of events, with no access to a longer history, so the timeline can’t show more than that.↩︎