Swagger MCP Server について
Swagger MCP Server は Swagger/OpenAPI 仕様を読み込み、MCP 経由で提供するサーバーで、API エンドポイントから MCP ツールを自動生成します。README では個人利用のサーバーとされ、インターネットへの公開は推奨されていません。
主な機能
- 01Swagger・OpenAPI 仕様ファイルの読み込み
- 02Basic、Bearer、API Key、OAuth2 認証への対応
- 03API エンドポイントからの MCP ツール自動生成
- 04リアルタイム通信用の SSE 対応
- 05TypeScript による実装
活用シーン
- 01既存の REST API を MCP クライアントから呼び出す
- 02ローカル環境で社内 API を MCP ツールとして提供する
MCP 対応
本サーバーは Swagger/OpenAPI のエンドポイントを MCP ツールに変換し、/sse と /messages エンドポイントを通じて MCP クライアントと通信します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Swagger MCP サーバー
Swagger/OpenAPI 仕様を取り込み、Model Context Protocol(MCP)を通じて提供するサーバーです。
機能
- Swagger/OpenAPI 仕様を読み込みます
- 複数の認証方式をサポートします:
- Basic 認証
- Bearer トークン
- API キー(ヘッダーまたはクエリ)
- OAuth2
- API エンドポイントから MCP ツールを自動生成します
- リアルタイム通信のための Server-Sent Events(SSE)をサポートします
- TypeScript をサポートします
セキュリティ
これは個人用サーバーです!! パブリックインターネットに公開しないでください。 基盤となる API で認証が必要な場合は、MCP サーバーをパブリックインターネットに公開しないでください。
TODO
- シークレット — MCP サーバーが、ユーザーのシークレットを使って API リクエストを認証できるようにする必要があります
- 包括的なテストスイート
前提条件
- Node.js(v18 以降)
- Yarn パッケージマネージャー
- TypeScript
インストール
- リポジトリをクローンします:
git clone https://github.com/dcolley/swagger-mcp.git
cd swagger-mcp
- 依存関係をインストールします:
yarn install
- サンプルをもとに
.envファイルを作成します:
cp .env.example .env
-
Swagger/OpenAPI 仕様を設定します:
- プロジェクト内に Swagger ファイルを配置します(例:
swagger.json) - または、Swagger 仕様の URL を指定します
- プロジェクト内に Swagger ファイルを配置します(例:
-
config.jsonの設定をサーバー設定に合わせて更新します:
{
"server": {
"host": "localhost",
"port": 3000
},
"swagger": {
"url": "url-or-path/to/your/swagger.json",
"apiBaseUrl": "https://api.example.com", // Fallback if not specified in Swagger
"defaultAuth": { // Fallback if not specified in Swagger
"type": "apiKey",
"apiKey": "your-api-key",
"apiKeyName": "api_key",
"apiKeyIn": "header"
}
}
}
注:サーバーは、設定ファイルより Swagger 仕様の設定を優先します:
- Swagger ファイルに
servers配列が含まれている場合、最初のサーバー URL がベース URL として使用されます - Swagger ファイルでセキュリティスキームが定義されている場合、認証に使用されます
- Swagger ファイルに設定が指定されていない場合は、設定ファイルの値がフォールバックとして使用されます
使い方
- 開発サーバーを起動します:
yarn dev
- 本番環境向けにビルドします:
yarn build
- 本番サーバーを起動します:
yarn start
API エンドポイント
GET /health- サーバーの稼働状況を確認しますGET /sse- Server-Sent Events 接続を確立しますPOST /messages- MCP サーバーにメッセージを送信します
テスト
テストスイートを実行します:
# Run tests once
yarn test
# Run tests in watch mode
yarn test:watch
# Run tests with coverage report
yarn test:coverage
認証
このサーバーは、さまざまな認証方式をサポートしています。Swagger ファイルに指定されていない場合のフォールバックとして、config.json ファイルで設定してください。
Basic 認証
{
"defaultAuth": {
"type": "basic",
"username": "your-username",
"password": "your-password"
}
}
Bearer トークン
{
"defaultAuth": {
"type": "bearer",
"token": "your-bearer-token"
}
}
API キー
{
"defaultAuth": {
"type": "apiKey",
"apiKey": "your-api-key",
"apiKeyName": "X-API-Key",
"apiKeyIn": "header"
}
}
OAuth2
{
"defaultAuth": {
"type": "oauth2",
"token": "your-oauth-token"
}
}
開発
- 開発サーバーを起動します:
yarn dev
ライセンス
このプロジェクトは Apache 2.0 License のもとでライセンスされています。
環境変数
PORT:サーバーのポート(デフォルト:3000)API_USERNAME:API 認証用のユーザー名(フォールバック)API_PASSWORD:API 認証用のパスワード(フォールバック)API_TOKEN:認証用の API トークン(フォールバック)DEFAULT_API_BASE_URL:API エンドポイントのデフォルトのベース URL(フォールバック)DEFAULT_SWAGGER_URL:デフォルトの Swagger 仕様 URL
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。