mcpField
O
open-api-mcp

open-api-mcp

ローカル
github.com/nexpando-com開発ツール066 週間前に更新

open-api-mcp について

open-api-mcp は、既存 API を MCP クライアントに公開したい開発者向けのコマンドラインツールです。OpenAPI 仕様から MCP サーバーを生成し、Zod ベースの型安全な API クライアントも作成します。

主な機能

  1. 01OpenAPI 仕様から MCP サーバーを生成
  2. 02JSON と YAML の仕様に対応
  3. 03Zod ベースの API クライアント生成
  4. 04環境変数または Docker Compose による設定
  5. 05認証方式のカスタマイズ

活用シーン

  1. 01既存の OpenAPI 操作を MCP ツールとして公開
  2. 02API リクエスト用の型安全なクライアントを生成

MCP 対応

OpenAPI 仕様から MCP サーバーを生成し、その API 操作を MCP クライアント向けのツールとして公開します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

open-api-mcp

Open API MCP は、OpenAPI 仕様に基づいて MCP(Model Context Protocol)サーバーを生成するコマンドラインツールです。

OpenAPI スキーマを活用し、Zod を使用して型安全なクライアントを生成することで、API クライアントとサーバーの作成プロセスを簡素化します。

機能

  • OpenAPI 仕様から MCP サーバーを生成します。
  • 型安全なやり取りを実現する、Zod ベースの API クライアントを自動作成します。
  • JSON と YAML の両方の OpenAPI 仕様形式に対応しています。
  • 環境変数または Docker Compose から簡単に設定できます。

仕組み

  1. リポジトリをクローンします:

    git clone https://github.com/nexpando-com/open-api-mcp.git
    cd open-api-mcp
    
  2. 依存関係をインストールします:

    bun install
    
  3. OpenAPI 仕様を準備します:

    • OpenAPI スキーマをダウンロードします:
      wget -q -O open-api.json https://fakestoreapi.com/fakestoreapi.json
      
    • または curl を使用します:
      curl -o open-api.json https://fakestoreapi.com/fakestoreapi.json
      
  4. 環境変数を定義します:

    cp .env.template .env
    
  5. MCP サーバーを起動します:

    bun dev
    # or
    ./cli.sh open-api.json
    
  6. コンソール出力:

     Tool loginUser added to OpenApi MCP server.
     Tool getAllCarts added to OpenApi MCP server.
     Tool addCart added to OpenApi MCP server.
     Tool getCartById added to OpenApi MCP server.
     Tool updateCart added to OpenApi MCP server.
     Tool deleteCart added to OpenApi MCP server.
     Tool getAllProducts added to OpenApi MCP server.
     Tool addProduct added to OpenApi MCP server.
     Tool getProductById added to OpenApi MCP server.
     Tool updateProduct added to OpenApi MCP server.
     Tool deleteProduct added to OpenApi MCP server.
     Tool getAllUsers added to OpenApi MCP server.
     Tool addUser added to OpenApi MCP server.
     Tool getUserById added to OpenApi MCP server.
     Tool updateUser added to OpenApi MCP server.
     Tool deleteUser added to OpenApi MCP server.
     [FastMCP info] server is running on HTTP Stream at http://localhost:3000/stream
     OpenApi MCP server 0.0.1 running as httpStream
    

Docker の設定

  1. specs ディレクトリを作成します:

    mkdir specs
    
  2. OpenAPI 仕様(open-api.json または open-api.yml)を specs ディレクトリに追加します。

  3. docker-compose.yml ファイルを作成します。設定例:

    services:
      open-api-mcp:
        image: nexpando/open-api-mcp
        container_name: open-api-mcp
        # ports:
        #  - "3000:3000"
        volumes:
          - ./specs:/app/specs
        environment:
          - OPEN_API_FILE=/app/specs/open-api.json
          - API_URL=  # Example: https://fakestoreapi.com
          # - API_KEY
          # - MCP_NAME=My MCP Server
          # - MCP_VERSION=1.0.0
          # - MCP_TRANSPORT_TYPE=httpStream|sse|stdio
    
  4. API_URL と API_KEY を自身のデータに置き換えます。

  5. MCP サーバーを起動します:

    docker-compose up
    

Librechat の MCP サーバーの例

version: 1.1.4
cache: true
...
mcpServers:
  my-mcp:
    type: streamable-http
    url: http://my-mcp:3000/stream
  mailgun:
    type: streamable-http
    url: http://mailgun-mcp:3000/stream

プロジェクト構成

.
├── cli.sh                  # CLI script to start the MCP server
├── generate-client.ts      # Script to generate Zod-based API clients
├── get-input-output.ts     # Utility functions for input/output paths
├── specs/                  # Directory for OpenAPI specifications
├── mcp-servers/            # Example MCP server configurations
├── Dockerfile              # Dockerfile for containerized deployment
├── docker-compose.yml      # Example Docker Compose configuration
├── README.md               # Project documentation
└── ...

認証のカスタマイズ

このプロジェクトでは HTTP リクエストに Axios を使用しており、デフォルトの認証方法は get-axios.ts ファイルで設定されています。デフォルトでは、API_KEY 環境変数から取得した Bearer トークンを使用します。

認証方法(別のヘッダー、トークンの種類、または認証方式など)をカスタマイズする必要がある場合は、get-axios.ts ファイルを上書きできます。例:

// filepath: [get-axios.ts](http://_vscodecontentref_/1)
import axios from 'axios'

export const getAxiosInstance = () => {
  const options = {
    headers: {
      'X-Custom-Auth': 'YourCustomAuthValue',
      'Content-Type': 'application/json',
    },
  }
  const instance = axios.create(options)
  return instance
}

Docker Compose での認証のカスタマイズ

このプロジェクトでは HTTP リクエストに Axios を使用しており、デフォルトの認証方法は get-axios.ts ファイルで設定されています。デフォルトでは、API_KEY 環境変数から取得した Bearer トークンを使用します。

Docker Compose を使用している場合は、カスタム版のファイルをボリュームとしてマウントすることで、get-axios.ts ファイルを上書きできます。これにより、元のソースコードを変更せずに認証方法をカスタマイズできます。

カスタマイズの手順
  1. 希望する認証ロジックを含むカスタム get-axios.ts ファイルを作成します。例:

    // filepath: ./custom/get-axios.ts
    import axios from 'axios'
    
    export const getAxiosInstance = () => {
      const options = {
        headers: {
          'X-Custom-Auth': 'YourCustomAuthValue',
          'Content-Type': 'application/json',
        },
      }
      const instance = axios.create(options)
      return instance
    }
    
  2. docker-compose.yml ファイルを更新し、デフォルトの get-axios.ts ファイルをカスタム版で上書きします:

    services:
      open-api-mcp:
        image: nexpando/open-api-mcp
        container_name: open-api-mcp
        volumes:
          - ./specs:/app/specs
          - ./custom/get-axios.ts:/app/get-axios.ts
        environment:
          - OPEN_API_FILE=/app/specs/open-api.json
          - API_URL= ...
    
  3. Docker Compose で MCP サーバーを起動します:

    docker-compose up
    

get-axios.ts ファイルを上書きすることで、元のソースコードをそのまま保ちながら、API キーやカスタムヘッダーなど、さまざまな認証方式にプロジェクトを適応させることができます。

参考資料

ライセンス

このプロジェクトは MIT License の下でライセンスされています。詳細については LICENSE ファイルを参照してください。

コメント

MCP は初めてですか?

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

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