searchLABSCO SUMMARY
Four Spanish public APIs, one vocabulary.
The value is not any single source but the fact that a question spanning them — employment statistics from INE next to a budget dataset from a city council, on the day the gazette published the rule — becomes one conversation. Semantic search over the catalogue matters here, because Spanish dataset titles rarely match the words you would use.
What it is
One MCP server over four Spanish public-data sources: the national open-data catalogue datos.gob.es, the statistics institute INE, the meteorological agency AEMET, and the official state gazette BOE. Instead of four clients and four auth schemes, an agent asks one server.
What you get
- Catalogue search and download —
searchfilters datasets by title, theme, publisher, format or date, or matches by meaning using embeddings;getreturns metadata and, withinclude_data=true, parses the CSV or JSON in the same call - Official statistics —
ine_searchfinds statistical operations or lists their tables,ine_downloadpulls the actual series - Weather —
aemet_list_locations,aemet_get_observationsfor a station, andaemet_get_forecast, which accepts a municipality name such as Madrid rather than a code - The state gazette —
boe_get_summaryfor a day's issue,boe_get_documentby ID, andboe_searchfor full text over a date range - Five resource templates (
dataset://{dataset_id},theme://{theme_id},publisher://{publisher_id},format://{format_id},keyword://{keyword}) and six guided search prompts
Requirements
Python 3.10 or higher. Clone the repo and install with make dev, then run mcp run server.py. Only AEMET needs a key — set AEMET_API_KEY (free) if you want weather; the other three sources are open. Per-source rate limits and log level are configurable through environment variables. Package version 1.2.0.
Setup effort
Build from source — git clone https://github.com/AlbertoUAH/datos-gob-es-mcp.git
USE CASES
Finding public data on a topic you only know in plain words
Search the national catalogue by meaning rather than exact title, then download the file the dataset points to in the same step.
Pulling an official statistic and its underlying table
Locate the statistical operation, list its tables, then fetch the actual series for the last months.
Tracking what the state gazette published
Read today's issue or search a date range for a term, then open the full metadata of the document that matches.
Checking the weather for a Spanish town by name
Ask for the forecast using the municipality name and, when you need current readings, the nearest station's observations.
10 tools
Listed in project docs. Your client may show a different list.
getine_searchine_downloadaemet_list_locationsaemet_get_observationsaemet_get_forecastboe_get_summaryboe_get_documentboe_searchBEFORE YOU INSTALL
What to know first
Tools you get
10 tools named in the project's documentation.
Requires
Python 3.10
Where it runs
All 3 documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/AlbertoUAH/datos-gob-es-mcp.git
cd datos-gob-es-mcp
make dev
cp .env.example .envFor the AEMET weather tools, put your free AEMET OpenData key (https://opendata.aemet.es/centrodedescargas/altaUsuario) in .env as AEMET_API_KEY
MCP Clients
Claude Desktop — local, Cursor
{
"mcpServers": {
"datos-gob-es": {
"command": "<YOUR_PATH_TO_DATOS_GOB_ES_MCP>/.venv/bin/python",
"args": [
"<YOUR_PATH_TO_DATOS_GOB_ES_MCP>/server.py"
]
}
}
}The configuration on this page does not set AEMET_API_KEY; the project's instructions put it in a .env file. Check which folder the server reads that file from before you rely on it.
VS Code
{
"servers": {
"datos-gob-es": {
"command": "<YOUR_PATH_TO_DATOS_GOB_ES_MCP>/.venv/bin/python",
"args": [
"<YOUR_PATH_TO_DATOS_GOB_ES_MCP>/server.py"
]
}
}
}The configuration on this page does not set AEMET_API_KEY; the project's instructions put it in a .env file. Check which folder the server reads that file from before you rely on it.