モデルコンテキストプロトコル(MCP)サーバー
複数の AI モデル プロバイダーに統合された API を提供する、モデル コンテキスト プロトコルのシンプルなサーバー実装。
特徴
複数の AI プロバイダー (Anthropic、OpenAI) 向けの統合 API
チャット補完と従来の補完のサポート
ツール呼び出しサポート
コンテキスト/システムメッセージの処理
環境ベースの構成
永続性と状態管理のためのMongoDBデータベース
ツール実行履歴と分析
Related MCP server: Model Control Plane (MCP) Server
インストール
セットアップ スクリプトは、必要な API キーの構成をガイドします。
ANTHROPIC_API_KEY- Claude モデルの場合OPENAI_API_KEY- GPTモデルとDALL-E画像生成用STABILITY_API_KEY- 安定拡散画像生成用GOOGLE_CSE_API_KEYとGOOGLE_CSE_ID- ウェブ検索機能用BING_SEARCH_API_KEY- フォールバックウェブ検索用
必要に応じて、 .envファイルを手動で編集することもできます。
MongoDBのセットアップ
MCPサーバーはデータの永続化にMongoDBを使用します。MongoDBの設定にはいくつかのオプションがあります。
オプション 1: 自動セットアップ (推奨)
MongoDB セットアップ スクリプトを実行すると、プロセスがガイドされます。
このスクリプトは次のことを行います。
Dockerが利用可能かどうかを確認する
Docker Compose を使用して MongoDB を起動します (利用可能な場合)
.envファイルで接続を設定する
MongoDB接続を確認する
オプション2: 手動Dockerセットアップ
MongoDB を使い始める最も簡単な方法は、付属の Docker Compose 構成を使用することです。
MongoDBはmongodb://mcpuser:mcppassword@localhost:27017/mcp-serverで利用可能になります。
Mongo Express(Web管理)はhttp://localhost:8081で利用できます。
オプション3: ローカルMongoDBインストール
MongoDB をローカルにインストールする場合:
https://www.mongodb.com/try/download/communityから MongoDB をインストールします。
MongoDBサービスを開始する
.envファイルを次のように更新します。MONGODB_URI=mongodb://localhost:27017/mcp-server
オプション4: MongoDB Atlas (クラウド)
実稼働環境での使用には、MongoDB Atlas が推奨されます。
https://www.mongodb.com/cloud/atlasでアカウントを作成します。
新しいクラスターを作成する
データベースユーザーを設定し、IPアドレスをホワイトリストに登録する
接続文字列を取得し、
.envファイルを更新します。MONGODB_URI=mongodb+srv://<username>:<password>@<cluster>.mongodb.net/mcp-server?retryWrites=true&w=majority
データベース移行
既存のデータを MongoDB に移行するには:
このスクリプトは次のことを行います。
ツール定義をMongoDBに移行する
設定(APIキーなど)をMongoDBに移行する
バックアップデータがある場合はインポートする
使用法
サーバーを起動する
サーバーはhttp://localhost:3000 (または .env で指定したポート) で実行されます。
起動オプション
標準スタート(
npm start):APIキーが設定されているかどうかを確認します
キーが見つからない場合はセットアップを要求します
初めての方におすすめ
開発モード(
npm run dev):コード変更時に自動リロードするために nodemon を使用します
環境チェックは引き続き実行します
開発に最適
クイックスタート(
npm run quick-start):すべての環境チェックをバイパスします
すぐにサーバーを起動します
設定が正しいことがわかっている場合に便利です
PM2 プロダクションモード(
npm run pm2:start:prod):PM2プロセスマネージャを使用してサーバーを実行します
サーバーがクラッシュした場合は自動的に再起動します
実稼働環境に最適化
環境チェックをバイパスする
PM2プロセスマネージャの使用
このサーバーは、Node.jsアプリケーション向けのプロダクションプロセスマネージャーであるPM2で実行できます。PM2は次のような機能を提供します。
プロセス管理(クラッシュ時の再起動)
ログ管理
パフォーマンス監視
負荷分散(複数インスタンスの場合)
PM2コマンド
PM2の設定はecosystem.config.jsに保存されています。このファイルを編集することで、以下の変更を加えることができます。
プロセス名
環境変数
メモリ制限
展開構成
インスタンス数(負荷分散用)
APIエンドポイント
POST /mcp/:provider
統合された API を通じて AI モデルにリクエストを送信します。
URL パラメータ:
provider: 使用する AI プロバイダー (anthropicまたはopenai)
リクエスト本文:
または (レガシー形式):
**レスポンス:**プロバイダーの API からの生のレスポンスを返します。
GET /tools/available
利用可能なすべてのツールの包括的なリストと詳細情報を取得します。
クエリパラメータ:
format- レスポンス形式:json(デフォルト)、yaml、table、またはhtmlcategory- ツールをカテゴリ別にフィルタリングする(オプション)enabled- 有効ステータスでフィルタリング:true(デフォルト) またはfalsesearch- ツールを名前、説明、タグで検索しますprovider- プロバイダー別にツールをフィルタリングします(例:openai、google)limit- 返されるツールの最大数(ページ区切り用)offset- ページ区切りのオフセット(デフォルト: 0)
応答(JSON 形式):
GET /health
サーバーが実行中の場合、ステータス 200 を返すヘルス チェック エンドポイント。
データ管理
データベースのバックアップ
データベースのバックアップを作成および管理できます。
データベース接続のテスト
MongoDB の設定を確認するには:
クライアントの例
コマンドラインクライアント
テストクライアントはsrc/client.jsに含まれています。実行するには、以下のコマンドを実行します。
ウェブクライアント
サーバーが稼働中の場合、 http://localhost:3000でシンプルなウェブインターフェースが利用できます。これを使用して、ブラウザから直接 API をテストできます。
利用可能なツール
MCP サーバーは、ユーザーと AI エージェントが利用可能なすべてのツールをプログラムで一覧表示できるようにするツール検出エンドポイントを提供します。
ツールの発見
GET /tools/available - 利用可能なすべてのツールを詳細情報とともに一覧表示します。
複数の形式をサポート: JSON、YAML、HTML、ASCII テーブル
カテゴリ、プロバイダー、検索用語によるフィルタリングを提供します
各ツールの詳細なメタデータと使用例が含まれています
使用例:
ウェブ検索ツール
サーバーには、Web 検索および取得ツールが組み込まれています。
ウェブ検索(
/tools/web/search)特定のクエリに関する情報をウェブで検索する
パラメータ:
query(必須)、limit(オプション)必要条件:
GOOGLE_CSE_API_KEYおよびGOOGLE_CSE_ID環境変数Google 検索が失敗した場合は
BING_SEARCH_API_KEYにフォールバックします
Webコンテンツ(
/tools/web/content)特定のURLからコンテンツを取得して抽出する
パラメータ:
url(必須)、useCache(オプション)
Web バッチ(
/tools/web/batch)複数のURLからコンテンツを並列に取得する
パラメータ:
urls(必須配列)、useCache(オプション)
画像生成ツール
サーバーには、画像生成、編集、バリエーション ツールも含まれています。
イメージの生成(
/tools/image/generate)テキストプロンプトに基づいて画像を生成する
パラメータ:
prompt(必須): 画像の詳細な説明provider(オプション):openaiまたはstability(デフォルトはopenai)options(オプション): プロバイダー固有のオプション
画像編集(
/tools/image/edit)テキストプロンプトで既存の画像を編集する
パラメータ:
imagePath(必須): 編集する画像へのパスprompt(必須): 行う編集の説明maskPath(オプション): マスク画像へのパス
画像バリエーションを作成する(
/tools/image/variation)既存の画像のバリエーションを作成する
パラメータ:
imagePath(必須): バリエーションを作成するための画像へのパス
**注:**これらのツールを使用するには、
.envファイルに API キーを設定する必要があります。
OpenAI画像の場合:
OPENAI_API_KEY安定性AIイメージの場合:
STABILITY_API_KEYウェブ検索の場合:
GOOGLE_CSE_API_KEYとGOOGLE_CSE_ID
AIモデルとのツール統合
MCPサーバーは、AIモデルによるツールの呼び出しと実行を自動的に処理します。モデルがツールの使用を決定すると、サーバーは次の処理を実行します。
指定されたパラメータを使用して要求されたツールを実行します
ツールの応答をモデルに返します
モデルはツールの応答を最終的な答えに組み込むことができる。
AIモデルのためのツール検出
AIモデルは/tools/availableエンドポイントを使用して、利用可能なツールとその使用方法を検出できます。これは特に以下の場合に便利です。
実行中の動的なツール検出
AIエージェントの自己文書化
AIシステムが利用可能な機能に適応できるようにする
AI モデルのシステム プロンプトの例:
ツールの使用例
ツールの使用方法を示すサンプル コードについては、 /examplesディレクトリを参照してください。
新しいプロバイダーまたはツールの追加
新しいAIプロバイダーの追加
新しい AI プロバイダーを追加するには:
プロバイダーのSDKをプロジェクトに追加する
server.jsに新しいハンドラー関数を作成するメインルートハンドラに新しいケースを追加する
新しいツールの追加
サーバーに新しいツールを追加するには:
/src/toolsディレクトリに新しいツール実装を作成するツール定義を
tool-definitions.jsに追加するserver.jsのツール実行関数を更新しますツールを直接使用するための新しい API エンドポイントを追加する (必要な場合)
ライセンス
ISC