How to build an MCP server - Calculator Example について
Pythonで基本的な算術演算を提供するMCPサーバーのサンプルです。MCPサーバーの構築、テスト、クライアント連携を学ぶ開発者向けです。
主な機能
- 01基本的な算術演算
- 02Python製MCPサーバーの例
- 03MCP Inspectorによるローカルテスト
- 04Pytestによるテスト
活用シーン
- 01MCPサーバー開発の学習
- 02計算サーバーのローカルテスト
- 03MCPクライアントへの算術ツール連携
MCP 対応
MCPクライアントに基本的な算術演算ツールを提供します。ローカルテストとクライアント設定の方法も記載されています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サーバーの構築方法 - 電卓の例
概要
これは、MCP クライアントに基本的な数学演算を提供する MCP サーバーの構築方法を示す、とてもシンプルな例です。
MCP とは?
Model Context Protocol(MCP)は、LLM がカスタムのツールやサービスにアクセスできるようにするプロトコルです。MCP クライアントは MCP サーバーにリクエストを送信し、サーバーが提供するツールにアクセスできます。この例は、クライアントに基本的な数学演算を提供するシンプルな電卓サーバーです。
「MCP を使うと、AI モデルが外部システムとやり取りするための、単一の標準化された方法を提供できます。一度コードを書けば、すべての AI システムが利用できます。」1
「サーバーは、LLM に外部データやコンテキストを付加する基本的な構成要素です。」2

技術スタック
- Python3
- Pytest
- MCP SDK
- MCP CLI
- Nix(任意)
セットアップと使い方
Smithery
Smithery を使って、Claude Desktop に mcp-server-calculator を自動でインストールするには:
npx -y @smithery/cli install @simonberner/mcp-server-calculator --client claude
開発環境のセットアップ
このプロジェクトでは、再現可能で隔離された開発環境を用意するために Nix を使用しているので、Python やその他の依存関係をインストールする必要はありません。必要なものはすべて最初から揃っています。また、Python で venv や poetry を使って仮想環境を作成する必要もありませんが、システムに Nix をインストールする必要があります。
- direnv をインストールします(開発環境の読み込みに使用します)
- Lix をインストールします
- このリポジトリをクローンします
- ディレクトリに移動します
direnv allowを実行しますpytestを実行します
代替方法
Smithery や Nix を使いたくない場合は、もちろん uv を使ってパッケージ/プロジェクトをビルドすることもできます。手順は以下のとおりです。
# Install uv (see https://docs.astral.sh/uv/getting-started/installation/)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Create a virtual environment named .venv
uv venv
# Activate the virtual environment (example for bash/zsh)
source .venv/bin/activate
# Now run the install or build commands
uv pip install -e .
# or
uv pip wheel . -w dist
サーバーのローカルでの実行とテスト
- MCP Inspector は便利な GUI ツールです。LLM や AI エージェントと統合しなくても、Web インターフェース http://localhost:5173 から独自の MCP サーバーをテストできます。
mcp dev src/mcp_server_calculator/calculator.py
ホスト/クライアントとの連携
- 以下を mcp 設定に追加します:
{
"mcpServers": {
"calculator": {
"command": "python",
"args": [
"<YOUR-PATH>/mcp-server-calculator/src/mcp_server_calculator/calculator.py"
]
}
}
}
注意事項
- Windsurf IDE を MCP ホストとして使用する場合、MCP サーバーとともに Cascade(MCP クライアント)を使用するには、Pro Plan が必要です。
問題
現在の問題を確認したり、新しい問題を報告したりするには、Issues を確認してください。
リソース
- [1] MCP サーバー:ゼロから構築するためのステップバイステップガイド
- [2] Model Context Protocol(MCP)とは?
- MCP と、AI エンジニアがそれを活用する方法を理解する
- MCP SDK
- MCP CLI
- MCP Inspector
- 最大規模の MCP サーバーコレクション
- MCP を使うための初心者向けガイド
- Claude MCP は AI を永遠に変えました - 知っておくべきこと
- MCP サーバーを探す
- TypeScript で最初の MCP サーバーを 10 分以内に構築する
- Model Context Protocol(MCP)の紹介
クレジット
- Nix-Setup は ical2json から取得しました
知っておくと便利な情報
Nix
Cloudflare
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。