mcpField
S
Simple MCP Client / Server

Simple MCP Client / Server

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

Simple MCP Client / Server について

stdioの天気サーバー、クライアント実装、Inspectorによるテストを扱うPython製MCPサンプルです。MCPコンポーネントの構築と接続を学ぶ開発者向けです。

主な機能

  1. 01Python製stdio天気サーバー
  2. 02stdio・SSEクライアント例
  3. 03Clineへの接続手順
  4. 04MCP Inspectorでのローカルテスト

活用シーン

  1. 012つのツールを持つ天気サーバーの構築
  2. 02Clineからローカルサーバーへ接続
  3. 03MCP Inspectorによるサーバーテスト

MCP 対応

stdioとSSEを使ったMCPサーバーおよびクライアントの実装例を示します。Clineへの接続と、開発中のサーバーの検査方法も説明しています。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

シンプルな MCP クライアント/サーバー

https://modelcontextprotocol.io/quickstart/server

macOS および Linux に uv をインストールします。

$ curl -LsSf https://astral.sh/uv/install.sh | sh

次に、リポジトリを git clone します。

MCP サーバー(stdio)

uv init mcp_server
cd mcp_server/
uv run main.py                        # just to create the .venv, then rm the main.py

uv add "mcp[cli]" httpx               # MCP server Python lib

touch weather_stdio.py                # STDIO server implementation
サーバーを起動する
mcp_server$ uv run weather_stdio.py
VSCode + Cline でテストする

Cline に MCP サーバーを追加します。

Cline -> MCP Servers (icon close to '+') -> Installed -> Add

json テンプレート "mcpServers": {} が表示されるので、新しいサーバーを追加します。 以下が cline_mcp_settings.json です。

{
  "mcpServers": {
    "weather": {
            "command": "uv",
            "args": [
                "--directory",
                "/home/users/tikoehle/mcp_server",
                "run",
                "weather_stdio.py"
            ]
        }
  }
}

=> Cline に 2 つの get_* ツール関数が表示されます。「Done」をクリックして Cline のタスク入力画面に戻り、新しいサーバーを試します。

テスト

2 つのツールを呼び出すタスクを入力します。 "Can you tell me the weather forecast for San Francisco, CA" "Can you tell me the weather alerts for San Francisco, CA"

=> 新しい MCP「weather」サーバーの 2 つのツールを使用します。

注: ローカル MCP サーバーは stdout にメッセージをログ出力しないでください。プロトコルの動作に支障が出ます。

MCP クライアント

https://modelcontextprotocol.io/quickstart/client

uv init mcp_client
cd mcp_client/
uv run main.py                     # create venv

uv add mcp

touch client_stdio.py              # MCP client impl.
クライアントを実行する

uv run client.py path/to/server.py

mcp_client$ uv run client_stdio.py ../mcp_server/weather_stdio.py

MCP Inspector

Node.js をインストールする

MCP サーバーのコンピュート環境に、nvm と npm を使って Linux 用の Node.js(Current)をインストールします。https://nodejs.org/en/download

cd $HOME

# Download and install nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash

# in lieu of restarting the shell
\. "$HOME/.nvm/nvm.sh"

# Download and install Node.js:
nvm install 23

# Verify the Node.js version:
node -v # Should print "v23.10.0".
nvm current # Should print "v23.10.0".

# Verify npm version:
npm -v # Should print "10.9.2".
ローカルで開発したサーバーを検査する
mcp_server$ uv run mcp dev ./weather_stdio.py
Starting MCP inspector...
Proxy server listening on port 3000

🔍 MCP Inspector is up and running at http://localhost:5173 🚀

注:

最新バージョンをインストールして Inspector を起動する別の方法です。

mcp_server$ npx @modelcontextprotocol/inspector@latest
ブラウザーで MCP Inspector クライアント UI を開く
http://comp9:5173   --> Connect

注:

たとえば comp9 などのリモートコンピュート環境で MCP 開発サーバーを実行している場合、MCP Inspector クライアント UI はそのマシンに接続する必要があります。

ブラウザーで UI を起動すると、トランスポートタイプ、コマンド、引数には正しいパラメーターが表示されます。

Transport Type: STDIO
Command: uv
Arguments: run --with mcp mcp run ./weather_stdio.py

または

Transport Type: SSE
URL: http://comp9:8001/sse

注:

MCP 開発ツール

mcp_server$ uv run mcp

SSE クライアント/サーバー

サーバー

mcp_server$ uv run weather_sse.py      # port 8001

クライアント

mcp_client$ uv run client_sse.py http://comp9:8001/sse

Python-SDK

https://github.com/modelcontextprotocol/python-sdk/

SSE の問題:

https://github.com/modelcontextprotocol/python-sdk/issues/398

コメント

MCP は初めてですか?

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

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