MCP Calculator Demo について
MCP Calculator Demoは、算術演算と式の評価を行うPython製の電卓サーバーとクライアントのデモです。直接演算に加え、括弧付きの式やRPN評価に対応し、SSEで通信します。
主な機能
- 01加算、減算、乗算、除算
- 02複雑な式の評価
- 03括弧への対応
- 04RPN評価
- 05無効な式とゼロ除算の処理
活用シーン
- 01MCP電卓サービスのデモ
- 02クライアントで算術式を評価
- 03式の解析とエラー処理のテスト
MCP 対応
FastMCPサーバーはMCPクライアントに算術演算ツールを提供します。付属クライアントはServer-Sent Events(SSE)でサーバーと通信します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP 計算機デモ
MCP(Model Control Protocol)フレームワークを使用した計算サービスを紹介するデモプロジェクトです。このプロジェクトは、基本的な算術演算を提供するサーバーと、簡単な数式と複雑な数式の両方を評価できるクライアントで構成されています。
プロジェクト構成
calculator_server.py:算術演算を提供する MCP サーバーclient.py:サーバーに接続してユーザー入力を処理するクライアントアプリケーションrequirements.txt:プロジェクトの依存関係
機能
- 基本的な算術演算(加算、減算、乗算、除算)
- 簡単な演算(例:「add 2 3」)と複雑な数式の両方に対応
- ゼロ除算のエラー処理
- クライアントとサーバー間の Server-Sent Events(SSE)通信
- 数式内の括弧に対応
- 複雑な数式を評価する RPN(逆ポーランド記法)
前提条件
- Python 3.7+
- pip(Python パッケージマネージャー)
インストール
- リポジトリをクローンします
- 仮想環境を作成して有効化します:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate - 依存関係をインストールします:
pip install -r requirements.txt
使用方法
サーバーの起動
計算機サーバーを実行します:
python calculator_server.py
サーバーはデフォルトで http://127.0.0.1:5005 で起動します。
クライアントの実行
別のターミナルでクライアントを実行します:
python client.py
利用可能な演算
計算機は次の演算に対応しています:
-
直接ツール構文:
add 2 3subtract 5 2multiply 4 3divide 10 2
-
複雑な数式:
5+7-25+7-2*3(5+7)*210/2+3*4
使用例
» add 2 3
Result: 5
» 5+7-2*3
Result: 6
» (5+7)*2
Result: 24
» divide 10 0
Error: Division by zero.
技術的な詳細
- サーバーは MCP 操作の処理に FastMCP を使用します
- クライアントとサーバー間の通信には Server-Sent Events(SSE)を使用します
- クライアントは複雑な数式を解析するために Shunting-Yard アルゴリズムを実装しています
- 無効な数式とゼロ除算のエラー処理を実装しています
依存関係
- fastapi
- uvicorn
- sse-starlette
- fastmcp>=0.1.0
- llama-index
- llama-index-llms-anthropic
- anthropic
- python-dotenv
- requests
- sseclient-py
- uv
ライセンス
このプロジェクトはオープンソースであり、MIT ライセンスの下で利用できます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。