ayudas-es-mcp
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., "@ayudas-es-mcp¿Qué ayudas abiertas hay para autónomos en Galicia para digitalización?"
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.
ayudas-es-mcp
Servidor MCP que da a una IA acceso a dos fuentes oficiales españolas, sin scraping ni claves:
BDNS / infosubvenciones.es: convocatorias de ayudas y subvenciones de todas las administraciones (Estado, comunidades, diputaciones y ayuntamientos).
BOE (API de datos abiertos): normativa, oposiciones, licitaciones.
Se consultan en directo: no hay base de datos que descargar ni sincronizar, así que funciona al instalarlo y los datos están siempre al día. Lo que añade a la API: recuentos exactos, plazos calculados, separación de las ayudas que de verdad se pueden pedir, lectura de las bases en PDF y un calendario previsto de las convocatorias que se repiten cada año. Y avisa de lo que no sabe en lugar de callarlo.
Instalación
Requiere Node.js 22.13 o superior. No hay que instalar ni configurar nada más.
Claude Code
claude mcp add ayudas -- npx -y ayudas-es-mcpClaude Desktop, Cursor y otros clientes
{
"mcpServers": {
"ayudas": {
"command": "npx",
"args": ["-y", "ayudas-es-mcp"]
}
}
}Related MCP server: MCP-BOE
Herramientas
Herramienta | Qué hace |
| Ayudas por texto, comunidad, beneficiario (autónomo/pyme, particular…), finalidad, instrumento y administración. Total exacto + muestra con estado, plazo y presupuesto. |
| Recuentos y rankings exactos por comunidad, finalidad, beneficiario, instrumento, administración, órgano, mes o año. |
| Calendario previsto: ayudas que se convocan cada año y que, por su histórico desde 2021, saldrán en los próximos días, o que este año se están retrasando. Con su fiabilidad medida. |
| Ficha completa: plazo interpretado, extracto oficial (requisitos, cuantía, cómo pedirla), bases, documentos e historial si se convoca cada año. |
| Lee el PDF de las bases: devuelve el texto literal de sus apartados (cuantía, plazo, beneficiarios, requisitos, documentación, criterios…) con el número de página; o las páginas o palabras que se pidan. |
| Boletín para un perfil: ayudas nuevas sin cerrar + BOE sobre sus temas. |
| De dónde salen los datos, estado de la caché y del calendario. |
| Publicaciones del BOE de un día, filtrables por palabras y sección. |
| Búsqueda en el BOE en un rango de fechas por palabras y/o sección ( |
| Texto de una disposición del BOE. |
Todas están marcadas como de solo lectura (anotaciones MCP), así que los clientes que lo admiten no piden confirmación en cada llamada. El servidor envía además unas instrucciones al modelo: qué herramienta usar para contar o para leer requisitos, y que cite el código y los avisos en lugar de completar con datos inventados.
Prompts
Prompt | Qué hace |
| A partir de un perfil («autónoma, peluquería en Bilbao»): ayudas abiertas, las que suelen salir pronto y la cuantía y requisitos de las mejores, en una tabla. |
| Ficha de una convocatoria por su código: plazo, cuantía, requisitos y documentación, citando página. |
En Claude Desktop y Claude Code aparecen como comandos (/).
Ejemplos de preguntas
«¿Qué ayudas abiertas hay para autónomos en Galicia para digitalización?»
«¿Qué ayudas para pymes del País Vasco suelen salir en los próximos dos meses?»
«¿Hay alguna ayuda que salga todos los años por estas fechas y este año aún no haya salido?»
«¿Qué comunidad ha convocado más ayudas de vivienda este año?»
«¿Cuántas ayudas para pymes se han convocado cada mes desde mayo?»
«Hazme el resumen semanal para una pyme de hostelería en Andalucía.»
«¿Ha salido alguna oposición de enfermería en el BOE este mes?»
Cómo funciona
Cada pregunta se traduce a consultas a la API oficial de la BDNS:
Totales exactos con una sola petición. La API devuelve el número de coincidencias de una búsqueda sin descargarla; un recuento simple cuesta una petición, y un ranking, una por grupo.
Búsqueda por palabras en dos pasos. La API busca subcadenas («tala» encuentra «instalación»). Se le envía la raíz de cada palabra y sobre lo que devuelve se aplican las reglas de palabra (ver abajo). Comprobado: da exactamente lo mismo que descargar todo el listado y filtrarlo (8 de 8 casos, incluidos prefijos, siglas y títulos en euskera).
Detalle solo de lo que se muestra: plazo, presupuesto y tipo están en la ficha de cada convocatoria, que se pide al enseñarla.
Ritmo prudente: como mucho una petición por segundo a la BDNS, que bloquea las ráfagas.
Caché temporal
Las respuestas se guardan en ~/.cache/ayudas-es-mcp/cache.sqlite (o solo en memoria si no se
puede escribir), con una caducidad según lo que puede cambiar:
Dato | Se guarda |
Totales y listados de un periodo que acabó hace más de 7 días | 1 semana |
Totales y listados que incluyen días recientes | 1 hora |
Ficha con plazo provisional (pendiente de publicar el extracto) | 1 día |
Ficha de una convocatoria cerrada o sin solicitud | 1 mes |
Otras fichas | 1 semana |
Texto extraído de un PDF | 1 mes |
Calendario previsto (solo las series calculadas, no el histórico) | 1 semana |
No es una copia de la BDNS: solo guarda lo ya preguntado. Dos preguntas iguales a la vez
comparten la petición. npx ayudas-es-mcp --vaciar-cache la borra.
Tiempos
Medidos con la caché vacía, a una petición por segundo:
Consulta | Primera vez | Repetida |
Buscar «digital*» para pymes, 3 abiertas | ~4 s | inmediata |
Buscar en Galicia, 10 abiertas | ~12 s | ~1 s |
Recuento por mes, pymes desde mayo | ~7 s | inmediata |
Recuento por órgano de «euskera» en el País Vasco (todo el histórico) | ~2 s | inmediata |
Ranking por comunidad, vivienda en 2026 | ~21 s | inmediata |
Calendario previsto | 2-3 min, una vez por semana y en segundo plano | inmediata |
El calendario necesita el histórico desde 2021 (~40 peticiones): se prepara en segundo plano la
primera vez que se usa una herramienta de ayudas, no al arrancar, y entretanto
ayudas_previstas dice que se está preparando en lugar de responder «no hay».
Cómo se evita dar información errónea
Una herramienta que se equivoca con seguridad es peor que ninguna. Por eso:
Riesgo | Qué se hace |
Decir «no hay ayudas» cuando solo la búsqueda no encontró | La respuesta vacía lo advierte: la búsqueda es por palabras del título y no prueba que no existan |
Contar sobre una muestra |
|
Ayudas que ya no se pueden pedir | Distingue cerradas, sin solicitud (concesión directa) y abiertas; las instrumentales (72 % de lo reciente) se separan |
Sumar presupuestos parciales | La BDNS no da el presupuesto en bloque, así que los recuentos no lo suman; el de cada convocatoria está en su ficha |
Mirar solo los últimos 90 días sin decirlo | Lo indica y cuenta cuántas más hay registradas antes con los mismos filtros |
Descargar miles de filas para una pregunta | Si excluir concesiones directas exige descargar más de 30.000 filas, pide acotar en vez de hacerlo |
«Hoy» equivocado de madrugada | Las fechas (plazos, BOE de hoy) van en hora peninsular española, no en UTC |
Una fuente lenta o caída | Cada petición tiene tiempo máximo y reintentos; un fallo puntual no tumba la respuesta entera, se avisa de lo que falta |
Calendario aún sin preparar | Dice que se está preparando, en vez de «0 ayudas recurrentes» |
Calendario sobre ayudas que no son una sola | Marca las series en las que el órgano registra varias al año con el mismo título |
Citar de un PDF algo que no está | Devuelve texto literal con página, distingue apartado de mención y avisa si no localiza un tema en lugar de inventarlo |
Texto de un PDF con instrucciones | Se entrega marcado como dato literal de un documento externo |
Código que no existe | Error inmediato y claro, no un reintento de 30 s |
Lectura de las bases (PDF)
ayuda_texto descarga el PDF de la convocatoria y devuelve texto literal con página, sin
resumir ni usar IA. Solo se hace bajo demanda y el texto se guarda en la caché: cada documento
se descarga y procesa una sola vez.
Elige el documento por su nombre: prefiere «texto íntegro» o «bases» a un anexo, formulario o acuerdo de aprobación; si el elegido no deja localizar apartados, prueba con los siguientes más probables. Si el elegido no se puede leer (un Word, demasiado grande), pasa al siguiente y lo dice. La respuesta lista los demás para poder pedirlos (
documento).Localiza apartados por su título (Artículo, Base, «Primero.-», «6. Plazo…», MAYÚSCULAS), descartando frases partidas por el ancho de página, la protección de datos y los anexos con formularios. Distingue apartado (hay un título que corresponde) de mención (solo se nombra el tema), y lo dice.
Con
buscarypaginasse puede ir directamente a una palabra o a unas páginas cuando los apartados no se reconocen.Cantidades en euros del documento, cada una con la frase en la que aparece.
El contenido del PDF se entrega como dato, no como instrucciones: se marca como texto literal de un documento externo.
Probado con 15 convocatorias reales (ayuntamientos, diputaciones, universidades): localiza la cuantía en 15, el plazo en 14, los beneficiarios en 14 y los requisitos en 14.
Límites: PDF escaneados sin capa de texto (se avisa; no hay OCR), documentos Word u otros formatos, y archivos de más de 25 MB o 200 páginas (se leen las primeras). Los apartados se detectan con reglas: comprueba siempre la página citada.
Plazo real de cada convocatoria
La BDNS solo trae fechas de solicitud en una parte de las convocatorias. En el resto el plazo viene en texto, y se interpreta de forma determinista (sin LLM):
El texto dice | Resultado |
Tipo «Concesión directa - instrumental» | ⚫ no se puede solicitar: es el registro de una ayuda ya concedida a un beneficiario concreto (sus fechas son de ejecución) |
«Hasta el 30 de noviembre de 2026», «31 de decembro», «1/3/27» | 🟢/🔴 según la fecha (castellano, gallego y catalán) |
«10 días hábiles desde el día siguiente a la publicación» y el extracto ya está publicado | 🟢 fecha de fin calculada con el calendario |
Lo mismo, pero el extracto aún no se ha publicado | 🟡 pendiente de publicar |
«Sin plazo de solicitud», «no procede», «nominativa»… | ⚫ no se puede solicitar |
Varios plazos, inicio no estándar («a partir del quinto día hábil»…) | ⚪ consultar (no se arriesga una fecha) |
Medido sobre 1.004 convocatorias recientes con detalle: el 72 % son instrumentales (antes aparecían como «abiertas» por tener fechas), y solo el 2 % queda como «consultar».
El cálculo sigue la Ley 39/2015, art. 30: días hábiles sin sábados, domingos ni festivos; meses
hasta el mismo día del mes de vencimiento; si el último día es inhábil, el siguiente hábil.
Los festivos nacionales y autonómicos vienen de Nager.Date (los de la
comunidad cuando todas las regiones de la convocatoria son de una sola); los locales no se
incluyen, por eso la respuesta dice siempre que es un cálculo y cómo se ha hecho.
Pruebas con casos comprobados a mano en src/plazos.test.ts.
Calendario previsto (ayudas recurrentes)
Se agrupan las convocatorias del mismo órgano con el mismo título sin años, fechas ni ediciones («XIV Premios X 2026» ≈ «XV Premios X 2027»). Las convocadas en 3 o más años forman una serie con su fecha típica de registro (mediana circular, para que 28-dic y 3-ene estén cerca) y su variación. Se excluyen las nominativas, directas y convenios, que no se pueden solicitar.
Fiabilidad medida (prever 2025 usando solo 2021-2024 y compararlo con lo ocurrido):
Confianza | Error mediano | A ±15 días |
Alta (4+ años, variación ≤ 15 días) | 15 días | 51 % |
Media | 26 días | 35 % |
Baja (oculta por defecto) | 55 días | 15 % |
Además, solo el 59 % de las series activas en 2024 volvió a convocarse en 2025 con el mismo título (otras cambian de nombre o dejan de convocarse). La evaluación se recalcula con cada calendario y la herramienta la muestra, para que la IA pueda decir cuánto fiarse.
Búsqueda por palabras
Sobre el título (y el título cooficial en euskera, catalán o gallego), sin tildes, con límite
de palabra («tala» no coincide con «instalación»), singular/plural («pyme» ↔ «pymes») y
prefijo con * («digital*» → digitalización, digitales). No es semántica: «digitalización»
no encuentra «transformación tecnológica»; para temas amplios conviene usar finalidad.
Opciones
npx ayudas-es-mcp --help
npx ayudas-es-mcp --vaciar-cache
npx ayudas-es-mcp --versionVariables: AYUDAS_CACHE (ruta de la caché), BDNS_INTERVALO_MS (ritmo de peticiones, 1000
por defecto) y AYUDAS_TIMEOUT_MS (tiempo máximo por petición, 30000 por defecto).
Desarrollo
git clone … && cd ayudas-es-mcp
npm install
npm run build
npm test # pruebas sin red: plazos, lectura de documentos, fechas, caché
npm run test:live # búsqueda en directo frente a la referencia + prueba de extremo a extremoLimitaciones conocidas
Estado de las ayudas. La BDNS no indica si una convocatoria está abierta (su campo
abiertoviene siempre afalsey sus filtros de abierta/tipo se ignoran en silencio): se deduce del plazo interpretado. Los plazos calculados no incluyen festivos locales.Concesiones directas. Solo se sabe con seguridad cuáles son con el detalle de cada convocatoria. En búsquedas y recuentos, el filtro
excluir_directaslas estima por el título: precisión ~97 %, detecta ~67 %. Los recuentos sin ese filtro las incluyen y lo advierten. Excluirlas en periodos muy largos sin otros filtros exigiría descargar decenas de miles de filas, así que se pide acotar.Presupuestos y ayudas antiguas. El presupuesto y el plazo solo constan en la ficha de cada convocatoria, así que los recuentos no suman presupuestos y la búsqueda no localiza ayudas registradas hace meses que sigan abiertas (avisa de cuántas hay antes del periodo).
Rankings la primera vez. Agrupar por comunidad o finalidad cuesta una petición por grupo (~20 s); repetido, sale de la caché.
El calendario predice el registro en la BDNS, no el plazo de solicitud, y no detecta una ayuda que cambie de nombre. Acierta a ±15 días en el 35-51 % de los casos (ver arriba).
Comunidad. ~2 % de las convocatorias no tienen comunidad autónoma asignada en la BDNS.
Mismo título, distintas ayudas. Hay órganos que registran decenas de ayudas individuales bajo un mismo título; no son duplicados, así que no se eliminan. Cuando se descargan las filas, los recuentos dan también los «títulos distintos».
Lectura de PDF. Sin OCR (los escaneados no se leen) y por reglas, no por IA: ver arriba.
Varias instancias. El límite de una petición por segundo es por proceso: varios clientes abiertos a la vez suman su ritmo (comparten, eso sí, la caché en disco).
Datos y licencia
BDNS. Origen de los datos: Intervención General de la Administración del Estado. Se reutilizan según su aviso legal, que permite el uso comercial y no comercial citando la fuente y sin desnaturalizar la información. Este servidor solo consulta convocatorias, no datos personales de beneficiarios.
BOE. API de datos abiertos de la Agencia Estatal Boletín Oficial del Estado.
Festivos. Nager.Date.
Proyecto independiente: no está afiliado a la IGAE, a la Agencia Estatal BOE ni a ningún organismo público, ni cuenta con su respaldo. La información puede cambiar o corregirse en la fuente: compruébala siempre en la ficha oficial antes de presentar una solicitud.
Available Tools
10 toolsayuda_detalleDetalle de una convocatoria de ayudaBRead-onlyIdempotent
Ficha completa de una convocatoria de la BDNS: estado, plazo, presupuesto, beneficiarios, bases reguladoras, extracto oficial (requisitos, cuantía, cómo solicitarla) y documentos.
| Name | Required | Description | Default |
|---|---|---|---|
| codigo | Yes | Código BDNS, p. ej. 932105 (lo devuelve ayudas_buscar) | |
| max_caracteres_extracto | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds useful context about the richness of the payload, but says nothing about error behavior for an unknown code, rate limits, or auth needs.
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?
A single, front-loaded sentence that lists the returned content categories with no filler. Effective and appropriately sized, though the long enumerations are dense.
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 carries the burden of describing returns and does list the main content fields. However, it omits the undocumented max_caracteres_extracto parameter and gives no structural sense of the response, leaving gaps for a detail endpoint.
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 coverage is only 50%: the 'codigo' parameter is documented in the schema, but 'max_caracteres_extracto' (500–30000) has no description anywhere. The description alludes to the 'extracto oficial' but never explains the character-limit parameter or its effect, so it fails to compensate for the coverage gap.
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 states a specific resource (a BDNS 'convocatoria') and enumerates exactly what the fact sheet contains — estado, plazo, presupuesto, beneficiarios, bases reguladoras, extracto, documentos. This clearly distinguishes a detail-retrieval tool from the search-oriented siblings, though the differentiation is implicit rather than stated against ayudas_buscar.
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?
Usage is implied: fetch the full record for one convocatoria by its code. The link to ayudas_buscar appears only in the schema parameter description ('lo devuelve ayudas_buscar'), not in the tool description, so there is no explicit when-to-use / when-not or named alternative here.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ayudas_buscarBuscar ayudas y subvencionesARead-onlyIdempotent
Busca convocatorias de ayudas y subvenciones de cualquier administración española (Estado, comunidades, diputaciones y ayuntamientos), registradas en la Base de Datos Nacional de Subvenciones. Devuelve plazo, presupuesto, beneficiarios y estado. Ejemplo: ayudas de digitalización para autónomos en Galicia → texto 'digital*', comunidad 'galicia', beneficiario 'autonomo-o-pyme'. Para contar o comparar usa ayudas_recuento.
| Name | Required | Description | Default |
|---|---|---|---|
| desde | No | Registradas desde esta fecha (YYYY-MM-DD) | |
| hasta | No | Registradas hasta esta fecha (YYYY-MM-DD) | |
| texto | No | Palabras que deben aparecer todas en el título (también en euskera, catalán o gallego). Admite singular/plural; con '*' busca por prefijo (p. ej. 'digital*'). | |
| limite | No | Por defecto 10 | |
| comunidad | No | Comunidad autónoma (incluye sus provincias y municipios) | |
| finalidad | No | Finalidad o sector de la ayuda | |
| instrumento | No | Tipo de ayuda: subvención, préstamo, garantía... | |
| beneficiario | No | 'autonomo-o-pyme' = autónomos, pymes y personas con actividad económica; 'entidad-sin-actividad-economica' = asociaciones, fundaciones, entidades públicas; 'particular' = personas físicas sin actividad económica. | |
| solo_abiertas | No | Descartar las que ya han cerrado y las que no admiten solicitud (concesión directa o nominativa). Por defecto true. | |
| administracion | No | Nivel de la administración convocante | |
| excluir_directas | No | Excluir las concesiones directas y nominativas (no se pueden solicitar). Usa el tipo exacto cuando se conoce y, si no, una estimación por el título (precisión ~97 %, detecta ~67 %). | |
| incluir_estatales | No | Con 'comunidad', incluir también las ayudas de ámbito nacional. Por defecto true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds value beyond that by disclosing the upstream data source (BDNS) and naming the returned fields (plazo, presupuesto, beneficiarios, estado) — useful since no output schema exists. It does not describe ordering, pagination or result-volume behavior, keeping it short of a 5.
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?
Front-loaded with the purpose, followed by returns, a worked example, and the alternative tool — a logical order with no filler sentences. It is slightly dense but every sentence carries information an agent needs.
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 12-parameter search tool with no output schema and full schema coverage, the description supplies the missing pieces: data source, return fields, an example, and sibling routing, while annotations carry the safety profile. Minor gaps remain around pagination/default limit behavior, but nothing critical is missing.
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 100%, so the baseline would be 3. The description exceeds that by giving a concrete parameter-combination example that clarifies how texto, comunidad and beneficiario are meant to be used together, adding meaning beyond the individual field descriptions.
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?
States a specific verb (busca) and resource (convocatorias de ayudas y subvenciones), and defines the scope precisely: any Spanish administration, sourced from the Base de Datos Nacional de Subvenciones. It also names the sibling ayudas_recuento for the counting/comparison case, so an agent can distinguish it without opening a schema.
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?
Explicitly routes the counting/comparison case to ayudas_recuento and supplies a concrete worked example mapping a real request to parameters (texto 'digital*', comunidad 'galicia', beneficiario 'autonomo-o-pyme'). It does not cover when NOT to use this tool (e.g. retrieving a single grant, which ayuda_detalle presumably handles), so it is strong but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ayudas_previstasCalendario previsto de ayudasARead-onlyIdempotent
Ayudas que se convocan todos los años y que, según su histórico en la BDNS desde 2021, saldrán en los próximos días, o que este año se están retrasando. Sirve para preparar la documentación antes de que se abra el plazo. Es una PREVISIÓN estadística a partir de las fechas de registro de años anteriores, no un anuncio oficial. Ejemplo: '¿qué ayudas para pymes del País Vasco suelen salir en los próximos 2 meses?' → comunidad 'pais-vasco', beneficiario 'autonomo-o-pyme', dias 60.
| Name | Required | Description | Default |
|---|---|---|---|
| dias | No | Horizonte en días. Por defecto 60 | |
| texto | No | Palabras que deben aparecer todas en el título (también en euskera, catalán o gallego). Admite singular/plural; con '*' busca por prefijo (p. ej. 'digital*'). | |
| limite | No | Por defecto 15 | |
| comunidad | No | Comunidad autónoma (incluye sus provincias y municipios) | |
| finalidad | No | Finalidad o sector de la ayuda | |
| instrumento | No | Tipo de ayuda: subvención, préstamo, garantía... | |
| beneficiario | No | 'autonomo-o-pyme' = autónomos, pymes y personas con actividad económica; 'entidad-sin-actividad-economica' = asociaciones, fundaciones, entidades públicas; 'particular' = personas físicas sin actividad económica. | |
| administracion | No | Nivel de la administración convocante | |
| incluir_estatales | No | Con 'comunidad', incluir también las ayudas de ámbito nacional. Por defecto true. | |
| incluir_retrasadas | No | Incluir las que ya deberían haber salido este año y no constan. Por defecto true. | |
| incluir_baja_confianza | No | Incluir las de fechas muy irregulares (error típico de ~2 meses). Por defecto false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/openWorld/non-destructive, so the safety profile is settled. The description adds genuinely useful domain context the annotations cannot: it is a statistical forecast with inherent error, not an official announcement, which sets correct expectations for the agent and the user. Confidence/error behavior is also surfaced in the incluir_baja_confianza param.
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?
Front-loads the purpose, then the use case, then the critical caveat, then a concrete example. No filler; every sentence adds selection or interpretation value.
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 an 11-parameter, all-optional, no-output-schema tool, the description supplies scope, intent, caveat and example, while annotations carry the safety profile and the schema carries parameter detail. Nothing needed to select or invoke it correctly is missing.
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 100%, so all 11 parameters are already documented with defaults, enums and semantics. The example supplies a light mapping from intent to parameters (dias 60, beneficiario, comunidad), but adds little beyond what the schema already states. Baseline 3 is appropriate.
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?
States a specific resource (ayudas/grants) and a distinctive scope: grants that recur annually and, per BDNS history since 2021, are due soon or are delayed. Cleverly distinguishes itself from a plain search tool by framing the output as a forecast calendar rather than a listing.
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?
Gives a clear use case ('preparar la documentación antes de que se abra el plazo') and a worked example mapping a natural-language query to specific parameters (comunidad, beneficiario, dias). It does not explicitly name a sibling like ayudas_buscar as the alternative for already-open grants, relying on the 'previsión, no anuncio oficial' framing instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ayudas_recuentoContar y comparar ayudasARead-onlyIdempotent
Recuentos y rankings EXACTOS de convocatorias de ayudas, agrupados por comunidad, finalidad, beneficiario, instrumento, administración, órgano convocante, mes o año. Ejemplos: '¿qué comunidad convoca más ayudas de vivienda este año?' → agrupar_por 'comunidad', finalidad 'vivienda', desde '2026-01-01'; '¿cuántas ayudas para pymes ha habido cada mes?' → agrupar_por 'mes', beneficiario 'autonomo-o-pyme'. Agrupar por comunidad o finalidad hace una consulta a la BDNS por grupo: unos 20 s la primera vez, inmediato al repetirla.
| Name | Required | Description | Default |
|---|---|---|---|
| desde | No | Registradas desde esta fecha (YYYY-MM-DD) | |
| hasta | No | Registradas hasta esta fecha (YYYY-MM-DD) | |
| texto | No | Palabras que deben aparecer todas en el título (también en euskera, catalán o gallego). Admite singular/plural; con '*' busca por prefijo (p. ej. 'digital*'). | |
| limite | No | Grupos a mostrar. Por defecto 20 | |
| comunidad | No | Comunidad autónoma (incluye sus provincias y municipios) | |
| finalidad | No | Finalidad o sector de la ayuda | |
| agrupar_por | Yes | ||
| instrumento | No | Tipo de ayuda: subvención, préstamo, garantía... | |
| beneficiario | No | 'autonomo-o-pyme' = autónomos, pymes y personas con actividad económica; 'entidad-sin-actividad-economica' = asociaciones, fundaciones, entidades públicas; 'particular' = personas físicas sin actividad económica. | |
| administracion | No | Nivel de la administración convocante | |
| excluir_directas | No | Excluir las concesiones directas y nominativas (no se pueden solicitar). Usa el tipo exacto cuando se conoce y, si no, una estimación por el título (precisión ~97 %, detecta ~67 %). | |
| incluir_estatales | No | Con 'comunidad', incluir también las ayudas de ámbito nacional. Por defecto true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, non-destructive, idempotent, open-world behavior. The description adds useful operational context: grouping by comunidad or finalidad triggers one BDNS query per group, taking about 20 seconds initially and being immediate on repeat.
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 front-loaded with purpose, then examples, then performance. Every sentence carries useful information and there is no filler.
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 12 parameters and no output schema, the description does well by explaining that it returns exact counts/rankings grouped by dimension. It could be slightly more explicit about the returned structure or grouping limits, but it is sufficient for correct invocation.
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 coverage is high at 92%, so most parameter meaning is already documented. The description still adds value by giving example parameter combinations and clarifying the grouping behavior that drives latency.
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?
States a specific verb and resource: exact counts and rankings of grant calls, grouped by named dimensions. It clearly distinguishes aggregate counting from sibling search/detail tools, and the examples make the intended output obvious.
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?
Provides explicit example questions and maps them to concrete parameters, giving clear context for when to use the tool. It does not name alternatives such as ayudas_buscar or give when-not-to-use guidance, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ayuda_textoLeer el documento de una convocatoriaARead-onlyIdempotent
Lee el PDF de las bases o de la convocatoria (el texto completo que la BDNS no resume) y devuelve el texto LITERAL de sus apartados (cuantía, plazo, beneficiarios, requisitos, documentación, gastos, criterios…) con el número de página, o de las palabras o páginas que se pidan. Úsala cuando haga falta la cuantía por beneficiario, los requisitos o la documentación, que no constan en los datos estructurados. Los apartados se localizan por sus títulos con reglas, no con IA: comprueba siempre la página citada.
| Name | Required | Description | Default |
|---|---|---|---|
| temas | No | Apartados a localizar. Por defecto: cuantia, plazo, beneficiarios, requisitos, documentacion. cuantia = Cuantía, importe y financiación; plazo = Plazo de solicitud; beneficiarios = Beneficiarios; requisitos = Requisitos y condiciones; documentacion = Documentación a presentar; gastos = Gastos o actuaciones subvencionables; criterios = Criterios de valoración; presentacion = Lugar y forma de presentación; justificacion = Justificación y pago; objeto = Objeto y finalidad | |
| buscar | No | Palabras que deben aparecer todas en una página; devuelve el pasaje y su página. | |
| codigo | Yes | Código BDNS de la convocatoria | |
| paginas | No | Páginas a leer completas, p. ej. '3' o '3-5' (máximo 4 páginas). | |
| documento | No | Id del documento (de la lista que devuelve esta herramienta). Por defecto, el texto de la convocatoria. | |
| max_caracteres | No | Por defecto 9000 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/openWorld, so the safety profile is covered. The description adds genuinely non-obvious behavior beyond them: sections are located by rule-based title matching, NOT AI, and the user is told to 'comprueba siempre la página citada' — a caveat about extraction reliability that structured fields cannot convey.
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?
Three sentences, front-loaded with purpose then usage condition then a reliability caveat. Dense but each sentence carries distinct information; slightly long with the enumerated apartados list duplicating what the schema already enumerates.
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?
No output schema exists, so the description must describe the return shape — it does ('texto LITERAL de sus apartados... con el número de página') and notes that documento ids come from this same tool's output. Combined with the schema covering the 4-page and 30000-char limits, an agent has enough to call it correctly; only the exact return format details are left implicit.
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 100%, so every parameter (temas, buscar, codigo, paginas, documento, max_caracteres) is already documented in the schema. The description only echoes the default sections and the words/pages mode in prose, adding little beyond the schema's own descriptions. Baseline 3 applies.
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?
States a specific verb (lee/devuelve) on a specific resource (el PDF de las bases o convocatoria) and specifies the scope: el texto LITERAL de sus apartados con el número de página. It explicitly carves out the niche versus structured data ('el texto completo que la BDNS no resume'), so an agent can distinguish it from ayuda_detalle without opening either schema.
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?
Gives an explicit trigger condition ('Úsala cuando haga falta la cuantía por beneficiario, los requisitos o la documentación, que no constan en los datos estructurados'), clearly signaling when this tool beats the structured-data siblings. It does not name the specific alternative tool (e.g. ayuda_detalle), so routing is clear but not fully enumerated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
boe_buscarBuscar en el BOE por rango de fechasARead-onlyIdempotent
Busca publicaciones del BOE entre dos fechas (máximo 31 días) cuyo título, departamento o epígrafe contenga todas las palabras indicadas, opcionalmente en ciertas secciones. Ejemplos: oposiciones de enfermería → palabras ['enfermer*'], secciones ['2B']; licitaciones de software → palabras ['software'], secciones ['5A'].
| Name | Required | Description | Default |
|---|---|---|---|
| desde | Yes | Fecha en formato YYYY-MM-DD | |
| hasta | No | YYYY-MM-DD. Por defecto, hoy. | |
| palabras | No | Palabras que deben aparecer todas | |
| secciones | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds genuine non-obvious behavior: the hard 31-day maximum range and the fact that all words must match (AND, not OR) across title/department/epígrafe — both are error-preventing details absent from the structured fields.
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?
Two sentences, front-loaded with the core action and constraint (date range, max 31 days) before the qualifiers. The second sentence delivers concrete examples with no filler; every clause earns its place.
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 4 params, no output schema, and rich annotations, the description covers the key constraints an agent needs (range cap, AND semantics, optional sections). The one gap is that it never says what is returned (list of publications, ordering/pagination), which matters since there is no output schema.
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 coverage is 75%, but the description still adds meaning beyond it: matching is conjunctive ('todas las palabras'), which fields are searched, and that sections are optional. The example 'enfermer*' reveals wildcard/partial matching that the schema does not document.
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?
States a specific verb ('Busca') and resource ('publicaciones del BOE') and describes the search scope (title, department, epígrafe) plus the AND semantics of the keywords. The purpose is unambiguous, but it never explicitly differentiates itself from siblings like boe_sumario_dia or boe_documento, which the 5-level requires.
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 worked examples ('oposiciones de enfermería', 'licitaciones de software') imply intended scenarios, but they primarily illustrate parameter patterns rather than routing. There is no explicit statement of when to prefer this tool over boe_sumario_dia or boe_documento, so guidance remains implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
boe_documentoTexto de una disposición del BOEARead-onlyIdempotent
Devuelve el texto plano de una publicación del BOE a partir de su identificador (p. ej. BOE-A-2026-21317), obtenido con boe_sumario_dia o boe_buscar.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Identificador, p. ej. BOE-A-2026-21317 | |
| max_caracteres | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that it returns plain text, which is useful, but does not mention rate limits, truncation behavior, or what happens for large documents.
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?
A single efficient sentence that front-loads the verb and resource. It is appropriately sized and wastes no 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 tool that can return large documents (max 50,000 characters) with no output schema, the description should explain return format, truncation, or size limits. Combined with incomplete parameter documentation, it leaves the agent guessing about the output.
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 coverage is 50%. The description explains the 'id' parameter format with an example, but gives no information about 'max_caracteres' — its purpose, default, or truncation behavior — leaving a significant gap.
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?
States a specific verb (Devuelve) and resource (texto plano de una publicación del BOE) and identifies the input type. It explicitly names boe_sumario_dia and boe_buscar as the sources of the identifier, distinguishing it from those siblings.
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 context by telling the agent where the required identifier comes from (boe_sumario_dia or boe_buscar), which routes the agent correctly. However, it does not state when not to use this tool or what happens with invalid identifiers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
boe_sumario_diaSumario del BOE de un díaARead-onlyIdempotent
Lista las publicaciones del BOE de un día concreto (por defecto, hoy), con filtro opcional por palabras clave y por sección. El BOE no se publica los domingos.
| Name | Required | Description | Default |
|---|---|---|---|
| fecha | No | YYYY-MM-DD. Por defecto, hoy. | |
| palabras | No | Palabras que deben aparecer todas. Con '*' final, prefijo: 'enfermer*'. | |
| secciones | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and non-destructive behavior, and the description is consistent with them. It adds context beyond the annotations: the today default and the Sunday non-publication rule, both operationally relevant for shaping a query.
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?
Two tightly written sentences with zero waste, front-loading the core action and following with the filters and the Sunday caveat. Every clause carries information the agent needs.
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 read-only list tool whose safety profile is covered by annotations, but with no output schema the description never indicates what a returned 'publicación' contains or how results relate to boe_documento for follow-up. This is a modest gap for a summarization tool.
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 coverage is 67% and the schema itself richly documents the parameters, including the YYYY-MM-DD pattern, the '*' prefix semantics, and the full section enum. The description only restates the filters at a high level and confirms the today default, adding little beyond what the schema already provides.
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?
States a specific verb ('Lista') and resource ('publicaciones del BOE') scoped to a single day, with optional keyword and section filters. It is clearly distinct from siblings like boe_buscar (search) and boe_documento (document lookup), though it doesn't name those alternatives explicitly.
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?
Gives a useful default ('por defecto, hoy') and a real usage constraint ('El BOE no se publica los domingos'), which tells the agent when a day query is futile. However, it offers no explicit guidance on when to prefer this over boe_buscar for the same retrieval task.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estado_datosEstado de los datosARead-onlyIdempotent
De dónde salen los datos: consulta en directo a la BDNS y al BOE, estado de la caché temporal y del calendario previsto.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered structurally. The description adds real context beyond that by disclosing that it performs live queries against external sources (BDNS, BOE) and reports on a temporary cache and a planned calendar. It does not say anything about latency, external-source availability, or failure behavior, so it does not reach a 4.
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?
A single front-loaded sentence with no filler, opening with the core question ('De dónde salen los datos') and then listing the three components. Efficient and easy to scan; it could arguably break the three status areas out slightly more for faster parsing.
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?
There is no output schema, so the description has to convey what comes back, and it does so by naming the three reported areas: live source query status, cache state, and the planned calendar. For a zero-parameter status tool this is close to complete; only the response shape (e.g., per-source flags versus free text) remains unspecified.
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 tool takes zero parameters, so per the baseline there is nothing for the description to disambiguate. Schema description coverage is 100% and the empty object schema is unambiguous. No parameter information is missing.
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 names a concrete resource (data provenance/state) and enumerates the three things inspected: live BDNS and BOE queries, temporary cache state, and the planned calendar. That is enough for an agent to tell it apart from the sibling retrieval tools (boe_*, ayudas_*), which fetch content rather than report system status. It stops short of 5 because the verb is nominal ('estado') rather than an explicit action.
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?
Usage is implied: this is plainly a diagnostic/freshness-check tool, and a reader can infer it is called to verify where data stands before relying on other tools. However, no explicit when-to-use condition, prerequisite, or alternative is stated, and none of the siblings is named as a contrasting option. Implied-but-not-stated guidance lands at 3.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novedades_perfilNovedades para un perfil (ayudas + BOE)BRead-onlyIdempotent
Resumen de lo publicado en los últimos días que le interesa a un perfil concreto: ayudas nuevas que no han cerrado y publicaciones del BOE sobre sus temas. Pensado como boletín semanal para un autónomo, una pyme, una gestoría o una asociación.
| Name | Required | Description | Default |
|---|---|---|---|
| dias | No | Por defecto 7 | |
| palabras | No | Temas del perfil, p. ej. ['hostelería'] o ['vehículo eléctrico']. Se busca cada uno por separado. | |
| comunidad | No | Comunidad autónoma (incluye sus provincias y municipios) | |
| finalidad | No | Finalidad o sector de la ayuda | |
| beneficiario | No | 'autonomo-o-pyme' = autónomos, pymes y personas con actividad económica; 'entidad-sin-actividad-economica' = asociaciones, fundaciones, entidades públicas; 'particular' = personas físicas sin actividad económica. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: only non-closed ayudas and only items within the recent day window. It does not say how results are ordered or whether there are caps on returned items.
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?
Two sentences, front-loaded with what is returned and the scope constraint (open ayudas, recent days). The closing audience list (autónomo, pyme, gestoría, asociación) is somewhat expendable but cheaply sets the context.
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?
No output schema, and with five all-optional parameters the description never states the default behavior when nothing is supplied (e.g. does an empty 'palabras' return all topics for the last 7 days?). It is adequate for the aggregation concept but leaves the zero-argument invocation ambiguous.
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 100% and three parameters carry enums with documented meanings, so the schema does the heavy lifting. The description reinforces that 'palabras' means the profile's topics and that results cover both sources, but adds no format or default-behavior detail beyond the schema.
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?
States a specific combined resource: a digest of newly published ayudas (only those still open) plus BOE items matching a profile's topics. This is clearly distinguishable from siblings like ayudas_buscar or boe_sumario_dia, which are single-source lookup tools. It stops short of explicitly naming those siblings as the alternative, so it is clear but not maximally differentiated.
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?
'Pensado como boletín semanal' implies a recurring digest use case, which is useful context. However, it gives no explicit when-not guidance nor points to ayudas_buscar/boe_buscar for targeted single-source queries, leaving the agent to infer the boundary.
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.
10 tool updates
v0.7.0- First observed
ayuda_detalle - First observed
ayuda_texto - First observed
ayudas_buscar - First observed
ayudas_previstas - First observed
ayudas_recuento - First observed
boe_buscar - First observed
boe_documento - First observed
boe_sumario_dia - First observed
estado_datos - First observed
novedades_perfil
TDQS
Scored across 10 tools
Each tool targets a clearly distinct resource/action: BOE daily summary vs. BOE range search vs. BOE document retrieval, and BDNS search vs. counts vs. detail vs. PDF text vs. forecasts vs. profile digest. The descriptions explicitly clarify boundaries, such as using ayudas_recuento for counts/comparisons instead of ayudas_buscar. No pair appears to do the same thing.
All names use snake_case, but the prefix pattern is inconsistent: boe_* for BOE tools, then ayudas_* and ayuda_* (plural vs. singular) for grant tools, plus estado_datos and novedades_perfil without a domain prefix. Verb/noun ordering also varies (e.g. boe_buscar vs. ayuda_detalle), making the set readable but not fully predictable.
Ten tools is well within the ideal 3–15 range for a focused Spanish grants and BOE publications server. The tools divide cleanly across BOE retrieval, BDNS search/detail/counts/PDF access, forecasting, profile updates, and data status, so each appears to earn its place.
The surface covers the key lifecycle for the domain: BOE daily listing, range search, and full document retrieval; grant search, exact counts, full detail, original PDF text, forecasts, and profile-based updates. There are no obvious dead ends for an agent needing to discover, inspect, count, or read Spanish official publications and subsidies.
Related MCP Connectors
Subvenciones, licitaciones y boletines oficiales de España y Europa para tu IA. Gratis, sin login.
Search US grants + federal contracts (Grants.gov + SAM.gov) from any LLM.
Live EU funding data in your AI: grant calls, programmes, consortium partners, VCs, incubators.
Normalized search over public-sector tenders in TED (EU official procurement notices) -- Spain + EU
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
- AlicenseBqualityBmaintenanceEnables LLMs like Claude to query the official Spanish BOE API for consolidated legislation, daily summaries, and auxiliary government tables.3156MIT
- FlicenseNot gradedqualityDmaintenanceEnables searching and querying Spanish public subsidies and aids using the BDNS API, with filters for region, beneficiary type, and more.-
- FlicenseNot gradedqualityDmaintenanceEnables searching and retrieving details of over 500,000 Spanish government grants and subsidies from the official BDNS database, without requiring an API key.-