mcpField
O
OpenAPI to MCP server Generator

OpenAPI to MCP server Generator

ローカル
github.com/vincent-pli開発ツール177 週間前に更新

OpenAPI to MCP server Generator について

OpenAPI to MCP server Generatorは、OpenAPI仕様からMCPサーバープロジェクトを生成するコマンドラインツールです。APIエンドポイントごとのツールと、サーバーの実行に必要なファイルを作成します。

主な機能

  1. 01APIエンドポイントごとのツール生成
  2. 02ネストした$ref参照への対応
  3. 03サーバー設定とプロジェクトファイルの生成
  4. 04環境変数による生成サーバーの設定
  5. 05クライアントへのログ通知

活用シーン

  1. 01ローカルのOpenAPI仕様からMCPサーバーを作成
  2. 02リモートのOpenAPI URLからサーバープロジェクトを生成

MCP 対応

OpenAPIエンドポイントをツールとして公開するMCPサーバーのコードを生成します。生成されたサーバーはstdioトランスポートに対応し、MCPクライアント向けに設定できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

OpenAPI から MCP サーバーを生成するツール

OpenAPI 仕様から Model Context Protocol(MCP)サーバーのコードを生成するコマンドラインツールです。このツールを使うと、LLM(大規模言語モデル)と API の橋渡しをする MCP サーバーをすばやく作成できます。

npm バージョン ライセンス:MIT

英語 | 简体中文

はじめに

このリポジトリはもともと openapi-mcp-generator をフォークしたもので、以下の機能を追加しています。

  • OpenAPI 仕様のネストされた $ref をサポート
  • ソースコードに加えて、MCP サーバーの設定も生成
  • クライアントがログレベルを設定し、通知としてログメッセージをクライアントに送信可能
  • エラー発生時に、メッセージを stderr に送信
  • Docker イメージのビルドをサポートし、クライアントが Docker コンテナ内で実行できるよう案内(2025/5/8 更新)

機能

  • ツールの自動生成:OpenAPI 仕様の各 API エンドポイントを MCP ツールに変換します
  • トランスポートの選択肢:stdio のみをサポートしています。sse には mcp-proxy を利用できます
  • 完全なプロジェクト設定:MCP サーバーの実行に必要なすべてのファイルを生成します
  • 簡単な設定:生成されたサーバーは、環境変数を使って簡単に設定できます

インストール

# Install globally from npm
npm install -g openapi-mcpserver-generator

# Or with yarn
yarn global add openapi-mcpserver-generator

# Or with pnpm
pnpm add -g openapi-mcpserver-generator

使い方

OpenAPI 仕様から MCP サーバーを生成します。

openapi-mcpserver-generator --openapi path/to/openapi.json --output /Path/to/output
コマンドラインオプション
オプションエイリアス説明デフォルト
--openapi-oOpenAPI 仕様のパスまたは URL(必須)
--output-d生成ファイルの出力ディレクトリ./mcp-server
--name-nMCP サーバーの名前openapi-mcp-server
--version-vMCP サーバーのバージョン1.0.0
--transport-tトランスポート方式(stdio、websocket、http)stdio
--help-hヘルプ情報を表示
使用例

ローカルの OpenAPI ファイルから生成します。

openapi-mcpserver-generator --openapi ./specs/petstore.json --output ./petstore-mcp

リモートの OpenAPI URL から生成します。

openapi-mcpserver-generator --openapi https://petstore3.swagger.io/api/v3/openapi.json --output ./petstore-mcp

生成されるファイル

このツールは、出力ディレクトリに以下のファイルを生成します。

  • server.js - MCP サーバーのメイン実装
  • package.json - 依存関係とスクリプト
  • README.md - 生成されたサーバーのドキュメント
  • .env.example - 環境変数のテンプレート
  • types.d.ts - API の TypeScript 型定義
  • tsconfig.json - TypeScript の設定
  • Dockerfile - Dockerfile
  • .dockerignore - Docker の除外ファイル

生成されたサーバーの使用

MCP サーバーを生成した後、以下の手順を実行します。

  1. 生成されたディレクトリに移動します。

    cd my-mcp-server
    
  2. 依存関係をインストールします。

    npm install
    
  3. 環境ファイルを作成します。

    cp .env.example .env
    
  4. .env を編集して、API のベース URL と必要なヘッダーを設定します。

    API_BASE_URL=https://api.example.com
    API_HEADERS=Authorization:Bearer your-token-here
    
  5. サーバーを起動します。

    npm start
    

必要条件

  • Node.js 16.x 以降
  • npm 7.x 以降

E2E の例

MCP ホストとして mcpclihost を使って試してみることをおすすめします。 このツール(mcpclihost)は Azure Openai と deepseek の両方に対応しています。

生成された MCP サーバーの設定を、次のように追加できます。

{
  "mcpServers": {
    "petstore-mcp": {
      "command": "/usr/local/bin/node",
      "args": [
        "/Users/lipeng/workspaces/github.com/vincent-pli/openapi-mcpserver-generator/petstore-mcp/server.js",
        "run"
      ]
    }
  }
}

これを ~/.mcp.json(mcpclihost のデフォルトの MCP サーバー設定パス)に追加して、試してみてください。

OpenAPI におけるセキュリティスキーム

OpenAPI 3.0 は4 種類のセキュリティタイプをサポートしています。

  • apiKey: 例:
        "securitySchemes": {
            "my_api_key": {
                "type": "apiKey",
                "name": "api_key",
                "in": "header"
            }
        }

大文字にした MY_API_KEY_{securitySchemes.my_api_key.name} という環境変数が必要です。この場合、.env に MY_API_KEY_API_KEY を定義します。

  • http:
        "securitySchemes": {
            basicAuth: {
               type: "http",
               scheme: "basic"
            }
        }

.env から BASICAUTH_USERNAME と BASICAUTH_PASSWORD を検索します。

        "securitySchemes": {
            basicAuth: {
               type: "http",
               scheme: "bearer"
            }
        }

.env から BASICAUTH_BEARERTOKEN を検索します。

  • oauth2: oauth2 は複雑なため、自動処理できません。access token を手動で取得し、次のように .env に設定することをおすすめします。
API_HEADERS=Authorization:Bearer your-access-token-here
  • openIdConnect まだサポートされていません。

ライセンス

Apache 2.0

コメント

MCP は初めてですか?

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

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