Skip to main content
Glama
by auto-browse

OpenAPI MCP サーバーのバンドル解除

鍛冶屋のバッジ

このプロジェクトは、Model Context Protocol(MCP)サーバーに、OpenAPI仕様ファイルを複数のファイルに分割したり、特定のエンドポイントを新しいファイルに抽出したりするためのツールを提供します。これにより、MCPクライアント(AIアシスタントなど)がOpenAPI仕様をプログラム的に操作できるようになります。

前提条件

  • Node.js (LTS バージョンを推奨、例: v18 または v20)

  • npm (Node.js に付属)

Related MCP server: MCP-openproject

使用法

Smithery経由でインストール

Smithery経由で Claude Desktop 用の Unbundle OpenAPI MCP Server を自動的にインストールするには:

npx -y @smithery/cli install @auto-browse/unbundle_openapi_mcp --client claude

このサーバーを使用する最も簡単な方法はnpxを使用することです。これにより、グローバル インストールを必要とせずに常に最新バージョンを使用できます。

npx @auto-browse/unbundle-openapi-mcp@latest

あるいは、グローバルにインストールすることもできます (通常は推奨されません)。

npm install -g @auto-browse/unbundle-openapi-mcp # Then run using: unbundle-openapi-mcp

サーバーが起動し、標準入出力 (stdio) で MCP 要求をリッスンします。

クライアント構成

このサーバーをVS Code、Cline、Cursor、Claude DesktopなどのMCPクライアントで使用するには、それぞれの設定ファイルに構成を追加してください。推奨される方法はnpxを使用することです。

VS Code / クライン / カーソル

次のコードをユーザーsettings.json json ( Ctrl+Shift+P > Preferences: Open User Settings (JSON)アクセス可能) またはワークスペース ルートの.vscode/mcp.jsonファイルに追加します。

// In settings.json: "mcp.servers": { "unbundle_openapi": { // You can choose any key name "command": "npx", "args": [ "@auto-browse/unbundle-openapi-mcp@latest" ] } // ... other servers can be added here }, // Or in .vscode/mcp.json (omit the top-level "mcp.servers"): { "unbundle_openapi": { // You can choose any key name "command": "npx", "args": [ "@auto-browse/unbundle-openapi-mcp@latest" ] } // ... other servers can be added here }

クロードデスクトップ

claude_desktop_config.jsonファイルに次の内容を追加します。

{ "mcpServers": { "unbundle_openapi": { // You can choose any key name "command": "npx", "args": ["@auto-browse/unbundle-openapi-mcp@latest"] } // ... other servers can be added here } }

構成を追加した後、変更を有効にするためにクライアント アプリケーションを再起動します。

提供されるMCPツール

split_openapi

説明: redocly splitコマンドを実行し、OpenAPI 定義ファイルをその構造に基づいて複数の小さなファイルに分割します。

引数:

  • apiPath (文字列、必須): 入力 OpenAPI 定義ファイルへの絶対パス (例: openapi.yaml )。

  • outputDir (文字列、必須): 分割出力ファイルを保存するディレクトリへの絶対パス。このディレクトリが存在しない場合は作成されます。

戻り値:

  • 成功した場合: redocly splitコマンドからの標準出力を含むテキスト メッセージ (通常は確認メッセージ)。

  • 失敗した場合: コマンド実行からの標準エラーまたは例外の詳細を含むエラー メッセージ。isError isError: trueでマークされます。

使用例(概念的なMCPリクエスト):

{ "tool_name": "split_openapi", "arguments": { "apiPath": "/path/to/your/openapi.yaml", "outputDir": "/path/to/output/directory" } }

extract_openapi_endpoints

**説明:**大規模なOpenAPI定義ファイルから特定のエンドポイントを抽出し、それらのエンドポイントと参照コンポーネントのみを含む、新しい小さなOpenAPIファイルを作成します。これは、元のファイルを分割し、指定されたパスのみを保持するように構造を変更し、結果をバンドルすることで実現されます。

引数:

  • inputApiPath (文字列、必須): 大規模な入力 OpenAPI 定義ファイルへの絶対パス。

  • endpointsToKeep (文字列の配列、必須):最終出力に含めるエンドポイントパス(文字列)のリスト(例: ["/api", "/api/projects/{id}{.format}"] )。元の仕様に見つからないパスは無視されます。

  • outputApiPath (文字列、必須): 最終的な、より小さなバンドルされたOpenAPIファイルを保存する絶対パス。ディレクトリが存在しない場合は作成されます。

戻り値:

  • 成功した場合: 作成されたファイルのパスとredocly bundleコマンドからの標準出力を示すテキスト メッセージ。

  • 失敗時: 失敗したステップ (分割、変更、バンドル) の詳細を含むエラー メッセージ。isError isError: trueでマークされます。

使用例(概念的なMCPリクエスト):

{ "tool_name": "extract_openapi_endpoints", "arguments": { "inputApiPath": "/path/to/large-openapi.yaml", "endpointsToKeep": ["/users", "/users/{userId}/profile"], "outputApiPath": "/path/to/extracted-openapi.yaml" } }

**注:**このサーバーは、内部的にnpx @redocly/cli@latestを使用して、基盤となるsplitbundleコマンドを実行します。キャッシュされていない場合、 npx @redocly/cli extract_openapi_endpoints取得するにはインターネット接続が必要になる場合があります。extract_openapi_endpoints プロセス中に一時ファイルが作成され、自動的にクリーンアップされます。

発達

ソースから貢献したりサーバーを実行したりしたい場合は、次の手順に従ってください。

  1. **クローン:**このリポジトリをクローンします。

  2. ナビゲート: cd unbundle_openapi_mcp

  3. 依存関係のインストール: npm install

  4. ビルド: npm run build (TypeScript をdist/にコンパイルします)

  5. 実行: npm start ( dist/内のコンパイルされたコードを使用してサーバーを起動します)

One-click Deploy
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Latest Blog Posts

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/auto-browse/unbundle_openapi_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server