MCP Calculator について
MCP Calculatorは、計算と挨拶の機能を備えたGo製のMCPサーバー例です。JSON-RPC 2.0、ツールとリソースの処理、機能ネゴシエーションを実装し、サーバー開発の例として使えます。
主な機能
- 01計算と挨拶の機能
- 02JSON-RPC 2.0通信
- 03ツールの登録と実行
- 04リソースアクセス処理
- 05機能ネゴシエーションとエラー処理
活用シーン
- 01Go製MCPサーバー実装のデモ
- 02JSON-RPC経由での計算・挨拶機能の呼び出し
MCP 対応
MCPクライアントに計算と挨拶の機能を提供し、ツール実行、リソースアクセス、機能ネゴシエーションに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Calculator
計算機能と挨拶機能を備えた、Model Context Protocol(MCP)サーバーの Go 実装です。この実装は、公式の MCP 仕様に準拠しています。
機能
- JSON-RPC 2.0 の完全な実装
- MCP プロトコルのサポート
- ツールの登録と実行
- リソースの処理
- サーバーの機能ネゴシエーション
- 仕様に準拠したエラー処理
プロジェクト構成
mcpcalculator/
├── mcp/
│ └── protocol/
│ ├── types.go # Protocol types and structures
│ ├── server.go # MCP server implementation
│ └── client.go # MCP client implementation
├── main.go # Example usage
├── go.mod # Go module file
└── README.md # Documentation
要件
- Go 1.21 以降
インストール
git clone https://github.com/akhidasTech/mcpcalculator.git
cd mcpcalculator
go mod download
使い方
サーバーの起動
go run main.go
サーバーはポート 8080 で起動します。
リクエストの送信
ツールとリソースは、JSON-RPC 2.0 仕様に従います。
加算ツール
curl -X POST http://localhost:8080 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "add",
"params": {"a": 5, "b": 3}
}'
挨拶リソース
curl -X POST http://localhost:8080 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "greeting",
"params": {"name": "John"}
}'
レスポンス形式
すべてのレスポンスは、JSON-RPC 2.0 形式に従います。
{
"jsonrpc": "2.0",
"id": 1,
"result": <result_value>
}
エラーの場合は、次の形式になります。
{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": <error_code>,
"message": "error message",
"data": <additional_data>
}
}
プロトコルの実装
この実装は、Model Context Protocol の仕様に準拠しています。
- JSON-RPC 2.0:すべての通信で JSON-RPC 2.0 プロトコルを使用します
- 機能:初期化時にサーバーの機能を通知します
- ツール:ツールの登録および実行プロトコルを実装します
- リソース:リソースへのアクセスプロトコルを実装します
- エラー処理:標準のエラーコードと形式を使用します
セキュリティ
この実装は、MCP のセキュリティガイドラインに従います。
- ユーザーの同意:ツールとリソースの使用には、明示的な呼び出しが必要です
- データのプライバシー:明示的なリクエストがない限り、データは共有されません
- ツールの安全性:ツールの実行は制御および検証されます
- エラー処理:適切にエラーを報告し、処理します
コントリビューション
コントリビューションを歓迎します。お気軽にプルリクエストを送信してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。