mcpField
C
Create a Custom Server

Create a Custom Server

ローカル
github.com/JustVarunsai開発ツール181 週間前に更新

Create a Custom Server について

AIアシスタント向けのMCP計算サーバーを構築するPythonチュートリアルです。4種類の基本演算ツールと、Claude for Desktopへの接続方法を紹介します。

主な機能

  1. 01加算、減算、乗算、除算
  2. 02Python MCP SDKによるサーバー構築
  3. 03stdioトランスポートでの実行
  4. 04Claude for Desktopの接続設定

活用シーン

  1. 01会話中の基本的な算術計算
  2. 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 つの主な種類の機能を提供できます。

  1. リソース:クライアントが読み取れるファイルのようなデータ(API レスポンスやファイルの内容など)。
  2. ツール:LLM が呼び出せる関数(ユーザーの承認が必要です)。
  3. プロンプト:ユーザーが特定のタスクを実行するのに役立つ、あらかじめ用意されたテンプレート。

このチュートリアルでは、主にツールを扱います。

それでは、計算機サーバーを作成しましょう!作成するコードの完全版はこちらで確認できます。


必要な知識

このクイックスタートでは、次の知識があることを前提としています。

  • 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 に次の内容が伝わります。

  1. 「calculator」という名前の MCP サーバーがあること。
  2. uv --directory /ABSOLUTE/PATH/TO/PARENT/FOLDER/calculator run calculator.py を実行して起動すること。

ファイルを保存し、Claude for Desktop を再起動してください。


この電卓は基本的な算術演算をサポートしているため、加算、減算、乗算、除算に使用できます。

詳細については、MCP Official Docs を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。