Skip to main content
Glama

mcp-rosario-municipal

API + MCP read-only para atención ciudadana con fuentes oficiales de Municipalidad de Rosario.

Propuesta comercial

Demo de “Atención Ciudadana IA”: el vecino pregunta en lenguaje natural y la IA responde con información pública oficial, links de respaldo, pasos sugeridos y límites claros.

Sirve para conectar web chat, WhatsApp vía n8n/Make, ChatGPT Actions, Telegram, voice/call-center y dashboards internos.

Related MCP server: mcp-abogadoenquilmes

Qué hace

  • Responde consultas por intención: reclamos, pagos, turnos, licencias, habilitaciones, obras, noticias/datos.

  • Cita fuentes oficiales y devuelve links.

  • Busca en índice documental generado desde 63 documentos/páginas oficiales.

  • Usa búsqueda viva sobre el buscador HTML oficial de rosario.gob.ar.

  • Expone MCP stdio, HTTP/OpenAPI, webhook de mensajería, demo web /demo y métricas /metrics.

Qué NO hace

  • No reserva turnos.

  • No envía reclamos ni denuncias.

  • No procesa pagos.

  • No consulta deuda, expedientes ni datos personales.

  • No inventa requisitos si no aparecen en fuentes oficiales.

URLs

Base actual: https://rosario.72.61.48.99.sslip.io
Demo web:    https://rosario.72.61.48.99.sslip.io/demo
OpenAPI:     https://rosario.72.61.48.99.sslip.io/openapi.json
Health:      https://rosario.72.61.48.99.sslip.io/health

Dominio recomendado: https://rosario.demo.zyoma.ai — ver docs/deployment.md.

Instalar y verificar

npm install
npm run extract:docs
npm run typecheck
npm run build
npm run probe:fase1
npm run probe
npm run probe:http
npm run eval:cases

HTTP local

ROSARIO_API_KEY=<tu-api-key> PORT=8787 npm run api:start

Endpoints

GET  /health              público
GET  /openapi.json        público
GET  /demo                público, requiere API key dentro de la UI para consultar
GET  /metrics             privado, bearer auth
POST /consulta-ciudadana  privado, bearer auth
POST /webhook/consulta    privado, bearer auth
POST /fuentes/buscar      privado, bearer auth
POST /fuentes/detalle     privado, bearer auth
POST /noticias/buscar     privado, bearer auth
POST /instructivos/buscar privado, bearer auth
POST /web/buscar          privado, bearer auth
POST /reclamos/info       privado, bearer auth
POST /pagos/info          privado, bearer auth
POST /turnos/info         privado, bearer auth
POST /tramites/info       privado, bearer auth

Ejemplos demo

Necesito sacar un turno
¿Cómo pago la tasa municipal?
Quiero hacer un reclamo por una luminaria rota
Quiero habilitar un comercio
Requisitos para final de obra
Licencia de conducir renovación

Ejemplo consulta ciudadana

curl -s https://rosario.72.61.48.99.sslip.io/consulta-ciudadana \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <tu-api-key>' \
  -d '{ "consulta": "Licencia de conducir requisitos", "tono": "breve" }'

Ejemplo webhook n8n/WhatsApp

curl -s https://rosario.72.61.48.99.sslip.io/webhook/consulta \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <tu-api-key>' \
  -d '{ "text": "Necesito hacer un reclamo por una luminaria rota", "channel": "whatsapp", "from": "+549****0000" }'

En n8n usar: ={{ $json.reply }}.

Métricas

GET /metrics devuelve contadores agregados y últimas consultas sanitizadas. No guarda teléfonos/emails completos: se redactan en memoria.

Evaluación ciudadana

El repo incluye tests/citizen-cases.json y npm run eval:cases para medir intención correcta, fuentes y límites sobre preguntas reales/ambiguas.

MCP

claude mcp add rosario -- node "$(pwd)/dist/src/index.js"

Tools: consulta_ciudadana, buscar_instructivos, buscar_web_oficial, buscar_fuentes, detalle_fuente, buscar_noticias, reclamos_info, pagos_info, turnos_info, tramites_info.

Estado de fase

Fase 0: relevamiento de fuentes públicas
Fase 1: tools read-only de información pública
Fase 1.1: índice documental + búsqueda viva
Fase 1.2: HTTP/OpenAPI + webhook + demo web + métricas
Fase 2 futura: workflows autenticados sólo con autorización explícita, auditoría y guardrails

Available Tools

10 tools
buscar_fuentesA

Buscar fuentes oficiales públicas por consulta/categoría. Usar antes de contestar si necesitás citar URLs exactas.

ParametersJSON Schema
NameRequiredDescriptionDefault
consultaYes
categoriaNo

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only mentions the function and implies URLs are returned, but omits any details about read-only status, output format, pagination, or limitations. This is a significant gap for a search tool with no annotation support.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently conveys both purpose and usage. It is front-loaded and contains no redundant information, earning a perfect score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core purpose and a usage condition, but lacks details about the return format, result count, or any prerequisites. Given the absence of an output schema and annotations, more information is needed for full contextual completeness, though the tool's simplicity keeps it at a minimum viable level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description merely repeats the parameter names ('consulta/categoría') without explaining their meanings, expected values, or how they interact. It does not help an agent construct correct inputs beyond the schema's basic type declarations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches official public sources by query/category, using a specific verb and resource. It also mentions the use case of citing exact URLs, which distinguishes it from sibling tools like 'buscar_noticias' or 'buscar_web_oficial'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Usar antes de contestar si necesitás citar URLs exactas', providing a clear condition for use. It does not name alternative tools, but the context is sufficient for an agent to decide when to invoke it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

buscar_instructivosA

Buscar en índice documental oficial generado desde páginas/PDFs públicos. Usar para requisitos, documentación, obras, licencias, tasas y trámites. Devuelve fragmentos y URLs oficiales; no inventar requisitos fuera de los fragmentos.

ParametersJSON Schema
NameRequiredDescriptionDefault
consultaYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that the tool returns fragments and official URLs ("Devuelve fragmentos y URLs oficiales") and warns against inventing requirements outside those fragments ("no inventar requisitos fuera de los fragmentos"). This provides useful behavioral context, though it lacks details on authentication, rate limits, or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences, front-loaded with the main action, then usage, then output and caution. Every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having no output schema or annotations, the description provides the essential context: what it searches, when to use it, what it returns, and a safety warning. For a simple one-parameter search tool, this is nearly complete, but it could mention pagination or result limits.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage for the single parameter 'consulta'. The description implies the parameter is the search query by mentioning topics to search for, but it never explicitly defines 'consulta' or gives format examples. This is adequate compensation but not outstanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as searching an official documentary index sourced from public pages/PDFs ("Buscar en índice documental oficial"). The verb 'buscar' plus specific resource distinguishes it from sibling tools like buscar_noticias or buscar_web_oficial, which target different content types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit use cases: "Usar para requisitos, documentación, obras, licencias, tasas y trámites." This gives clear context for when to use the tool, though it does not mention alternative tools or exclusion scenarios, 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.

buscar_noticiasA

Buscar noticias oficiales cuando el municipio expone API pública. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
consultaNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that the tool is 'Read-only' and notes a dependency on the municipality's public API. This is useful behavioral context, though it does not describe error handling or return format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of two short sentences that front-load the core action and include the key behavioral trait. Every word earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple search tool with one parameter and no output schema, the description covers the essential context: purpose, usage condition, and read-only nature. However, the lack of parameter explanation leaves a small gap, but overall it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has one parameter 'consulta' with no description, and the schema description coverage is 0%. The tool description does not explain what 'consulta' means or how it should be formatted, so it fails to compensate for the lack of parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Buscar noticias oficiales' (search official news), with a specific verb and resource. It also adds a scope condition ('cuando el municipio expone API pública'), but it does not explicitly distinguish from sibling tools, so it's not a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear usage context: 'cuando el municipio expone API pública' (when the municipality exposes a public API). This tells the agent when to use the tool, but it does not mention when not to use it or name alternative tools, 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.

buscar_web_oficialA

Buscar en vivo en el sitio oficial cuando existe adaptador. En Rosario usa el buscador HTML oficial. Read-only y con URLs oficiales.

ParametersJSON Schema
NameRequiredDescriptionDefault
consultaYes

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It explicitly states 'Read-only' and 'con URLs oficiales', which are meaningful behavioral guarantees, and notes the live-search nature. It doesn't cover rate limits, authentication, or failure modes, but for a simple search tool it adds sufficient context beyond a bare description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three short sentences, front-loaded with the primary action, and contains no unnecessary filler. Every sentence earns its place by adding either the core purpose, a specific usage detail, or a safety/source guarantee.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, so the description should explain what the search results look like, but it doesn't. It also doesn't address what happens when an adapter is missing or how to handle failures. However, it does cover purpose, usage context, and read-only nature, making it minimally viable but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one parameter 'consulta' with 0% description coverage, and the description never explicitly explains that 'consulta' is the search query or provides any format/constraint details. The meaning is inferable from the tool name, but the description adds no parameter-level value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: 'Buscar en vivo en el sitio oficial cuando existe adaptador' (search live on the official site when an adapter exists). It also adds a specific variant for Rosario's official HTML search, which helps distinguish it from sibling search tools like buscar_fuentes and buscar_noticias, though it doesn't explicitly name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives conditional usage context ('cuando existe adaptador') and a location-specific behavior ('En Rosario usa el buscador HTML oficial'), indicating when this tool is appropriate. However, it does not explicitly reference sibling tools or provide 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.

consulta_ciudadanaA

Responder una consulta ciudadana usando fuentes oficiales públicas. Read-only: no reserva turnos, no envía reclamos/denuncias ni procesa pagos. Incluye intención, fuentes, acciones sugeridas y límites.

ParametersJSON Schema
NameRequiredDescriptionDefault
tonoNo
consultaYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden. It clearly states 'Read-only' and lists excluded actions, providing a strong safety signal. It also mentions that the response includes intention, sources, suggested actions, and limits, which gives a preview of the tool's output. It could add rate limits or specific output structure, but the core read-only behavior is well covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: three sentences cover purpose, exclusions, and output composition. Every sentence contributes necessary context without redundancy. It is well-structured and front-loaded with the primary action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, read-only behavior, exclusions, and output highlights, which is good for a simple informational tool. However, it omits critical detail about the 'tono' parameter, and the absence of an output schema makes this omission more impactful. The tool is not fully self-contained for an agent to use correctly without additional inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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. While 'consulta' is self-evident from the tool's purpose, the 'tono' parameter (with enum breve/normal/llamada) is entirely unexplained. The description does not clarify what tone/format options mean or how they affect the response, leaving a significant gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action: 'Responder una consulta ciudadana usando fuentes oficiales públicas' (respond to a citizen query using official public sources). It clearly distinguishes from sibling tools that focus on searching or retrieving specific types of information, and it outlines the output components (intention, sources, suggested actions, limits).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when not to use the tool: 'no reserva turnos, no envía reclamos/denuncias ni procesa pagos' (does not reserve appointments, send complaints, or process payments). This effectively excludes common alternative uses, though it does not explicitly name sibling tools like turnos_info or pagos_info.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

detalle_fuenteA

Ver detalle de una fuente pública por ID devuelto por buscar_fuentes.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of disclosing behavior. It indicates a read-only operation ('ver'), but does not mention any potential side effects, error conditions, or additional behavioral nuances. For a simple detail lookup, this is adequate but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that conveys the purpose and source of the ID without extraneous words. It is perfectly concise and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one parameter and no output schema, the description provides sufficient context: the tool is a detail-view operation for a source, and the ID comes from a specific sibling tool. It lacks information about return format, but the simplicity of the tool makes this acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds semantic meaning to the 'id' parameter by specifying it is a public source ID returned by 'buscar_fuentes'. This is valuable context beyond the schema's bare 'string' type and minLength constraint, even though the described coverage is low.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: view details of a public source by ID. The verb 'Ver' (view) is specific, and the resource 'fuente pública' (public source) is identified. It also distinguishes from sibling tool 'buscar_fuentes' by referencing an ID from that search tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly ties usage to an ID returned by 'buscar_fuentes', providing clear context on when to use this tool (after searching). It implies this is not for searching but for retrieving details, though it does not explicitly exclude other scenarios or name alternatives beyond 'buscar_fuentes'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pagos_infoA

Orientar sobre pagos/tasas/tributos con límites: no consulta deuda personal ni procesa pagos.

ParametersJSON Schema
NameRequiredDescriptionDefault
consultaNo

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of disclosing behavior. It does state that the tool does not process payments or consult personal debt, implying a safe, non-transactional nature. Yet it doesn't explicitly confirm it is read-only, nor does it describe return responses or side effects beyond these exclusions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence that front-loads the main purpose and includes important limitations. Every word earns its place, with no redundancy or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple structure (one param, no output schema), the description covers the tool's scope and exclusions well. However, it lacks explicit instructions on how to use the 'consulta' parameter and what the response looks like, making it incomplete for an agent that needs fully actionable guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one parameter 'consulta' with 0% description coverage, and the tool description provides no explanation of what this parameter should contain. The name 'consulta' (query) hints at a free-text question about payments, but this is inferred rather than stated, leaving the agent without adequate guidance for filling the only parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states a specific action ('Orientar' = guide) and a clear resource ('pagos/tasas/tributos'), and differentiates itself from sibling tools like 'reclamos_info' and 'turnos_info'. It also clarifies boundaries (no personal debt, no payment processing), making the tool's purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool (guidance on payments/fees/taxes) and explicitly states exclusions (not for personal debt, not for payment processing). However, it does not name alternative sibling tools, so it stops short of explicit 'use X instead' guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reclamos_infoA

Derivar reclamos/denuncias a canales oficiales y sugerir qué datos preparar. No envía el reclamo.

ParametersJSON Schema
NameRequiredDescriptionDefault
temaNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It explicitly states a key non-behavior: 'No envía el reclamo' (does not send the complaint), which clarifies that the tool only provides guidance, not actual submission. This is valuable beyond what the name suggests, though it omits other potential details like rate limits or authentication.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences, front-loaded with the core action and immediately followed by a critical caveat. Every word earns its place with no redundancy, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema, the description adequately conveys the main purpose and outcome (official channels and data suggestions). However, it lacks specifics on how results are presented (e.g., links, formatting) and does not elaborate on the parameter, making it minimally viable but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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. The only parameter 'tema' is not explicitly explained beyond the tool's overall purpose. The phrase 'sugerir qué datos preparar' hints at the output but does not clarify what the 'tema' input should contain or its format, leaving the parameter semantically under-defined.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: to redirect complaints/reports to official channels and suggest what data to prepare. The verb 'Derivar' is specific and distinguishes this tool from siblings like pagos_info or turnos_info, as it deals specifically with reclamos/denuncias.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: when a user wants to file a complaint, this tool will help by providing official channels and data preparation tips. However, it does not explicitly state when to use this over alternatives (e.g., consulta_ciudadana) or mention any exclusions, leaving the usage context somewhat implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tramites_infoC

Orientar sobre trámites municipales generales y buscadores oficiales.

ParametersJSON Schema
NameRequiredDescriptionDefault
consultaNo

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden for behavioral disclosure, but it does not mention whether the tool is read-only, performs external searches, or returns specific types of information. This lack of detail leaves significant ambiguity about the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no filler. It is front-loaded with the action and subject, earning its place, though it could be expanded with useful details without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplest tool with one optional parameter and no output schema or annotations, the description only provides a high-level purpose. It lacks info on input format, expected outputs, or how it differs from siblings, making it incomplete for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must explain the 'consulta' parameter, but it only mentions the general topic. It does not specify what the parameter should contain (e.g., a question, a keyword, or a procedure name), leaving the user to infer it from the tool name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a verb ('Orientar' - to guide) and a resource ('trámites municipales generales y buscadores oficiales'). This distinguishes it from specific sibling tools like buscar_fuentes or detalle_fuente, but the verb 'orientar' is somewhat vague about the concrete action performed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 alternatives. It does not name any siblings, mention exclusions, or provide context for selecting it over more specialized tools like buscar_web_oficial or reclamos_info.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

turnos_infoA

Orientar sobre turnos/atención; no reserva ni confirma turnos.

ParametersJSON Schema
NameRequiredDescriptionDefault
consultaNo

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility. It discloses the non-transactional nature of the tool, but gives no further detail on response format, data sources, or any other behavioral traits. This is minimal but not misleading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that immediately states the purpose and a key exclusion. Every word earns its place, with no unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with low complexity (one parameter, no output schema), the description provides essential purpose and a key limitation. However, without an output schema, the lack of detail about what 'orientar' actually returns leaves ambiguity about the tool's response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one parameter 'consulta' with 0% description coverage. The tool description does not explain what the parameter should contain, its format, or provide examples, leaving the agent to infer from the parameter name alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Orientar sobre turnos/atención' (guide about appointments/attention). It explicitly excludes actions ('no reserva ni confirma turnos'), distinguishing it from potential booking tools and clarifying its informational scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when a user needs orientation about appointments and attention, and explicitly states what the tool does not do (reserve or confirm). However, it does not name alternative tools or provide explicit when-not-to-use scenarios beyond the reservation/confirmation exclusion.

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.

  1. 10 tool updatesv0.3.0
    • First observedbuscar_fuentes
    • First observedbuscar_instructivos
    • First observedbuscar_noticias
    • First observedbuscar_web_oficial
    • First observedconsulta_ciudadana
    • First observeddetalle_fuente
    • First observedpagos_info
    • First observedreclamos_info
    • First observedtramites_info
    • First observedturnos_info

TDQS

B3.2/5.0

Scored across 10 tools

Disambiguation4/5

Tools fall into clear categories (general query, search sources, domain-specific info), but buscar_fuentes, buscar_instructivos, and buscar_web_oficial share overlapping search purposes and could be confused without careful description reading.

Naming Consistency4/5

Most tools follow a verb_noun pattern (buscar_*) or domain_info pattern (*_info), but detalle_fuente and consulta_ciudadana deviate slightly from this convention, making the naming less uniform.

Tool Count5/5

With 10 tools, the server is well-scoped for a municipal information assistant, providing enough coverage without unnecessary redundancy.

Completeness4/5

The server covers the core citizen-information lifecycle well, including source search, news, procedures, and orientations. It intentionally omits transactional actions, but could add directories or event searches to be fully comprehensive.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    MCP server for accessing Uruguay's IMPO open data API with SQLite caching. Provides tools to retrieve legal norms, search regulations, and access schema documentation from Uruguay's official legal database.
    4
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    MCP server for searching and extracting official announcements, decrees, and resolutions from the Argentine Official Gazette (Boletín Oficial de la República Argentina). It enables LLMs to perform real-time searches and retrieve verbatim legal text with complete juridical fidelity.
    14
    19 npm
    3
    MIT
  • F
    license
    A
    quality
    B
    maintenance
    MCP server that provides access to Argentine legal documents (legislation, CSJN jurisprudence, international treaties) with verifiable provenance including SHA256 hashes and source URLs, enabling legal professionals to search and verify citations.
    13
    -