Create a Custom Server について
AIアシスタント向けのMCP計算サーバーを構築するPythonチュートリアルです。4種類の基本演算ツールと、Claude for Desktopへの接続方法を紹介します。
主な機能
- 01加算、減算、乗算、除算
- 02Python MCP SDKによるサーバー構築
- 03stdioトランスポートでの実行
- 04Claude for Desktopの接続設定
活用シーン
- 01会話中の基本的な算術計算
- 02カスタムMCPサーバーの構築学習
MCP 対応
サンプルのMCPサーバーは、add、subtract、multiply、divideの計算ツールをクライアントに公開します。stdioでの実行とClaude for Desktopの接続設定を説明します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
カスタムサーバーを作成する
Claude for Desktop やその他のクライアントで使用する独自のサーバーを作成しましょう。
このチュートリアルでは、シンプルな MCP 計算機サーバーを作成し、ホストである Claude for Desktop に接続します。
MCP とは?
MCP は Model Context Protocol の略で、開発者がカスタムツールやサーバーを使って AI アシスタント(Claude など)を拡張できるプロトコルです。
- AI アシスタントに追加の機能を与えるようなものです。
- これらのサーバーは、会話中にアシスタントが利用できるツールや機能を公開します。
- たとえば、天気サーバー、計算機、金融アシスタントなど、想像するものを何でも作成できます。
これから作成するもの
add、subtract、multiply、divide の 4 つのツールを公開するサーバーを作成します。その後、サーバーを MCP ホスト(ここでは Claude for Desktop)に接続します。
注:サーバーはどのクライアントにも接続できます。ここではデモのため、Claude for Desktop を選択しています。
Claude.ai ではなく Claude for Desktop を使う理由は?
サーバーはローカルで実行されるため、現在 MCP がサポートしているのはデスクトップホストのみです。MCP の主な概念
MCP サーバーは、次の 3 つの主な種類の機能を提供できます。
- リソース:クライアントが読み取れるファイルのようなデータ(API レスポンスやファイルの内容など)。
- ツール:LLM が呼び出せる関数(ユーザーの承認が必要です)。
- プロンプト:ユーザーが特定のタスクを実行するのに役立つ、あらかじめ用意されたテンプレート。
このチュートリアルでは、主にツールを扱います。
それでは、計算機サーバーを作成しましょう!作成するコードの完全版はこちらで確認できます。
必要な知識
このクイックスタートでは、次の知識があることを前提としています。
- Python
- Claude などの LLM
システム要件
- Python 3.10 以上がインストールされていること。
- Python MCP SDK 1.2.0 以上を使用する必要があります。
環境をセットアップする
まず、uv をインストールし、Python プロジェクトと環境をセットアップしましょう。
MacOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
その後、ターミナルを再起動して、uv コマンドが認識されることを確認してください。
次に、プロジェクトを作成してセットアップしましょう。
MacOS/Linux
# Create a new directory for our project
uv init calculator
cd calculator
# Create virtual environment and activate it
uv venv
source .venv/bin/activate
# Install dependencies
uv add "mcp[cli]"
# Create our server file
touch calculator.py
Windows
# Create a new directory for our project
uv init calculator
cd calculator
# Create virtual environment and activate it
uv venv
.venv\Scripts\activate
# Install dependencies
uv add "mcp[cli]"
# Create our server file
new-item calculator.py
それでは、サーバーの作成に取りかかりましょう。
サーバーを作成する
パッケージをインポートしてインスタンスをセットアップする
以下を calculator.py の先頭に追加します。
from mcp.server.fastmcp import FastMCP
# Initialize FastMCP server
mcp = FastMCP("calculator")
ツールの実行を実装する
ツール実行ハンドラーは、各ツールのロジックを実際に実行する役割を担います。追加してみましょう。
@mcp.tool()
def add(a: float, b: float) -> float:
"""Add two numbers."""
return a + b
@mcp.tool()
def subtract(a: float, b: float) -> float:
"""Subtract two numbers."""
return a - b
@mcp.tool()
def multiply(a: float, b: float) -> float:
"""Multiply two numbers."""
return a * b
@mcp.tool()
def divide(a: float, b: float) -> float:
"""Divide two numbers."""
if b == 0:
raise ValueError("Division by zero is not allowed.")
return a / b
サーバーを実行する
最後に、サーバーを初期化して実行しましょう。
if __name__ == "__main__":
# Initialize and run the server
mcp.run(transport='stdio')
これでサーバーは完成です!uv run calculator.py を実行して、正常に動作することを確認してください。
Claude for Desktop でサーバーをテストする
注:Claude for Desktop は Linux ではまだ利用できません。
使用する MCP サーバーに合わせて、Claude for Desktop を設定する必要があります。設定するには、テキストエディターで Claude for Desktop アプリの設定ファイル ~/Library/Application Support/Claude/claude_desktop_config.json を開きます。ファイルが存在しない場合は、作成してください。
MacOS/Linux
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows
code $env:AppData\Claude\claude_desktop_config.json
次に、mcpServers キーにサーバーを追加します。少なくとも 1 つのサーバーが正しく設定されている場合にのみ、Claude for Desktop に MCP の UI 要素が表示されます。
ここでは、次のように計算機サーバーを 1 つ追加します。
MacOS/Linux
{
"mcpServers": {
"calculator": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/calculator",
"run",
"calculator.py"
]
}
}
}
Windows
{
"mcpServers": {
"calculator": {
"command": "uv",
"args": [
"--directory",
"C:\\ABSOLUTE\\PATH\\TO\\PARENT\\FOLDER\\calculator",
"run",
"calculator.py"
]
}
}
}
Warning:
commandフィールドには、uv実行ファイルのフルパスを指定する必要がある場合があります。MacOS/Linux ではwhich uv、Windows ではwhere uvを実行すると確認できます。
サーバーの絶対パスを指定してください。
これにより、Claude for Desktop に次の内容が伝わります。
- 「calculator」という名前の MCP サーバーがあること。
uv --directory /ABSOLUTE/PATH/TO/PARENT/FOLDER/calculator run calculator.pyを実行して起動すること。
ファイルを保存し、Claude for Desktop を再起動してください。
この電卓は基本的な算術演算をサポートしているため、加算、減算、乗算、除算に使用できます。
詳細については、MCP Official Docs を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。