Skip to main content
Glama

MCP-DOC-MID: OpenAPIとインテグレーション生成のためのMCPサーバー

Node.js(ES Modules)で動作するエンタープライズグレードの**Model Context Protocol(MCP)**エコシステム向けサーバー。OpenAPI / Swagger の仕様を読み込み、$refを解決(デリファレンス)し、LLMがそれらの仕様を参照し、プロダクション対応のコードを生成できるようにすることを専門としています。

@apidevtools/swagger-parserを使って、サーバー起動時にメモリ上で全ポイントとコンポーネント・スキーマを解決し、複数言語(TypeScript、Python、JavaScript、cURL、C#)向けて検索、検査、検証、HTTPクライアンド生成のためのMCPツールを公開します。


📚 詳参なドキュメンテーション

専門的なガイドや完全なるダイアグラムについては、以下を参照してください:

  • ️ [システム・アーキテクチュア・ガイド (docs/ARCHITECTURE.md)](file://, in/Users/Manuel/Documents/Vivaerobuses/Doters/MCP/mcp-docu-mid/docs/ARCHITECTURE.md): フロー図、セッションバインジグ、オーミーバビティ、アトミックなパスタンス、サーキットブレール。

  • ️ [MCPツール・リファレンス (docs/TOOLS_REFERENCE.md)](file://, in/...): 各ツールのパラメター、JSONスキーマ、応答例を詳網。

  • 🏆 Swagger / OpenAPI ファイル・ガイド (docs/SWAGGER_GUIDE.md): .yml, .json 仕様の追加、検証、整理方。

  • 📆 Doters API Internal 構造仕様 (docs/MIDDLEWARE_API_SPEC.md): middleware-api.json の 110 points, 221 DTOs, αポンスラッパー, 25ドメインの分析。


Related MCP server: mcp-swagger

️ 主な特長

  1. 自動込み込みと Dフィレース(swaggers/):

    • .yml, .yaml, .json のファイルを再帰的にス²ン。

    • コンポーネント、パラメータ、モデル内の$ref参照を完全に解決。

  2. LLM向けのコー・インテグレーション生成:

    • generate_integration_code: 任意のエンドポイントに対し、強く型付けされたクライアントを生成。

    • TypeScript(fetch / axios)、JavaScript、Python(httpx / requests)、cURL、C# をサポート。

  3. セキュリティの検証と抽出:

    • validate_payload: JSONペイロードの型と必須フィールドを事前検証。

    • get_security_schemes: 認証スキーマを抽出(Bearerトークン、APIキー、OAuth2)。

  4. デュアル・トランスポート:

    • STDIO: Claude Desktop, Antigravity, Cursor, MCP extensionsとの standard integration。

    • SSE / HTTP: /sse, /meessages, /metrics, /helth, /dashboard を備えた Express サーバー。

  5. オーーバーイとセキュリティ:

    • ログはPinoによりprocess.stderrへ完全に専出。

    • /metrics での Prometheus メトリクs(prom-cl)。

    • /meessages でのセッション・バ计バインデ and Session-Jacking 防御。


🇳 3ステップのインテグレーション・フロー(ゼロ・コーー)

新しarapi integrationを100% スケール可能・摩擦なし・コード1行も変えずにするため、サーバーはオートデイスカバリーと約に基づくロードを実装しています:

flowchart LR
    A["1. Copiar Archivo\n(swaggers/mi-api.json o .yml)"] --> B["2. Auto-Discovery & Caching\n(Hash SHA-256 + Dereference)"]
    B --> C["3. Auto-Diagnóstico\n(npm run self-test)"]
    C --> D["✅ Disponible en las 8 Tools MCP\n(search_docs, get_endpoint_doc, etc.)"]

1️⃣ スップ1: ファイルをswaggers/に配置

.json, .yml, .yaml ファイルを [swaggers/](file://, /... ただく配置するだでOKです。

🏖 推奨されるスケール可能な構成(ドメイン・マイクロサビスごと):

スキャナーは再帰的なので、APIイズとともに、テーマックに応じたサブフォルダーでファイルを整理することができます:

swaggers/
├── middleware-api.json                # API Core Middleware
├── partners/
│   ├── avasa-car-rental.json          # Swagger de Avasa
│   └── iamsa-bus.json                 # Swagger de IAMSA
├── payments/
│   └── openpay-gateway.yml            # OpenAPI de Pasarelas de Pago
└── flights/
    └── viva-booking.yaml              # OpenAPI de Reservaciones Viva

[!TIP] 自動表示子(specId):
ファイルベ名から自動的にspecIdを生成します。

  • avasa-car-arental.json $\rightarrow$ specId: "avasa-car-arental"

  • openpay-gatway.yml $\rightarrow$ specId: "openpay-gatway"


2️⃣ スップ2: npm run self-test で整合性を確認

MCPクライアントとして起動したり、手動でサーバーを昇り直す必要はありません。ターミナルで次を実行します:

npm run self-test

このコマンドは<15 msで何をしますか?

  1. 新しいファイルを検出し、SHA-25ハッーを計算します。

  2. $refポインタを自動的に解決し、デリファーします。

  3. 壊れたり欠損した欠損 }参照を無効するのでサーバーがクラッシュしません。

  4. .cache / swaggers / に高パフォーマンス・スアンプショットを生成します。

  5. 結果のマーをリアータ表现します:

{
  "status": "healthy",
  "checks": {
    "swaggers": {
      "status": "pass",
      "specsCount": 4,
      "endpointsCount": 285,
      "schemasCount": 412
    }
  }
}

3️⃣ Step 3: エージェントとLLMから検クする準備が完了

すぐに、8つのMCPツールが新規エンドポイントをスキーマを追加設定なしで学習・取込します:

  • グローバル検索: search_docs({ quary: "rent a autos" }) で、全スワガースを一度に横断検索します。

  • フィルター検索: search_docs({ query: "renta, specd: "avasa-car-1-rental" }) で、そのAPIだけを照合します。

  • コーデ生成: generate_integration_code({ path: "/v1/cars/book" language: "typeScript" }) で、型付きクライアントを生成します。

  • ペイロード検証: validate_payload({ schemaName: "CarBokkingDto", payload: { ... } }) で、新しいモデルに対して検証します。


🏆 LLMで最大品質を保証するための実装実践

言語モデルが新しいSwaggerを読んだとき、最良のコードと正確な値を生成できるように:

  1. アベースURLを宣言する(servers):

    servers:
      - url: https://api.vivaaerobus.com/v1
        description: Ambiente de Producción
  2. スキーマする擬 (example / examples): 例を含めることで、generate_integration_code と LLMが、実際のテスト用ペイロードを自動で作することができます。

  3. 明確のタグするタグでグルーパングする(例:["CarRental", "Payments" ])、search_docs({ tag: "Payments" }) でエージェントがすばやくエンドポイント集まりをフィルターができます。

  4. セキュリティを宣言する(components.securitySchemes): bearerFormat: JWT、apiKey、OAuth2Fを指定すると、get_security_schemes ツールが必要なヘッダーを公开できます。


{MCPツールの一覧

ツール

説明

主なパメータ

list_specs

ロードされた全スワースのバシコン、サーバー、ルート数を一覧。

なし

search_docs

キールードでエンドポイント、ダモデル、ナビ=検索します。

query (必須), specId (任意), tag (任意), limit (任意)

get_endpoint_doc

エンドポイントの完全な仕様(デリファンス済み)を取得します。

path (必須), method (任意, 既定: GET), specId (任意)

get_schema_doc

デリファンス済みのデータ・スキーマを取得します。

schemaName (必須), specId (任意)

generate_tegration_code

TypeScript, Python, JS, cURL, C# 向けの本番工業用コードを生成

path (必須), method (任意), language (任意), clientType (任意)

get_security_schemes

認証方式と要求ヘッダーを取得します。

specId (任意)

validate_payload

エンドポイントを呼寄出す前に、ペイロードをスキーマに対して検証。

schemaName (必須), payload (必須), specId (任意)

query_api_knowledge

APIのビジネスやアーキテクに関する質問への回答を統合します。

query (必須), specId (任意)


実現環境変数(.env)

環境変数

説明

既定の値

TRANSPORT_MODE

トランスポートモード (stdio、stdio、stdio)

stdio

PORT

SSE/HTTP用のリズン・ポート

3000

LOG_LEVEL

ログレベル (debug, info, warn, error)

info

MCP_API_KEY

API認証の秘密キ

default-software

ENABLE_AUTH

有効/有効 (true false)

true

ALLOWED_ORIGNS

CORS have permission来源

*

DASHBOARD_USER

ダッシュボード Web へのアクセスに使うユーザー名

admin

DASHBOARD_PASSWOR

ダッシュボード Web へのアクセスに使うパスワード

admin

RATE_LIMIT_WINDOW_MS

Rate limitウィンド– (ms)

9000 (15分)

RATE_LIMIT_MAS

ウインドーごとの最大要込み数

1000

STATS_STORAGE_EN_L

ディスク上の統計スの保存

true

STATS_STORAGE_PATH

保存ファイルのパス

data/stats.json

SWAGERS_IR

OpenAPI仕様フォルダー

swaggers


💡 クイック・スタート

# 1. Instalar dependencias
npm install

# 2. Autodiagnóstico en runtime (<5ms)
npm run self-test

# 3. Iniciar en modo STDIO (predeterminado)
npm start

# 4. Iniciar en modo SSE / HTTP (servidor web)
TRANSPORT_MODE=sse PORT=3000 npm start

〵 自動テトとベンチマーク

このプロジェクトには、116テス(100%per)と文カバレッジ90%以上を含む統合テスートスートがあります:

# 1. Ejecutar suite completa de pruebas unitarias y de integración
npm test

# 2. Reporte de cobertura detallado con Vitest y V8 (>93% Stmts)
npm run test:coverage

# 3. Pruebas de carga de alta concurrencia (100 agentes concurrentes)
npm run test:load

# 4. Benchmark de latencia y throughput (<5ms)
npm run benchmark

# 5. Pipeline de integración continua (CI)
npm run test:ci

|| Docker でのインタロイメント

# Construir imagen Docker multi-stage
docker build -t mcp-doc-mid:latest .

# Ejecutar contenedor en modo SSE
docker run -p 3000:3000 -e TRANSPORT_MODE=sse mcp-doc-mid:latest

Available Tools

8 tools
generate_integration_codeB

Genera un snippet/cliente de código listo para producción en TypeScript, JavaScript, Python, cURL o C# para un endpoint específico.

NameRequiredDescriptionDefault
pathYesRuta del endpoint a integrar (ej. "/v1/members/{memberId}/balances", "/v1/security/login").
methodNoMétodo HTTP (GET, POST, PUT, DELETE, PATCH). Por defecto GET.
specIdNoID de la especificación (opcional).
languageNoLenguaje de programación de destino.
clientTypeNoLibrería cliente HTTP preferida (ej. "fetch" o "axios" en TypeScript).

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are present, so the description must carry the full behavioral burden, and it only claims 'producción' (production-ready) quality without explaining output format, side effects, errors, prerequisites, or determinism. With no output schema, the absence of any statement about what the tool actually returns is a real gap.

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?

A single, efficient sentence that front-loads the action verb 'Genera', names the languages, and scopes the tool to a specific endpoint. Zero filler, every phrase earns its place.

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 five-parameter tool with 100% schema coverage this is adequate at a minimum-viable level, but the absence of an output schema and annotations puts more weight on the description than it handles: it doesn't state the return value shape, when to use the tool among its siblings, or whether runtime checks depend on a valid spec/endpoint.

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 baseline is 3 even though the description adds no parameter-level detail. The languages listed in the prose merely echo the enum values of the 'language' parameter, and 'segmento específico' matches 'path', so the description adds almost nothing beyond the schema.

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 uses a specific verb ('Genera') and a clear resource ('un snippet/cliente de código listo para producción... para un endpoint específico'), naming the target languages. Since all sibling tools only list, search, read, validate, or query knowledge, this is unmistakably the only code-generation tool, so it distinguishes itself implicitly.

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 choose this tool versus any sibling, nor does it mention exclusions or prerequisites (e.g., needing a spec or a valid endpoint first). The usage context is only implied by the purpose sentence.

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

get_endpoint_docB

Obtiene la documentación completa, parámetros, request body y respuestas dereferenciadas de un endpoint específico.

NameRequiredDescriptionDefault
pathYesRuta del endpoint (ej. "/v1/members/{memberId}/balances", "/v1/security/login").
methodNoMétodo HTTP (GET, POST, PUT, DELETE, PATCH). Por defecto GET.
specIdNoID o nombre de la especificación a consultar (opcional).

TDQS

B3.4/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 full burden. It discloses that the tool performs a read-only retrieval and specifically highlights that responses are 'dereferenciadas' (resolving $refs), which adds useful behavioral detail. However, it does not mention rate limits, authentication, or what a complete response structure actually looks like.

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?

One concise, dense sentence that starts with the verb and quickly enumerates the returned artifacts. No fluff, redundant phrases, or repetitive wording. It is front-loaded with the core action and object.

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 read-only tool with just 3 well-documented parameters and no output schema, the description sufficiently states what the tool retrieves and the key behavioral trait of de-referencing. The lack of an explicit when-to-use contrast is a gap, but that falls largely under usage guidance rather than overall completeness for invocation.

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 covers all three parameters with detailed descriptions and an enum for method, achieving 100% schema description coverage. The description adds no extra information beyond what the schema already provides, so the baseline of 3 is appropriate.

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 states the specific verb 'Obtiene' and the exact resource: complete documentation including parameters, request body, and de-referenced responses for a specific endpoint. It clearly differentiates from sibling tools like list_specs or get_schema_doc through the 'endpoint específico' phrase, though it does not explicitly name the alternative.

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 gives no guidance on when to use this tool instead of alternatives such as search_docs or get_schema_doc. It merely describes what it retrieves, leaving the selection criteria entirely to the agent to infer. There are no exclusions, prerequisites, or explicit usage contexts.

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

get_schema_docA

Obtiene la definición de un modelo de datos o schema dereferenciado (propiedades, tipos, campos obligatorios y enums).

NameRequiredDescriptionDefault
specIdNoID o nombre de la especificación a consultar (opcional).
schemaNameYesNombre del schema o componente (ej. "LoginRequestDto", "MemberBalanceResponseDto").

TDQS

A3.6/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 behavioral burden. It discloses that the schema is dereferenced and enumerates the returned content (properties, types, required fields, enums), which is useful. It does not mention error cases, optional specId handling, or any resolution side effects, leaving moderate ambiguity.

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?

A single, focused sentence that front-loads the main purpose and appends the relevant definition details. No filler or redundant content. It is compact without losing the essential scope.

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 retrieval tool, the description gives the core information: what is fetched and what the return content includes. There is no output schema, so a bit more detail on the response format or specId behavior would help, but the description is substantially sufficient for an agent to decide to invoke it.

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 input schema already documents both parameters fully (coverage 100%), so baseline 3 applies. The description adds little about parameter semantics beyond implying schemaName is the thing to look up; no extra detail about how specId interacts is provided.

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 identifies the resource (schema/data model definition) and what the tool returns (properties, types, required fields, enums). It does not explicitly differentiate from siblings like get_endpoint_doc or get_security_schemes, but the resource type is distinct enough that an agent can infer its purpose.

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?

Usage context is implied: use this tool when you need a schema definition (e.g., 'LoginRequestDto' or 'MemberBalanceResponseDto'). There is no explicit guidance about when not to use it or which sibling alternative to prefer, but the purpose itself gives reasonable inference.

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

get_security_schemesA

Obtiene los esquemas de autenticación y seguridad (Bearer token, API Key, OAuth2) definidos en las especificaciones OpenAPI.

NameRequiredDescriptionDefault
specIdNoID de la especificación (opcional, si se omite lista todos).

TDQS

A3.6/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 behavioral disclosure burden. It does indicate a read-only 'obtiene' operation and states the source of the schemes (OpenAPI specifications). It does not disclose behaviors such as error handling, pagination, or what happens when specId is omitted — although the schema notes that behavior, so it is not completely hidden.

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 focused sentence with no filler. It immediately states the action and includes a parenthetical list of scheme types that adds useful detail without bloat. Structurally front-loaded and easy to parse.

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?

This is a simple read-only tool with one optional parameter and no output schema, so full context is largely achieved. The description covers what is returned, and the schema covers the parameter behavior. The only missing piece is an explicit statement that an omission of specId returns schemes across all specs, but that is already in the schema description.

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 only parameter, specId, has 100% schema description coverage ('opcional, si se omite lista todos'). The main description does not add any additional parameter detail beyond the schema baseline. The mention of scheme types (Bearer token, API Key, OAuth2) describes output concepts, not parameter semantics.

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 a specific verb and resource: 'obtiene' (gets) and 'esquemas de autenticación y seguridad' (authentication/security schemes), and names concrete types (Bearer token, API Key, OAuth2). It is clearly distinct from siblings like get_endpoint_doc or get_schema_doc, but does not explicitly distinguish itself by name.

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 intended use is implied: this tool is for retrieving security schemes from OpenAPI specs. However, it never explicitly explains when to use this tool versus a sibling, such as get_endpoint_doc or get_schema_doc, which may also provide security-related information. Guidance is functional but not direct.

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

list_specsA

Lista todas las especificaciones OpenAPI/Swagger (.yml y .json) que han sido aprendidas y dereferenciadas en memoria con sus servidores y versiones.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

There are no annotations provided, so the description carries the full burden. It does disclose that the specs are 'aprendidas y dereferenciadas en memoria' and that servers and versions are included, which is useful. It does not explain any potential limitations, whether it requires existing in-memory data, or what happens if no specs exist.

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?

Exactly one sentence with no filler. It includes the resource type, file extensions, the in-memory state, and the return components in a compact, front-loaded way.

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 parameterless listing tool, the description is sufficiently complete: it names the entities, their formats, their state, and the included properties. Minor gaps such as the exact response envelope or error behavior exist, but they are not critical for this simple operation.

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 tool has zero parameters, so the description has very little burden here. The schema already covers all parameters. The description's mention of servers and versions gives a hint about the result shape, but no parameter semantics are needed.

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 immediately states the verb ('Lista'), the resource ('todas las especificaciones OpenAPI/Swagger'), and the scope ('aprendidas y dereferenciadas en memoria'). It clearly differentiates this from sibling tools like get_schema_doc and get_endpoint_doc by being a list operation.

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 says what the tool does but gives no guidance on when to use it versus the sibling tools, such as get_schema_doc or get_endpoint_doc. An agent must infer that this is the right choice for enumerating available specs.

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

query_api_knowledgeB

Consulta y sintetiza el conocimiento transversal de las APIs OpenAPI aprendidas para resolver dudas de negocio o integración.

NameRequiredDescriptionDefault
queryYesPregunta o consulta técnica/negocio sobre la funcionalidad disponible en las APIs.
specIdNoID o nombre de la especificación para restringir la consulta (opcional).

TDQS

B3.2/5.0
Behavior2/5

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

No hay anotaciones, por lo que la descripción debe cargar con la transparencia de comportamiento. Dice que sintetiza conocimiento, lo cual aporta algo, pero no aclara si la búsqueda es de solo lectura, qué tipo de respuesta devuelve, si el conocimiento puede estar incompleto, ni cómo se relaciona con las especificaciones ya aprendidas.

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?

La descripción es una única oración clara y sin contenido redundante. Comunica el propósito y el contexto principal de forma compacta, aunque sacrifica espacio para matices de uso y comportamiento.

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?

Para una herramienta de consulta con dos parámetros y esquema completo, la descripción alcanza lo esencial: qué hace y con qué objetivo. Pero al no existir esquema de salida ni anotaciones, y al competir con varias herramientas documentales cercanas, faltan detalles sobre resultado, alcance y límites de la 'síntesis' prometida.

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?

La cobertura de esquema es del 100%, por lo que los parámetros query y specId ya están documentados en el esquema. La descripción no añade detalles nuevos sobre el formato de la consulta ni sobre cómo afecta specId al resultado, por lo que se mantiene la línea base.

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?

La descripción nombra una acción específica ('consulta y sintetiza') y un recurso concreto: el conocimiento transversal de APIs OpenAPI aprendidas. Se diferencia razonablemente de herramientas como list_specs o get_endpoint_doc, aunque no delimita explícitamente su frontera con ellas.

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?

La descripción indica un contexto de uso claro: resolver dudas de negocio o integración y trabajar sobre conocimiento transversal de varias APIs. Sin embargo, no señala cuándo preferir esta herramienta sobre alternativas como search_docs o get_schema_doc, ni menciona exclusiones o cuándo no usarla.

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

search_docsA

Busca endpoints, operaciones, etiquetas y modelos de datos en todas las especificaciones OpenAPI aprendidas por palabras clave.

NameRequiredDescriptionDefault
tagNoFiltrar por etiqueta/tag específico (opcional, ej. "MemberApi", "Security", "CarRental").
limitNoNúmero máximo de resultados a retornar (por defecto 10, máximo 50).
queryYesTérmino de búsqueda (ej. "balances", "login", "points", "memberId", "accrual").
specIdNoID o nombre de la especificación para limitar la búsqueda (opcional).

TDQS

A3.5/5.0
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 conveys that this is a search-like operation across the full learned corpus, which is useful, but it does not mention whether the operation is strictly read-only, how results are ordered or shaped, or whether pagination or auth constraints apply.

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?

One front-loaded sentence with no filler. It states the action, the resources being searched, the corpus scope, and the keyword mechanism in a compact and immediately parseable way.

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 input side is well covered by the schema, and the description gives the high-level behavior. But there is no output schema and no explanation of what results look like, and the boundary with sibling tools, especially query_api_knowledge, is not clarified.

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 parameters like query, tag, limit, and specId already have clear descriptions and examples. The description only reinforces the keyword-search mechanism without adding meaning beyond what the schema already provides.

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 identifies the verb ('Busca'), the resource types ('endpoints, operaciones, etiquetas y modelos de datos'), and the scope ('todas las especificaciones OpenAPI aprendidas'). It distinguishes itself from list_specs and the get_doc siblings, though it does not explicitly address possible overlap with query_api_knowledge.

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 usage context is implied: use this tool for keyword-based search across learned OpenAPI specifications. However, there are no explicit when-to-use or when-not-to-use conditions, and no sibling alternatives are named, so an agent has to infer differentiation.

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

validate_payloadA

Valida si un payload JSON cumple con la estructura, campos obligatorios y tipos de datos del schema OpenAPI antes de generar código.

NameRequiredDescriptionDefault
specIdNoID de la especificación (opcional).
payloadYesObjeto JSON a validar.
schemaNameYesNombre del schema a validar contra (ej. "LoginRequestDto", "MemberBalanceResponseDto").

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 carry the full burden of behavioral disclosure. It says validation occurs, but does not state whether it is read-only, what happens on invalid or valid payloads, whether errors are returned as exceptions, arrays, or booleans, or if the call has any side effects.

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, efficient sentence with no wasted words. It starts with the key verb, names the involved resource and criteria, and closes with the temporal context. Very easy to read.

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?

The tool has no output schema and no annotations, so return values and possible error behavior must be described. The current description only states that validation happens; it leaves unclear whether the tool returns a boolean, an error list, or something else.

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%, and the parameter descriptions in the schema provide the needed meaning: schemaName, payload, and specId. The description adds no per-parameter semantics beyond what is already in the structured schema.

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 uses clear, specific verb ('Valida') and resource ('payload JSON...contra un schema OpenAPI') and even enumerates what is validated: structure, required fields, data types. This clearly distinguishes validate_payload from sibling tools that list, search, get, or generate code.

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 a clear temporal context: 'antes de generar código', so an agent knows to call it before generate_integration_code. It does not mention explicit exclusions or alternatives, but the timing signal is quite useful.

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. 8 tool updatesv1.0.0
    • First observedgenerate_integration_code
    • First observedget_endpoint_doc
    • First observedget_schema_doc
    • First observedget_security_schemes
    • First observedlist_specs
    • First observedquery_api_knowledge
    • First observedsearch_docs
    • First observedvalidate_payload

TDQS

A3.8/5.0

Scored across 8 tools

Disambiguation4/5

Each tool targets a distinct operation: list, search, get endpoint/schema, generate code, security, validate, and query knowledge. Some potential overlap exists between search_docs and query_api_knowledge, but descriptions clarify the difference between keyword search and synthesized cross-cutting knowledge.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case, such as list_specs, get_endpoint_doc, and generate_integration_code. There are no mixed casing styles or vague verb variations.

Tool Count5/5

With 8 tools, the count is well-scoped for an OpenAPI documentation assistant. Each tool covers a necessary aspect of browsing, validating, and generating code from specs without redundancy.

Completeness5/5

The set covers the full document consumption lifecycle: discovering specs, searching content, retrieving endpoint/schema details, understanding security, validating payloads, and generating integration code. No significant gaps are apparent for the server's stated purpose.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Exposes Swagger/OpenAPI API documentation to AI models, enabling exploration, search, and interaction with endpoints, schemas, and execution of API calls.
    14
    26 npm
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to understand and interact with OpenAPI specifications, providing deep insight into API structures for faster and more accurate API integration.
    9
    14 npm
    1
    MIT