MCP Swagger Server について
MCP Swagger ServerはSwagger/OpenAPIドキュメントと仕様に基づくAPIリクエストを、MCP経由で扱うためのサーバーです。URLから仕様を読み込み、仕様に照らしてリクエストを検証します。
主な機能
- 01URLからSwaggerドキュメントを読み込み
- 02全文書をリソースとして公開
- 03仕様に基づくAPIリクエスト
- 04APIキー認証への対応
- 05仕様のキャッシュとリクエスト検証
活用シーン
- 01MCPセッションでAPIドキュメントを確認
- 02OpenAPI仕様に基づくAPI呼び出し
- 03リクエスト送信前のパラメーター検証
MCP 対応
全文書を`swagger://documentation`リソースとして公開し、仕様に基づいてAPIリクエストを行う`makeRequest`ツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ツール一覧はまだ取得されていません
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Swagger Server
Swagger/OpenAPI ドキュメントにアクセスし、仕様に基づいて API リクエストを実行できる MCP サーバーです。
機能
- URL から Swagger ドキュメントを読み込みます
- Swagger の仕様に基づいて API リクエストを実行します
- API キーによる認証に対応しています
- パフォーマンス向上のため、Swagger の仕様をキャッシュします
- Swagger の仕様に照らしてリクエストを検証します
セットアップ
- 依存関係をインストールします:
npm install
- TypeScript コードをビルドします:
npm run build
ローカルでの実行
開発モード:
npm run dev
本番モード:
npm run start
設定
サーバーには、以下の環境変数が必要です:
SWAGGER_URL:Swagger 仕様の URL(必須)AUTH_KEY:API リクエスト用の認証キー(任意)
利用可能なリソースとツール
リソース:swagger-doc
- URI:
swagger://documentation - 説明:Swagger ドキュメント全体を取得します
ツール:makeRequest
Swagger の仕様に基づいて API リクエストを実行します。
パラメーター:
path:API エンドポイントのパスmethod:HTTP メソッド(GET、POST など)parameters:省略可能なパス/クエリパラメーターbody:省略可能なリクエストボディ
例:
const result = await mcp.tools.makeRequest({
path: "/api/users",
method: "GET",
parameters: { userId: "123" }
});
Smithery.ai へのデプロイ
このサーバーは Smithery.ai へのデプロイ用に設定されています。デプロイには、以下が必要です:
- サーバーをビルドして実行する
Dockerfile smithery.yaml設定ファイル- 適切な TypeScript ビルド設定
設定スキーマ
Smithery.ai にデプロイする際は、サーバーを以下のように設定します:
{
"swaggerUrl": "https://api.example.com/swagger.json",
"authKey": "your-api-key" // Optional
}
Smithery を使ったローカルテスト
- Docker イメージをビルドします:
docker build -t mcp-swagger .
- コンテナを実行します:
docker run -e SWAGGER_URL=your-swagger-url -e AUTH_KEY=your-auth-key mcp-swagger
開発
スクリプト
npm run build:TypeScript コードをビルドしますnpm run start:サーバーを本番モードで実行しますnpm run dev:ホットリロードを有効にして、サーバーを開発モードで実行します
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。