mcpField
S
Swagger MCP Server

Swagger MCP Server

ローカル
github.com/dcolley開発ツール11617 週間前に更新

Swagger MCP Server について

Swagger MCP Server は Swagger/OpenAPI 仕様を読み込み、MCP 経由で提供するサーバーで、API エンドポイントから MCP ツールを自動生成します。README では個人利用のサーバーとされ、インターネットへの公開は推奨されていません。

主な機能

  1. 01Swagger・OpenAPI 仕様ファイルの読み込み
  2. 02Basic、Bearer、API Key、OAuth2 認証への対応
  3. 03API エンドポイントからの MCP ツール自動生成
  4. 04リアルタイム通信用の SSE 対応
  5. 05TypeScript による実装

活用シーン

  1. 01既存の REST API を MCP クライアントから呼び出す
  2. 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

インストール

  1. リポジトリをクローンします:
git clone https://github.com/dcolley/swagger-mcp.git
cd swagger-mcp
  1. 依存関係をインストールします:
yarn install
  1. サンプルをもとに .env ファイルを作成します:
cp .env.example .env
  1. Swagger/OpenAPI 仕様を設定します:

    • プロジェクト内に Swagger ファイルを配置します(例:swagger.json)
    • または、Swagger 仕様の URL を指定します
  2. 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 ファイルに設定が指定されていない場合は、設定ファイルの値がフォールバックとして使用されます

使い方

  1. 開発サーバーを起動します:
yarn dev
  1. 本番環境向けにビルドします:
yarn build
  1. 本番サーバーを起動します:
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"
  }
}

開発

  1. 開発サーバーを起動します:
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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。