MCP Tools について
MCP Toolsは、MCPクライアントをリモートエンドポイントやローカルのMCP実行ファイルに接続する、Go製のプロキシ兼サーバーです。実行ファイルからツールを検出し、HTTPまたはstdio経由でクライアントに提供します。
主な機能
- 01MCPリクエストのHTTPエンドポイントへの転送
- 02ディレクトリからのMCP実行ファイル読み込み
- 03ツールの検出と名前空間付与
- 04HTTPまたはstdioでのクライアント提供
- 05Makeによるプロキシとサーバーのビルド
活用シーン
- 01MCPクライアントとリモートHTTPサービスの接続
- 02複数のローカルMCP実行ファイルのツール公開
- 03プロキシ経由でのサンプルMCPツールのテスト
MCP 対応
プロキシはstdin/stdoutとHTTPエンドポイントの間でMCPリクエストを転送します。サーバーはMCP実行ファイルのツールを検出し、HTTPまたはstdio経由でクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP ツール
このリポジトリには、Model Context Protocol(MCP)を使用するためのツールが含まれています。
MCP プロキシ
リクエストを HTTP エンドポイントに転送する、Model Context Protocol 用のプロキシです。
概要
MCP プロキシは、標準入力から指定された HTTP エンドポイントにデータを転送し、応答を標準出力に返します。リモートの MCP 対応サーバーとの通信に使用できる、シンプルなプロキシを実装しています。
なぜ golang なのか?
このコードはクライアント側で実行されます。多くの言語では、これを実行するためにランタイムと適切なライブラリ一式をインストールする必要があります。Go は単一の実行可能ファイルにコンパイルされます。これにより、デプロイの難しさ、ユーザーサポートへの問い合わせ、ランタイムの破壊的な更新、その他、デプロイの代わりに HTTP エンドポイントを提供することで通常は対処できる問題を減らせます。
使い方
./mcp-proxy [options]
オプション
-endpoint:リクエストの転送先となる HTTP エンドポイント(デフォルト:"http://localhost:8080")-content-type:HTTP リクエストの Content-Type ヘッダー(デフォルト:"application/json")-timeout:HTTP リクエストのタイムアウト(秒)(デフォルト:30)-buffer:標準入力の読み取りに使用するバッファーサイズ(KB)(デフォルト:64)
例
./mcp-proxy -endpoint="https://api.example.com/mcp" -content-type="application/json"
MCP サーバー
ディレクトリから MCP 実行可能ファイルを読み込んで管理し、HTTP または標準入出力経由でクライアントに公開するサーバーです。
概要
MCP サーバーは、ディレクトリから MCP 実行可能ファイルを読み込み、クライアントに提供します。クライアントがツールの一覧を要求すると、サーバーは読み込まれたすべての MCP のツールを、MCP 名を名前空間として付けて返します。サーバーは HTTP モードまたは標準入出力モードで実行できます。
使い方
./mcp-server [options]
オプション
-mcp-dir:MCP 実行可能ファイルを含むディレクトリ(デフォルト:"./mcps")-http:HTTP サーバーのアドレス(デフォルト:":8080")-name:MCP サーバーの名前(デフォルト:"MCP Server")-version:MCP サーバーのバージョン(デフォルト:"1.0.0")-stdio:HTTP の代わりに標準入出力を使用します(デフォルト:false)
MCP ディレクトリ構成
サーバーは、MCP 実行可能ファイルを含むディレクトリを想定しています。各実行可能ファイルは、標準入出力を使用して MCP プロトコルを実装している必要があります。サーバーは次の処理を行います。
- ディレクトリ内の実行可能ファイルをスキャンします
- 各実行可能ファイルを実行し、提供されるツールを検出します
- 名前空間付きの名前(
mcpname.toolname)で、これらのツールをクライアントから利用できるようにします
Make を使用したビルドと実行
このプロジェクトには、コンポーネントのビルドと実行を簡素化する Makefile が含まれています。
ビルド
すべてのコンポーネント(プロキシ、サーバー、サンプル)をビルドします。
make
または、特定のコンポーネントをビルドします。
make build-proxy # Build only the proxy
make build-server # Build only the server
make build-examples # Build only the example MCPs
実行
MCP サーバーを HTTP モードで起動します(サンプルをビルドし、mcps ディレクトリにコピーした後)。
make run-server
MCP サーバーを標準入出力モードで起動します。
make run-server-stdio
プロキシを実行して、ローカルの MCP サーバーに接続します。
make run-proxy
テスト
基本的な tools/list リクエストでプロキシをテストします(サーバーの起動が必要です)。
make test-proxy
プロキシ経由で特定のサンプルツールをテストします(サーバーの起動が必要です)。
make test-hello # Test the hello tool
make test-add # Test the calculator's add tool
MCP のサンプル
このリポジトリには、MCP 対応ツールの実装方法を示す MCP のサンプルが含まれています。
hello-mcp:「hello」ツールを提供するシンプルな MCPcalculator-mcp:計算処理を提供する MCP
サンプルをビルドし、mcps ディレクトリにインストールします。
make examples
開発タスク
Go コードをフォーマットします。
make fmt
コード解析のために Go vet を実行します。
make vet
Go の依存関係を更新し、整理します。
make tidy
ビルド成果物をクリーンアップします。
make clean
バイナリを GOPATH/bin にインストールします。
make install
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。