Skip to main content
Glama

automeli-docs-mcp

Servidor MCP (Model Context Protocol) que expone la documentación de la API pública de Automeli a LLMs (Claude Desktop, Claude Code, claude.ai, etc.).

Es solo lectura de la documentación: NO ejecuta la API real. Funciona como un wrapper de fetch + cache sobre los artefactos machine-readable que sirve www.automeli.com (openapi.json, errors.json, llms-full.txt, llms.txt). No duplica el spec → sin drift con la doc.

Versiones de la API (desde 0.2.0)

La doc canónica de la landing es la API v2; la v1 quedó congelada bajo /api-docs/v1/. Todas las tools aceptan un parámetro opcional version:

  • "v2" (default) → artefactos canónicos (/api-docs/openapi.json, …).

  • "v1" → artefactos congelados (/api-docs/v1/…), solo para integraciones legadas.

errors.json (catálogo de errores) y llms.txt son compartidos entre versiones. Las respuestas incluyen api_version, leído del propio artefacto, para que el cliente confirme qué versión está viendo.

Transición: mientras la landing desplegada siga siendo la vieja (canónica = v1, sin /api-docs/v1/), pedir "v1" cae a los artefactos canónicos — que en ese mundo son v1. Cuando la landing nueva (rama feat/api-docs-v2 de automeli.com) se despliegue, la canónica pasa a v2 y este server la sirve sin cambios. Después de ese deploy conviene refrescar el snapshot (pnpm run build).

Related MCP server: mcp-docs

Cómo obtiene los datos

  1. Live + cache con TTL — al pedir un artefacto, lo trae de www.automeli.com, valida sintaxis y forma mínima (que openapi.paths sea un objeto con entradas, que errors.errors sea un array, que los .txt parezcan la doc) y lo cachea en memoria (default 15 min) con clave versión:artefacto. Un 200 con basura (p. ej. {} o un envelope de error de un CDN) NO se cachea: se degrada al snapshot. Mientras esté fresco, no vuelve a la red.

  2. Fallback offline — si la red falla, sirve un snapshot bundleado (data/snapshot/) que se baja en cada build. Así el server arranca al instante y sigue andando sin conexión. El snapshot se cachea ya vencido: apenas vuelva la red, la próxima llamada reintenta live. Los artefactos v1 congelados se guardan como v1-* (opcionales: si la landing aún no los sirve, se omiten). Si un pedido de v1 termina servido por la doc canónica (fallback de transición), las tools estructuradas agregan version_warning y las de prosa (describe_flow, generate_snippet) anteponen el aviso en el propio texto.

La fuente de verdad es siempre la doc live; el snapshot es solo red de seguridad.

Tools (7, todas read-only)

Tool

Para qué

list_endpoints(version?)

Índice de los endpoints: método, path, summary, scope, key env, idempotencia, costo. Devuelve api_version y base_url.

get_endpoint(operationId | method+path, version?)

Detalle completo: parámetros, request body (schema+ejemplo), respuestas con ejemplos, errores, costo, scope y la prosa de la doc.

search_docs(query, limit?, version?)

Búsqueda léxica sobre endpoints + errores + guías + flujos.

explain_error(code, version?)

Status, cuándo ocurre, doc_url y qué endpoints emiten un código RFC 7807 (ej. E_RATE_LIMITED). El catálogo es compartido v1/v2.

generate_snippet(lang, operationId | method+path, version?)

Snippet curl / js / python idéntico al de la web. El parámetro es lang, no language.

describe_flow(flow, version?)

Guía narrativa de un flujo end-to-end (hoy: test-to-live).

get_openapi(version?)

El documento OpenAPI 3.1 completo, crudo.

Instalación y build

Este servidor se distribuye como repositorio para clonar (no se publica en npm). Requiere Node ≥ 20. Se recomienda pnpm, pero npm también funciona: el repo trae pnpm-lock.yaml para builds reproducibles con pnpm; npm resuelve desde package.json (solo 2 dependencias) y genera su propio lockfile.

git clone https://github.com/Automeli-Services-Organization/automeli-docs-mcp.git
cd automeli-docs-mcp

# con pnpm (recomendado):
pnpm install
pnpm run build          # corre prebuild (baja snapshot) + compila a dist/

# …o con npm:
npm install
npm run build

Verificación opcional (usa npm run … si instalaste con npm):

pnpm run smoke          # test de interoperabilidad con el cliente MCP real
pnpm run smoke:offline  # el mismo smoke contra una base muerta → fuerza el camino snapshot

El smoke es agnóstico de versión (descubre los operationIds vía list_endpoints), así que pasa igual antes y después del deploy de la landing v2. Para probarlo contra otra fuente (ej. un dev server con la doc nueva):

AUTOMELI_DOCS_BASE=https://<base> AUTOMELI_DOCS_TIMEOUT_MS=10000 pnpm run smoke

Conectarlo a un cliente MCP

Claude Code (CLI)

# apuntando al build local (usa la ruta ABSOLUTA a tu clon):
claude mcp add --scope user automeli-docs -- node /ruta/absoluta/a/automeli-docs-mcp/dist/index.js

Dos detalles que ahorran un rato de confusión:

  • Usa --scope user. Sin él, el servidor queda registrado solo para la carpeta desde la que ejecutaste el comando — y como lo natural es ejecutarlo desde dentro del clon, después no aparece al trabajar en otro proyecto.

  • Reinicia la sesión. Las herramientas de un servidor recién agregado no se cargan en la sesión en curso: cierra y vuelve a abrir claude. Que claude mcp list diga ✔ Connected no significa que ya las puedas usar ahí mismo.

Claude Desktop

En claude_desktop_config.json (Settings → Developer → Edit Config):

{
  "mcpServers": {
    "automeli-docs": {
      "command": "node",
      "args": ["/ruta/absoluta/a/automeli-docs-mcp/dist/index.js"]
    }
  }
}

Configuración (variables de entorno)

Variable

Default

Qué hace

AUTOMELI_DOCS_BASE

https://www.automeli.com

Base de los artefactos. Usar www (el apex hace 301).

AUTOMELI_DOCS_TTL_SECONDS

900

Frescura del cache en memoria.

AUTOMELI_DOCS_TIMEOUT_MS

5000

Timeout del fetch live antes de caer al cache/snapshot.

Refrescar el snapshot

El snapshot se regenera solo en cada pnpm run build. Para refrescarlo a mano:

pnpm run fetch-snapshot

Notas / límites conocidos

  • components.schemas del OpenAPI hoy trae pocos schemas nombrados (bodies inline). Suficiente para las tools; si se quisiera tipado fuerte por endpoint, enriquecer el registry de la doc (automeli.com/src/lib/api-spec/).

  • explain_error devuelve when + doc_url (no hay un campo estructurado "cómo reaccionar"; esa guía vive en la prosa de la doc).

  • generate_snippet extrae el bloque exacto de llms-full.txt (incluye los valores de query de ejemplo autorados). Si esa extracción fallara, cae a un snippet generado desde el OpenAPI (sin esos query de ejemplo).

  • describe_flow y la sección de guías dependen de los headings de llms-full.txt / llms.txt; el formato de la landing nueva (rama v2) se verificó compatible (anclas {#operationId} en H3, fences bash/javascript/python, flujo como H2).

Available Tools

7 tools
describe_flowDescribir un flujo de usoA
Read-only

Devuelve la guía narrativa de un flujo end-to-end de la API. Hoy disponible: 'test-to-live' (publicar en prueba → promover → real), el flujo recomendado.

ParametersJSON Schema
NameRequiredDescriptionDefault
flowNoClave del flujo. Disponibles: test-to-live.test-to-live
versionNoVersión de la API a consultar. Default "v2" (la doc canónica y recomendada). Usá "v1" SOLO para integraciones legadas que siguen en /api/v1.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and openWorldHint, so safety profile is covered. The description adds that it returns a narrative guide rather than raw data, which is useful behavioral context, but does not describe format, length, or pagination of the returned guide. With annotations covering the safety angle, a 3 is appropriate.

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?

Two tightly packed sentences with no filler, front-loading the core purpose and the only available option. Every phrase earns its place.

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?

Given a read-only, no-required-params tool with full schema coverage and no output schema, the description is nearly complete. It could mention that the guide is static or versioned, but nothing critical for an agent to call it correctly is missing.

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?

Schema coverage is 100% and both parameters have detailed enum descriptions, so the schema already documents semantics fully. The description only mentions the available flow value, which is already in the schema. Baseline 3 is correct when the schema does the heavy lifting.

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?

States a specific verb+resource (returns the narrative guide of an end-to-end API flow) which is distinct from siblings like get_endpoint or search_docs. It even names the currently available flow ('test-to-live') and what it does. However it does not explicitly contrast with siblings, which would be needed for 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?

It clearly signals when this tool is useful by stating the only flow available and calling it 'el flujo recomendado', implying its use for end-to-end guidance rather than single-endpoint lookups. It does not explicitly state when NOT to use it (e.g., for individual endpoints).

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

explain_errorExplicar un código de errorA
Read-only

Dado un código de error (campo 'code' del body RFC 7807, ej. 'E_RATE_LIMITED'), devuelve el status HTTP, cuándo ocurre, la URL de doc y qué endpoints pueden emitirlo. El catálogo es contrato público estable y COMPARTIDO entre v1 y v2: hacé switch sobre 'code'.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesCódigo de error, ej. 'E_PROMOTE_NO_CANDIDATES'. No es sensible a mayúsculas.
versionNoVersión de la API a consultar. Default "v2" (la doc canónica y recomendada). Usá "v1" SOLO para integraciones legadas que siguen en /api/v1.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations cover read-only and open-world nature, so the base bar is lower. The description adds valuable behavioral context: it's a stable public contract shared across API versions, and advises switching on the code. It also implies the catalog is comprehensive. Missing explicit statement about rate limits or caching, but sufficient given annotations.

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?

Two sentences, front-loaded with what the tool does and what it returns, then adds the shared-contract caveat. No wasted words; every sentence adds value.

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?

Complete for a read-only lookup tool. With no output schema, the description appropriately lists the return fields, saving the agent from inference. It could optionally mention if results are paginated or if errors are returned for unknown codes, but for a simple catalog lookup it's sufficiently complete.

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?

Schema coverage is 100%, so the schema already documents both parameters (including description, case-insensitivity, and version enum with default). The description only adds the example input format and a reminder that code is case-insensitive via 'ej. E_RATE_LIMITED' and the switch note, but doesn't significantly expand on the parameters beyond schema. Baseline 3 is appropriate.

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?

States a clear verb+resource ('explica un código de error') and elaborates on exactly what is returned: HTTP status, when it occurs, doc URL, and emitting endpoints. Distinguishes itself from siblings like get_endpoint or search_docs, which are about endpoints and docs, not error codes.

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?

Gives a specific context: input is the 'code' field from an RFC 7807 body, with an example. However, it doesn't explicitly state when-not-to-use or name alternatives (e.g., 'para buscar códigos por texto, usá search_docs'). Context is clear but lacks alternative routing.

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

generate_snippetGenerar snippet de un endpointA
Read-only

Devuelve un snippet de código listo para usar (curl, JavaScript fetch o Python requests) para un endpoint, idéntico al de la web. Identificá el endpoint por operationId o por method+path. Los valores de API Key son placeholders.

ParametersJSON Schema
NameRequiredDescriptionDefault
langYesLenguaje del snippet.
pathNoPath relativo, ej. '/products'.
methodNoMétodo HTTP. Usar junto con path.
versionNoVersión de la API a consultar. Default "v2" (la doc canónica y recomendada). Usá "v1" SOLO para integraciones legadas que siguen en /api/v1.
operationIdNoEj. 'v2-products-create'.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the description only needs to add context beyond that. It usefully warns that API key values are placeholders and that output matches the website snippet, which preempts an agent treating the snippet as runnable with real credentials.

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?

Three short sentences, front-loaded with the return value, then identification method, then the credential caveat. No filler, though the phrase 'idéntico al de la web' is slightly decorative.

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?

With no output schema, the description correctly states that the return is a ready-to-use code snippet and notes the placeholder credentials. Version defaults and legacy guidance are already covered in the schema, so the remaining gap is minor.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds the genuinely useful fact that identification is an either/or choice between operationId and method+path, a constraint the schema leaves implicit. The lang enum values are left to the schema, which is fine.

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?

States a specific verb and resource ('Devuelve un snippet de código listo para usar') plus the exact output formats (curl, JavaScript fetch, Python requests), which no sibling tool produces. An agent can distinguish it from get_endpoint or get_openapi immediately.

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?

Explains the two accepted identification modes ('Identificá el endpoint por operationId o por method+path'), which is real routing guidance. It does not say when to prefer this over siblings like get_endpoint or get_openapi, so it stops 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.

get_endpointDetalle de un endpointA
Read-only

Devuelve el detalle completo de un endpoint: parámetros, request body (schema + ejemplo), respuestas con ejemplos, scope, costo en créditos, idempotencia, códigos de error y la prosa de la doc. Identificá el endpoint por operationId (ej. 'v2-products-create'; ver list_endpoints) o por method+path (ej. method='POST', path='/products').

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath relativo, ej. '/products' o '/products/jobs/{jobId}'.
methodNoMétodo HTTP, ej. 'GET' o 'PATCH'. Usar junto con path.
versionNoVersión de la API a consultar. Default "v2" (la doc canónica y recomendada). Usá "v1" SOLO para integraciones legadas que siguen en /api/v1.
operationIdNoEj. 'v2-products-create', 'v2-jobs-get'. Ver list_endpoints.

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds that the returned object includes idempotency, credit cost, error codes, and documentation prose, which is useful context beyond the annotations, but it does not describe pagination or data freshness.

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?

It is two sentences, front-loaded with the returned payload and followed by the identification instructions. The field enumeration is slightly dense but each item earns its place by telling the agent what to expect in the response.

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 read-only introspection tool with no output schema, the description adequately explains what is returned and how to address the resource. It could note what happens if the endpoint is not found or when v1 is not available, but otherwise it is complete enough to invoke correctly.

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?

Schema coverage is 100% and all four parameters are documented in the schema with examples and enums. The description reinforces the identification patterns but adds no syntax beyond what the schema already provides; baseline 3 is appropriate.

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 verb and resource ('Devuelve el detalle completo de un endpoint') and enumerates the exact payload fields (parámetros, request body, respuestas, scope, costo, idempotencia, errores, prosa). It is unmistakably distinct from sibling list_endpoints, which it references.

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 states when to use this tool by giving the two identification modes (operationId, or method+path) and points to list_endpoints for discovery. It lacks explicit 'when not to use' guidance (e.g. for flows or errors, see describe_flow/explain_error), which other siblings cover.

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

get_openapiSpec OpenAPI crudoA
Read-only

Devuelve el documento OpenAPI 3.1 completo de la API (v2 por default; el mismo de www.automeli.com/api-docs/openapi.json). Útil para generar clientes o cargar el contrato entero.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersión de la API a consultar. Default "v2" (la doc canónica y recomendada). Usá "v1" SOLO para integraciones legadas que siguen en /api/v1.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds that the payload equals the canonical document at the api-docs URL, but says nothing about payload size, cost, or caching behavior – meaningful for a tool that returns an entire spec.

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?

Two sentences, zero waste: the what and scope come first, the canonical-URL reference and use cases follow. Nothing could be removed without losing information.

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?

With no output schema, the description does carry the return burden and adequately says it returns the complete OpenAPI 3.1 document. It omits any note on payload size or when fetching the whole contract is preferable to per-endpoint calls, a minor gap for this complexity level.

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?

Schema coverage is 100% and the single version parameter already carries a full inline description with enum guidance (v2 recommended, v1 for legacy). The description's 'v2 por default' restates the schema rather than adding format or edge-case detail, so baseline 3 applies.

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?

States a specific verb+resource ('Devuelve el documento OpenAPI 3.1 completo de la API') with explicit scope (full spec, not a fragment), which distinguishes it from fragment-oriented siblings like list_endpoints and get_endpoint. It stops short of naming an alternative directly, so sibling differentiation is strong but implicit.

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?

Gives concrete use cases ('Útil para generar clientes o cargar el contrato entero'), which tells the agent when this tool is the right choice over endpoint-level siblings. No explicit when-not or named alternative, so it stops 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.

list_endpointsListar endpointsA
Read-only

Índice de todos los endpoints de la API pública de Automeli (v2 por default): método, path, summary, scope, entorno de key (test/live/any), idempotencia y costo en créditos. Punto de partida para descubrir la API. El campo api_version confirma qué versión de la doc se leyó.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersión de la API a consultar. Default "v2" (la doc canónica y recomendada). Usá "v1" SOLO para integraciones legadas que siguen en /api/v1.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so safety is covered. The description adds useful context beyond that: the tool returns a metadata index per endpoint (scope, key environment test/live/any, idempotency, credit cost) and instructs the agent to read the returned api_version field to confirm which doc version was served. Pagination or size limits are still undisclosed.

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?

Two sentences, front-loaded with the core purpose, and the returned-field enumeration earns its length by telling the agent what the index contains. The field list is dense but functional; nothing is wasted.

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

Completeness5/5

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

For a one-optional-parameter read-only index with no output schema, the description covers purpose, scope, returned content, version default, and how to verify the doc version from the response. An agent has everything needed to call it correctly without opening the schema.

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?

Schema coverage is 100% and the single optional 'version' parameter is fully documented in the schema, including the default and the legacy caveat. The description only restates the v2 default, adding no syntax or semantics beyond the schema, so baseline 3 applies.

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?

States a specific verb+resource ('Índice de todos los endpoints de la API pública de Automeli') and even enumerates the per-entry fields (method, path, summary, scope, key environment, idempotency, credit cost), so an agent immediately knows what it gets. It implicitly contrasts with get_endpoint by saying 'todos los endpoints', but never names that sibling or get_openapi explicitly, so it falls just short of full differentiation.

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?

'Punto de partida para descubrir la API' gives clear context for when to reach for this tool instead of a detail lookup. It stops short of naming alternatives (get_endpoint, get_openapi) or stating exclusions, so there is no explicit when-not guidance.

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

search_docsBuscar en la docA
Read-only

Búsqueda léxica en toda la documentación: endpoints, errores, guías y flujos. Devuelve resultados rankeados con tipo, título, referencia (operationId / código de error / URL) y un extracto. Útil para '¿cómo publico un producto?', 'rate limit', 'cursor', 'idempotencia', etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMáximo de resultados (default 8).
queryYesTexto a buscar, ej. 'paginación por cursor', 'créditos', 'E_RATE_LIMITED'.
versionNoVersión de la API a consultar. Default "v2" (la doc canónica y recomendada). Usá "v1" SOLO para integraciones legadas que siguen en /api/v1.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, lowering the disclosure bar. The description adds useful context beyond them: results are returned ranked with type, title, a reference (operationId / error code / URL) and an excerpt, and the search is lexical rather than semantic. No pagination or ranking-order caveats, but the core behavior is well conveyed.

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?

Three sentences, front-loaded with the search scope, then return shape, then example intents. Efficient and free of filler, though the example-query list is slightly loose prose.

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?

No output schema exists, but the description compensates by describing the result fields and ranking, and the parameter schema is fully documented. An agent has enough to call it and interpret results; only sibling routing is left implicit.

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?

Schema description coverage is 100%, so the schema already documents query, limit, and version (including the v2-default / v1-legacy guidance and enum). The description adds nothing parameter-specific beyond the return fields, so the baseline 3 applies.

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?

States a specific verb+resource: 'Búsqueda léxica en toda la documentación' and enumerates the coverage (endpoints, errores, guías, flujos). The lexical qualifier helps an agent distinguish it from semantic or targeted lookups, but it never names or contrasts any sibling (e.g., get_endpoint or explain_error) for direct lookups.

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?

"Útil para '¿cómo publico un producto?', 'rate limit', 'cursor', 'idempotencia'" gives concrete query intents, which clarifies when to reach for this tool. It stops short of stating when NOT to use it or which sibling covers narrower needs (single endpoint detail, error explanation).

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. 7 tool updatesv0.2.1
    • First observeddescribe_flow
    • First observedexplain_error
    • First observedgenerate_snippet
    • First observedget_endpoint
    • First observedget_openapi
    • First observedlist_endpoints
    • First observedsearch_docs

TDQS

A4.2/5.0

Scored across 7 tools

Disambiguation5/5

Cada herramienta tiene un propósito claramente distinto: listar endpoints, obtener detalle, buscar en docs, explicar errores, generar snippets, describir flujos y obtener OpenAPI. No hay solapamiento ambiguo; las descripciones refuerzan cuándo usar cada una.

Naming Consistency5/5

Todos los nombres siguen el patrón verbo_objeto en snake_case (list_endpoints, get_endpoint, search_docs, explain_error, generate_snippet, describe_flow, get_openapi). Es altamente consistente y predecible.

Tool Count5/5

Siete herramientas es un número bien ajustado para un servidor de documentación de API; cada una cubre una necesidad de descubrimiento o consulta sin redundancia.

Completeness4/5

La superficie cubre descubrimiento, detalle, búsqueda, errores, snippets, flujos y contrato OpenAPI, lo cual es muy completo para docs. Faltaría, por ejemplo, una herramienta para listar versiones de API o comparar cambios, pero son carencias menores.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    A lightweight, zero-config MCP server that makes documentation and API specifications instantly accessible to AI models using the llms.txt standard. It enables searching and retrieving full documentation, OpenAPI, and AsyncAPI specs without requiring a complex RAG infrastructure or vector database.
    9
    1
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Generic MCP server that exposes Markdown documentation to LLMs, enabling them to search and answer questions about any software documentation.
    MIT