denue-mcp
Server Quality Checklist
Latest release: v1.0.0
- Disambiguation4/5
The three search tools are differentiated by search mode (coordinates, state, name), and the detail tool clearly targets a specific record by ID. However, buscar_por_estado and buscar_por_nombre can overlap when searching by keyword within a state, so a slight ambiguity remains.
Naming Consistency4/5Most tools follow a denue_ verb_noun or denue_buscar_* pattern, with inegi_indicador as a minor deviation. The naming is readable and mostly predictable, but detalle is a noun rather than a verb and the inegi_ prefix breaks the denue convention.
Tool Count5/5With 5 tools, the server is well-scoped for its purpose: querying DENUE establishments and INEGI indicators. Each tool addresses a distinct workflow step without redundancy or bloat.
Completeness4/5The DENUE search-and-detail lifecycle is covered for discoverability, including coordinate, state, and name lookups. Missing search by economic activity or category is a minor gap, and the INEGI side is thin with a single indicator query tool, but core read-only workflows are complete.
Average 3.9/5 across 5 of 5 tools scored. Lowest: 3.3/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 7 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavior on its own. It only restates the search criteria and scope; it does not mention pagination, result limits, matching behavior (exact/partial), or output structure. The schema's 'inicio' and 'fin' fields hint at pagination but the description adds no context on how results are returned or any limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no filler; the verb and target resource are front-loaded. It is appropriately sized for the content it conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with four parameters, no output schema, and no annotations, a one-sentence description is insufficient. It omits essential call context: how pagination parameters work, what a result record looks like, and how to refer to states. The description leaves an agent to infer too much, especially relative to the richer sibling set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, leaving 'inicio' and 'fin' undocumented. The description adds no explanation for these pagination parameters and only paraphrases the existing schema descriptions for 'nombre' and 'estado'. It fails to compensate for the undocumented half of the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb ('Busca') and resource ('establecimientos economicos'), with clear search dimensions: by trade name or corporate name, and geographic scope (all Mexico or a specific state). It matches the title and unambiguously differentiates from sibling tools like denue_detalle or denue_buscar_cercania by naming the resource and criteria.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for searching businesses by name, and mentions the optional state filter, which hints at usage. However, it never tells an agent when to prefer this over siblings like denue_buscar_por_estado, nor does it state exclusions or preconditions. The geographic note is more parameter elaboration than usage routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses the main query behavior and national fallback, but does not describe result shape, pagination implications, read-only nature, or what happens with invalid state names. This is adequate but has clear gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and followed by a decision-relevant condition. The first clause slightly restates the title, but every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema richly documents all four parameters, and the description provides selection context. However, with no output schema or annotations, it would benefit from stating what kind of records are returned and when to prefer sibling search tools such as denue_buscar_por_nombre.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already well documented. The description adds only the general 'keyword + state' concept and does not add format details or examples beyond the schema's own examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (search economic establishments) with a concrete resource and query style ('por palabra clave'), plus a geographic scope ('estado especifico... o nacional'). This clearly distinguishes it from coordinate-based siblings like denue_buscar_cercania.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit use condition: use this when there is no exact coordinate, only a region. It does not explicitly name sibling alternatives or exclusion criteria, but the region-vs-coordinate distinction is enough to route an agent correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No hay anotaciones, así que la descripción carga con la responsabilidad. El verbo 'Consulta' sugiere una operación de solo lectura y se menciona la cobertura nacional/estatal, pero no se describen el formato de respuesta, el comportamiento ante códigos inválidos ni si devuelve el dato más reciente o la serie histórica. Es adecuada pero con vacíos.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
La descripción es breve y comienza con el propósito principal, pero la segunda frase repite casi los mismos ejemplos de la primera y solo aporta 'inpc'. Podría condensarse en dos frases sin perder información. No es redundante en exceso, pero no es un modelo de concisión.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Para una herramienta de consulta sin anotaciones ni esquema de salida, cubre bien qué se puede consultar y cómo especificar indicador, estado y serie histórica. Sin embargo, no describe la estructura del resultado esperado ni el manejo de errores (por ejemplo, código inexistente), lo que deja cierta incertidumbre operativa.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Aunque la cobertura del esquema es del 100% (baseline 3), la descripción añade valor real al enumerar nombres válidos adicionales ('inpc', 'confianza del consumidor', 'actividad industrial') y al explicar que se acepta cualquier código numérico del catálogo INEGI. Esto ayuda a construir correctamente el parámetro 'indicador' más allá de lo que ya dice el esquema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
La descripción usa un verbo específico ('Consulta'), identifica el recurso ('indicadores socioeconómicos oficiales de INEGI') y detalla ejemplos concretos como población, inflación y actividad industrial. Además, el ámbito nacional/estatal y la mención del catálogo INEGI la distinguen claramente de las herramientas hermanas DENUE, que son de directorios empresariales.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Proporciona un contexto claro: usar para indicadores INEGI a nivel nacional o estatal, con indicadores conocidos por nombre o mediante código numérico. No excluye explícitamente otras herramientas ni menciona cuándo NO usarla, pero el dominio queda lo bastante definido para que un agente seleccione correctamente.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. The verb 'Busca' clearly signals a read/search operation rather than a mutation, and the description adds useful context: nationwide coverage via 'todo Mexico', the authoritative source 'DENUE de INEGI', and proximity-based behavior via 'cerca de una coordenada dada'. It does not mention result shape or pagination, but for a lookup tool this is not a critical omission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two compact sentences: the first states the operation, source, scope, and criterion; the second states practical use cases. Every clause adds value and there is no filler or repetition of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 4-parameter lookup with complete schema descriptions, the description provides enough context about the data source, scope, search criterion, and use cases for an agent to select and invoke it correctly. The absence of an output schema means return details are not explicitly stated, but the notion of finding businesses in a zone strongly implies a list of matching establishments.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with latitud, longitud, condicion, and distanciaMetros all described, including the default and maximum for distance. The tool description adds no parameter-specific details beyond reinforcing the idea of a coordinate and a zone, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Evidencia: 'Busca establecimientos economicos de todo Mexico en el DENUE de INEGI, cerca de una coordenada dada.' The description specifies a concrete verb, target resource, national scope, and spatial criterion. This clearly distinguishes it from sibling tools based on state, name, or detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Evidencia: 'Util para encontrar negocios, competidores o proveedores en una zona especifica.' This gives a clear when-to-use context: discovering nearby businesses, competitors, or suppliers. However, it does not explicitly state when not to use this tool or name alternatives such as denue_buscar_por_nombre or denue_buscar_por_estado.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations to carry the safety profile, so the description must convey behavior on its own. The verb 'Obtiene' implies a read-only operation and 'ficha completa' hints at the response scope, but the description does not disclose error behavior, what happens for an invalid ID, or whether any special authorization is needed. This is adequate but leaves gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence conveys the operation, resource, input, and source of that input with no redundant words. All essential information is front-loaded and clearly structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter retrieval tool with no output schema, the description provides the key operational context: what it returns, what input it needs, and where that input comes from. It could be more complete only by mentioning error or edge-case behavior, but the low complexity makes the current description nearly sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents 'id' as the DENUE establishment ID with 100% coverage, so the baseline is 3. The description adds meaningful context beyond the schema by stating that the ID comes from another search, which helps the agent understand how to obtain and supply this value correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Obtiene'), a specific resource ('la ficha completa de un establecimiento economico'), and the required input ('ID de DENUE'). It is immediately distinguishable from sibling search tools like denue_buscar_por_nombre and denue_buscar_por_estado, which are broader lookups rather than detail retrieval by ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'obtenido de otra busqueda' explicitly frames this tool as a follow-up to a previous search, giving clear context for when it should be used. It does not name the alternative search tools explicitly or state when not to use them, so it stops just short of a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mxnueel/denue-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server