MCP Wrapper について
MCP Wrapperは、実際のMCPサーバーをサブプロセスとして起動し、MCPクライアントとの通信を中継するプロキシです。環境コンテキストを引き継ぎ、操作をコンソールや設定したファイルに記録します。
主な機能
- 01実サーバーをサブプロセスで起動
- 02ツール・リソース・プロンプトを転送
- 03環境変数とコンテキストを保持
- 04操作とエラーを記録
- 05ログファイルの保存先を設定
活用シーン
- 01MCPサーバーの操作ログを追加
- 02クライアントとサーバーの間にプロキシを設置
- 03サーバーに必要な環境変数を渡して実行
MCP 対応
MCP WrapperはMCPクライアントに接続し、指定されたコマンドと引数で実際のMCPサーバーを起動します。ツール、リソース、プロンプトを含むプロトコル要求と応答を中継します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP ラッパー
MCP(Model Context Protocol)サーバー用のプロキシラッパーです。
概要
このプロジェクトでは、MCP クライアントと MCP サーバーの間に配置されるプロキシレイヤーを作成します。クライアントからのリクエストを実際の MCP サーバーに転送し、レスポンスを返します。
機能
- MCP クライアントと実際の MCP サーバーの間のブリッジとして機能します
- すべての MCP プロトコル操作(ツール、リソース、プロンプト)を透過的に転送します
- 環境変数とコンテキストを保持します
- エラーを適切に処理します
- MCP_WRAPPER_LOG_PATH 環境変数で指定されたディレクトリ内のファイルに詳細なログを記録します
使用方法
設定
MCP ラッパーには、コマンドライン引数と環境変数が必要です。
-
コマンドライン引数:
- 第 1 引数:実際の MCP サーバーを実行するコマンド(例:"node")
- 第 2 引数:実際の MCP サーバースクリプトへのパス(例:"/path/to/real/mcp-server/build/index.js")
-
環境変数(.env ファイルまたはシステム環境経由):
- MCP_WRAPPER_LOG_PATH:ログを保存するディレクトリ(例:"/Users/username/logs")
- 実際の MCP サーバーが必要とする環境変数
設定変更に関する注意
設定構造が以前のバージョンから変更されています。
変更前(元の設定):
{
"mcpServers": {
"my mcp server": {
"command": "node /path/to/real/mcp-server/build/index.js",
"env": {
"HOME_LOG_PATH": "/Users/username/logs",
"OTHER_ENV_VAR": "value"
}
}
}
}
変更後(現在の設定):
{
"mcpServers": {
"my mcp server": {
"command": "node",
"args": [
"dist/index.js",
"node",
"/path/to/real/mcp-server/build/index.js"
],
"env": {
"MCP_WRAPPER_LOG_PATH": "/Users/username/logs",
"OTHER_ENV_VAR": "value"
}
}
}
}
次の点に注意してください。
- ラッパー自体は、コマンドフィールド("node")で指定し、そのパスは args[0]("dist/index.js")に指定します
- 実際の MCP サーバーのコマンドとパスは、args[1] と args[2] になりました
- 環境変数が HOME_LOG_PATH から MCP_WRAPPER_LOG_PATH に変更されました
このラッパーは、手動で起動するのではなく、Claude や Cursor などのツールによって自動的に実行されるように設計されています。
ビルド
ラッパーをビルドするには、次のコマンドを実行します。
npm run build
これにより、main.js ファイルが dist/index.js にコピーされます。
開発
変更を監視して自動的に再ビルドするには、次のコマンドを実行します。
npm run watch
動作の仕組み
- MCP クライアントがラッパーサーバーに接続します
- ラッパーサーバーが、指定されたコマンドと引数を使用して実際の MCP サーバーに接続します
- クライアントからのリクエストが実際のサーバーに転送されます
- 実際のサーバーからのレスポンスがクライアントに返されます
- すべての操作がコンソールと MCP_WRAPPER_LOG_PATH ディレクトリ内のログファイルに記録されます
これにより、次のような機能を追加できるプロキシレイヤーを導入できます。
- リクエストまたはレスポンスの変更
- ログの追加
- 認証の処理
- レート制限の実装
- キャッシュの追加
ログ
MCP ラッパーは、すべての操作を次の場所に記録します。
- コンソール出力(リアルタイムの監視用)
$MCP_WRAPPER_LOG_PATH/mcp-proxy.logのログファイル(MCP_WRAPPER_LOG_PATH が設定されている場合)
各ログエントリーには、次の情報が含まれます。
- タイムスタンプ(ISO 形式)
- 操作の種類(ツールの一覧表示、ツールの呼び出しなど)
- リクエストの詳細
- レスポンスの概要
- エラー情報(該当する場合)
ログの監視
ログファイルを追尾して、リアルタイムでアクティビティを監視するには、次のコマンドを実行します。
npm run tail-log
これにより、既存のログ内容が表示され、新しいエントリーが監視されます。終了するには Ctrl+C を押してください。
要件
- Node.js 14 以降
- MCP クライアント
- プロキシ接続先となる実際の MCP サーバー
- MCP_WRAPPER_LOG_PATH ディレクトリへの書き込み権限
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。