Datos.gob.es-MCP
Click on "Install 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., "@Datos.gob.es-MCPSearch for datasets about air quality in Madrid"
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.
Datos.gob.es-MCP. MCP integration with the Spanish Government Open Data Portal
Datos.gob.es-mcp enables querying and analyzing over 90,000 public datasets available on the datos.gob.es portal directly from Claude AI and other compatible MCP clients using the Model Context Protocol (MCP).
This MCP server exposes tools for LLMs to search, filter, and access open data across multiple sectors.
Main features
Keyword search across dataset titles, descriptions and tags.
Thematic category filtering (environment, transportation, education, etc.)
Detailed metadata access for each dataset.
Available distributions listing (formats and access URLs)
Custom SPARQL queries execution against the official SPARQL endpoint.
Related MCP server: CKAN MCP Server
Installation
Install via uv
Prerequisites
Python 3.10 or higher
uv package manager
uv Installation
First install uv, a modern Python package manager.
Install from command line:
En MAC y Linux:
curl -LsSf https://astral.sh/uv/install.sh | shEn Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"También se puede instalar con pip:
pip install uvFor more information about installing uv, visit the uv documentation.
Integration with clients like Claude for Desktop
Once uv is installed, you can use the MCP server with any compatible client like Claude Desktop. Configuration steps:
Go to Claude > Settings > Developer > Edit Config >
claude_desktop_config.jsonAdd this configuration block under
"mcpServers":
"datos_gob_es_mcp": {
"command": "uvx",
"args": [
"datos_gob_es_mcp"
]
}If you have other MCP servers configured, separate them with commas
,
For other MCP-compatible clients like Cursor, CODEGPT or Roo Code, add the same configuration block to their respective MCP server settings.
Usage Examples
Once properly configured, you can request operations like:
- "Search for public transportation datasets in Madrid"
- "List latest datasets published by Barcelona City Council"
- "Show details for dataset with URI https://datos.gob.es/es/catalogo/l01330241-padron-de-vehiculos-ano-2023-autobuses"
---Available Tools
10 toolsget_dataset_detailsC
Get detailed information about a specific dataset.
Args: dataset_uri: URI of the dataset to get details for
| Name | Required | Description | Default |
|---|---|---|---|
| dataset_uri | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool 'gets' information, implying a read operation, but discloses no behavioral traits such as idempotency, cost, or authentication needs. The lack of detail is a significant gap for a simple retrieval tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with two short lines and no wasted words. However, it could be slightly more informative without losing conciseness, such as hinting at the return structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and a single parameter with minimal description, the description is incomplete. It does not explain what 'detailed information' includes, leaving agents uncertain about the tool's output and behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning. It states 'URI of the dataset to get details for', which provides basic context beyond the property name but lacks format, examples, or constraints. This is minimally helpful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves detailed information about a specific dataset, using 'Get detailed information' as a specific verb+resource. It distinguishes from siblings like get_dataset_distributions or get_datasets_by_theme, which focus on different aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when the agent has a dataset URI and needs details, but it provides no explicit guidance on when to use this tool over alternatives (e.g., get_dataset_distributions) or any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dataset_distributionsC
Get available distributions (file formats) for a specific dataset.
Args: dataset_uri: URI of the dataset
| Name | Required | Description | Default |
|---|---|---|---|
| dataset_uri | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose all behavioral traits. It states only that it retrieves distributions, but does not mention whether it requires authentication, is read-only, handles errors for missing datasets, or any side effects. The description is insufficient for transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and uses a brief sentence plus an Args section. While concise, it lacks structured sections (e.g., Returns, Notes) and the Args formatting is minimal. It is functional but could be better organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no output schema and no annotations, the description is too sparse. It fails to explain what distributions are, how results are returned, possible error conditions, or behavior for invalid URIs. The sibling context provides some differentiation but completeness is lacking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'dataset_uri' has 0% schema description coverage. The description adds only 'URI of the dataset', which is essentially the same as the schema title. It does not provide format, example, or constraints beyond what the schema already implies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('available distributions (file formats) for a specific dataset'), clearly stating what the tool returns. It distinguishes itself from siblings like 'get_dataset_details' which likely returns metadata, and search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. Siblings are listed but no explicit comparisons, prerequisites, or exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_datasets_by_themeA
Get datasets belonging to a specific theme/category.
Args: theme_uri: URI of the theme limit: Maximum number of datasets to return (default: 10)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| theme_uri | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations. Description does not disclose read-only, pagination, or error behavior. Minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with no wasted words. All information is relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple query tool given no output schema. Could mention that theme_uri comes from list_themes, but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaning beyond schema: explains theme_uri as 'URI of the theme' and limit as max datasets with default. Compensates for 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Get', resource 'datasets', and qualifier 'by theme'. Distinguishes from siblings like list_datasets, get_latest_datasets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for filtering by theme but no explicit when-not or alternatives. No warning about theme_uri format or existence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_latest_datasetsC
Get the most recently published datasets.
Args: limit: Maximum number of datasets to return (default: 10)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It does not explain how 'most recently published' is determined, ordering, pagination, or any side effects. The description is too minimal for a tool with no safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with no wasted words, but it lacks structure such as headings or separate sections. For a simple tool, it is adequate but could benefit from additional context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter and no output schema, the description fails to explain the return format, ordering criteria, or any implicit limits. It is insufficient for an agent to fully understand the tool's output and behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning to the 'limit' parameter by stating it is the maximum number to return, which supplements the schema's default value. However, schema description coverage is 0%, so the description partially compensates but does not fully explain all aspects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the most recently published datasets, using a specific verb+resource combination. However, it does not differentiate from sibling tools like list_datasets or search_datasets, which may also return dataset lists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool instead of alternatives (e.g., list_datasets, search_datasets). The description lacks context for selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_publisher_datasetsB
Get datasets published by a specific organization.
Args: publisher_uri: URI of the publisher limit: Maximum number of datasets to return (default: 10)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| publisher_uri | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of behavioral disclosure. It does not state whether the tool is read-only, what side effects exist, or how it handles pagination, errors, or large results. The mention of 'limit' implies some control but lacks explanation of behavior beyond defaults.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise yet informative, with a clear one-sentence purpose followed by parameter documentation. Every sentence is necessary and front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should at least hint at the return format (e.g., list of dataset objects). It does not describe the output structure, pagination behavior, or any side effects. Given the tool's relative simplicity, the description is incomplete for an agent to fully understand what it returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds meaning for both parameters: 'publisher_uri' as 'URI of the publisher' and 'limit' as 'Maximum number of datasets to return (default: 10)'. This compensates for the missing schema descriptions, though it could provide more detail on URI format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get datasets') and the filtering criterion ('published by a specific organization'), which is distinct from sibling tools like list_datasets and search_datasets. The verb 'Get' and resource 'datasets' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives (e.g., search_datasets, list_datasets). The description does not mention when not to use it or provide context for choosing this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_datasetsB
List datasets available in the Spanish Government Open Data Portal.
Args: limit: Maximum number of datasets to return (default: 10)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only states it 'list datasets,' implying a read operation, but omits behavioral details like pagination, ordering, result format, or whether it returns all datasets or a subset. The limit parameter hints at truncation but no further disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences plus an argument definition. The first sentence states the core purpose. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a listing tool, important context is missing: pagination details (offset, cursor), ordering, total count, and whether results are stable. The single parameter is explained but overall completeness is low given no output schema and minimal behavioral disclosure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% (no parameter descriptions in schema). The description compensates by explaining 'limit: Maximum number of datasets to return (default: 10),' adding clear meaning beyond the schema's type and default values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists datasets from the Spanish Government Open Data Portal. It distinguishes from siblings like get_dataset_details (single dataset) and search_datasets (filtered search), but could be more explicit about the scope (e.g., 'all datasets' vs 'latest').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance provided on when to use this tool versus alternatives like search_datasets or get_latest_datasets. The description lacks explicit when-to-use/when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_publishersB
List publishers (organizations) that publish datasets.
Args: limit: Maximum number of publishers to return (default: 10)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only mentions the limit parameter but does not disclose behavior like pagination, sorting, maximum limit, or whether it returns all publishers or only a subset. The description is minimally informative beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with only two sentences, no unnecessary words or repetition. It efficiently states the purpose and explains the single parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description fails to explain what the return value contains (e.g., list of publisher names or details). It also lacks context about the default behavior beyond the parameter default. Incomplete for an agent to understand the full effect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning to the 'limit' parameter beyond the schema's type and default, explaining it as the maximum number of publishers to return. With schema coverage at 0%, this extra detail is valuable, though it is brief.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool lists publishers (organizations) that publish datasets. This is a specific verb and resource, and it distinguishes itself from sibling tools like 'get_publisher_datasets' which retrieves datasets for a given publisher.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_themesA
List all themes/categories available in the data portal.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read operation but provides no additional behavioral details such as pagination, response format, or rate limits. Since annotations are absent, the description could offer more context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no redundancy. Every word is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the agent lacks information about the response structure. However, the tool is simple (0 params) so the description provides adequate high-level understanding. Could mention if results are limited or sorted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so the description inherently covers all parameter semantics. A score of 4 is appropriate as it adds no extra detail beyond what is implicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('list') and the resource ('themes/categories'), with scope ('all'). It effectively distinguishes from sibling tools like list_datasets and list_publishers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention any context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_custom_sparqlC
Run a custom SPARQL query against the datos.gob.es endpoint.
Args: sparql_query: SPARQL query string (must be valid SPARQL)
| Name | Required | Description | Default |
|---|---|---|---|
| sparql_query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states 'run a custom SPARQL query' without explaining potential impacts like query time, result size, read-only nature, rate limits, or output format. This is insufficient for a powerful query tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (two sentences) and front-loaded with the core action. However, the 'Args:' section is informal for MCP. It is concise, but could be more structured (e.g., using standard Markdown).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of custom SPARQL, the lack of output schema, and no annotations, the description is incomplete. It does not mention result format, error handling, or safety considerations, making it harder for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds that the parameter must be a 'valid SPARQL' string, which is partially helpful but obvious from the parameter name. No further constraints, examples, or format details are provided, leaving the parameter largely under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Run' and the resource 'custom SPARQL query against the datos.gob.es endpoint'. It distinguishes from sibling tools like get_dataset_details and list_datasets, which are specific retrieval functions. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus its siblings. It does not mention that this tool should be used only when the specific dataset/list tools are insufficient, nor does it note any prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_datasetsA
Search datasets by keyword in title, description, and keywords/tags.
Args: keyword: Keyword to search for (case-insensitive). limit: Maximum number of datasets to return (default: 10).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| keyword | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions case-insensitive search and a default limit, but does not disclose output format, pagination, error handling, or behavior with empty keyword. This is minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences plus parameter details. It is front-loaded and contains no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately explains the search scope and parameters, but lacks information about return values (since no output schema). Given the tool is a search, knowing what fields are returned would be helpful for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description fully explains both parameters: keyword as a case-insensitive search term, and limit as maximum results with default 10. Since schema description coverage is 0%, the description adds all necessary meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches datasets by keyword in title, description, and keywords/tags. This distinguishes it from siblings like list_datasets (lists all) and get_dataset_details (single dataset).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: for keyword-based search across specific fields. It does not explicitly mention when not to use it or alternatives, but the context is sufficient given sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
10 tool updates
v0.1.0- First observed
get_dataset_details - First observed
get_dataset_distributions - First observed
get_datasets_by_theme - First observed
get_latest_datasets - First observed
get_publisher_datasets - First observed
list_datasets - First observed
list_publishers - First observed
list_themes - First observed
run_custom_sparql - First observed
search_datasets
TDQS
Each tool has a clearly distinct purpose: listing, searching, filtering by theme/publisher, getting details/distributions, and running SPARQL queries. There is no overlap that could cause confusion.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., list_datasets, get_dataset_details). The only exception, run_custom_sparql, still fits the verb_noun style and is clear.
10 tools is well-scoped for the domain of accessing open government data, covering all essential operations without being excessive or too few.
The tool set covers dataset discovery, filtering, details, and distributions, plus listing publishers and themes. A custom SPARQL endpoint adds flexibility. Minor gaps include no drill-down into publisher/theme details, but core workflows are supported.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Ask data questions in natural language. Get SQL, insights, and charts from your databases.
datos.gob.es — Spanish open-data catalogue
List datasets, schemas, run APL queries, and use prompts for exploration, anomalies, and monitoring.
Search and query 1,500+ OECD statistical datasets via SDMX. Keyless.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for querying Spanish government open data APIs including grants, legislation, company registry, statistics, and open data catalog. Enables LLMs to access Spanish public information on-the-fly.265MIT
- AlicenseAqualityAmaintenanceEnables AI assistants to search, explore, and query any CKAN open data portal through natural language, making public datasets accessible without requiring knowledge of the portal's API.2041457MIT
- AlicenseAqualityCmaintenanceEnables discovering, describing, and querying public datasets from Catalunya, including Socrata, IDESCAT, and Open Data BCN portals.22MIT
- AlicenseAqualityCmaintenanceConnects LLMs to over 2,850 datasets from 13 Catalan and Spanish open data portals, enabling natural language search and real-time queries of public data.89221MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AnCode666/datos.gob.es-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server