Sample MCP Server in Go. について
LLM が生成したコードを実行するため、ツール呼び出し時に Python 環境を起動する Go 製 MCP サーバーです。ウェブスクレイピング用コードにも対応し、MCP ホストでツール利用を試す開発者向けです。コンテナーエンジンには Podman を使います。
主な機能
- 01ツール呼び出し時に Python 環境を起動
- 02LLM 生成コードの実行
- 03ウェブスクレイピングへの対応
- 04コンテナーエンジンに Podman を使用
- 05Go 1.23+ でのビルド
活用シーン
- 01MCP ホスト経由で生成された Python コードを実行
- 02LLM 生成スクリプトによるウェブコンテンツの取得
MCP 対応
MCP クライアントに Python コード実行ツールを提供します。README では `mcphost` に `python-repl` として設定する例を示しています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Go 製サンプル MCP サーバー
この MCP サーバーは、呼び出されると Python 環境を起動し、LLM が生成したコードを実行できるようにします。ウェブコンテンツのスクレイピングに役立ちます。
このプロジェクトは、YouTube のこちらのデモを基に、いくつかの小さな変更を加えたものです。
このデモでは、Docker の代わりにコンテナエンジンとして Podman を使用します。
プロジェクトのビルド
このプロジェクトには Go 1.23 以降が必要です。ローカルでビルドするには:
$ go mod tidy && go install
ラボホストでのテスト
テストには mcphost を使用します:https://github.com/mark3labs/mcphost
MCP サーバーの設定
~/.mcp.json ファイルを編集し、次の内容を追加します:
{
"mcpServers": {
"python-repl": {
"command": "python-mcp-server"
}
}
}
この設定により、mcphost は python-mcp-server コマンドを python-repl という別名で実行します。
mcphost の実行
この例では、デフォルトの LLM として Claude-3.5 Sonnet を使用します。これにより、ローカル GPU がなくてもテストできます。
Anthropic キーをエクスポートします:
$ export ANTHROPIC_API_KEY='your-api-key'
ホストを実行します
$ mcphost
次のようなプロンプトが表示されます:
$ mcphost
2025/04/28 21:44:32 INFO Model loaded provider=anthropic model=claude-3-5-sonnet-latest
2025/04/28 21:44:32 INFO Initializing server... name=python-repl
2025/04/28 21:44:32 INFO Server connected name=python-repl
2025/04/28 21:44:32 INFO Tools loaded server=python-repl count=1
Enter your prompt (Type /help for commands, Ctrl+C to quit)
これ以降、ウェブスクレイピングを伴うリクエストをプロンプトして、MCP サーバーの動作を確認できます。
Enter your prompt (Type /help for commands, Ctrl+C to quit)
Show me the most starred repositories on github
Assistant:
I'll create a script to fetch the most starred repositories from GitHub using their API:
2025/04/28 22:14:16 INFO 🔧 Using tool name=python-repl__execute-python
2025/04/28 22:14:16 INFO Usage statistics input_tokens=1665 output_tokens=309 total_tokens=1974
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。