GoCopilotAgentToDoList について
GoCopilotAgentToDoListは、Docker上で動くMCPサービスを通じて指定タイムゾーンの現在時刻を取得するGo製HTTPサーバーです。JSON API連携の例であり、基本的なユニットテストも含みます。
主な機能
- 01/mcp/timeで指定タイムゾーンの時刻を取得
- 02DockerでMCPサービスを実行
- 03JSON形式でリクエストとレスポンスを交換
- 04マーシャリングのユニットテストを収録
活用シーン
- 01指定タイムゾーンの現在時刻をアプリに提供
- 02Go HTTPサーバーからDocker化されたMCPサービスを呼び出す例
- 03JSONリクエストとレスポンスのマーシャリングをテスト
MCP 対応
GoサーバーはリクエストをDockerコンテナ内のMCPサービスに渡し、mcp/timeコマンドを実行して結果をJSONで返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
GoCopilotAgentToDoList
概要
GoCopilotAgentToDoList は、指定されたタイムゾーンの現在時刻を取得するための API エンドポイントを提供する、Go ベースの HTTP サーバーです。このサーバーは、時刻を取得するために Docker 化された Model Context Protocol(MCP)サービスと連携し、Go、Docker、外部サービスを統合する実用的な例となっています。
機能
- /mcp/time API エンドポイント:タイムゾーンを指定した POST リクエストを受け付け、そのタイムゾーンの現在時刻を返します。
- Docker との連携:時刻取得に MCP サービスを実行するため、Docker を使用します。
- JSON ベースの通信:リクエストとレスポンスの両方で JSON を使用します。
- ユニットテスト:リクエストとレスポンスのマーシャリングを対象とした基本的なユニットテストが含まれています。
前提条件
- Go 1.18 以降
- Docker がインストールされ、実行中であること
- MCP Docker イメージ(
mcp:latest)がローカルで利用可能であること - Windows OS(ただし、コードはクロスプラットフォーム対応です)
プロジェクト構成
go.mod # Go module definition
package main.go # Main application source code
package_main_test.go # Unit tests for the project
todos.json # (Reserved for future to-do list features)
使用方法
1. サーバーをビルドして実行する
プロジェクトディレクトリでターミナルを開き、次を実行します。
go run package\ main.go
サーバーが起動し、http://localhost:8080 でリッスンします。
2. API エンドポイント
POST /mcp/time
- リクエストボディ:
{ "timezone": "America/New_York" } - レスポンスボディ:
{ "time": "2025-05-27T12:34:56Z" } - curl を使用した例:
curl -X POST http://localhost:8080/mcp/time -H "Content-Type: application/json" -d '{"timezone":"America/New_York"}'
3. 仕組み
- サーバーは、タイムゾーンを指定した JSON ボディを含む POST リクエストを
/mcp/timeで受け取ります。 - リクエストをマーシャリングし、MCP サービス(
mcp:latest)を実行する Docker コンテナに渡します。具体的には、mcp/timeコマンドを実行します。 - コンテナの出力を解析し、JSON レスポンスとして返します。
テストの実行
ユニットテストを実行するには、次を実行します。
go test -v
プロジェクトの拡張
- To-Do リスト機能:
todos.jsonが存在することから、今後 To-Do リスト API を追加する計画があることがうかがえます。 - 追加のエンドポイント:
package main.goに新しいハンドラーを定義して、エンドポイントを追加できます。 - エラー処理:本番環境での使用に向けて、エラーメッセージとロギングを改善してください。
トラブルシューティング
- Docker が実行中で、
mcp:latestイメージがローカルで利用可能であることを確認してください。 - Docker の権限に関する問題が発生した場合は、ターミナルを管理者として実行してください。
- サーバーはデフォルトでポート 8080 をリッスンします。必要に応じて、
package main.goで変更してください。
ライセンス
このプロジェクトは、教育およびデモンストレーションを目的として、現状のまま提供されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。