MCPサーバーは、AIに「呼んでよい道具」を渡すための小さなプログラムです。公式のPython SDKを使うと、関数に目印を1行付けるだけで、ClaudeなどのAIから呼べる道具になります。

PROBEFOLIO 編集部では、2026年9月24日にWindows 11のPCで、文字数を数えるだけの最小のサーバーを作り、ツール一覧と呼び出しの結果を確かめました。

この記事では、その手順と、公式ドキュメントで確認した登録方法・つまずきやすい点を説明します。

この記事の目次
01

結論:uvで作り、関数に目印を付けて、Claudeに登録する

MCPサーバーづくりは、次の3段階です。

  1. 作る:uvでプロジェクトを作り、公式SDK(mcp)を入れて、道具にしたい関数を書く。
  2. 確かめる:ツールの一覧に出るか、呼んだときに正しい結果が返るかを試す。
  3. 登録する:Claude Desktop の設定ファイル、または Claude Code のコマンドで登録する。

最初の1本は、何も書き換えない「読み取るだけ」の道具にします。うまく動かなくても、PCの中のデータが壊れる心配がありません。

02

MCPサーバーとは:AIが呼べる「道具の窓口」

MCP(Model Context Protocol)は、AIのアプリと外の道具をつなぐ共通の決まりです。MCPサーバーは、その決まりに合わせて道具を差し出すプログラムです。

公式の説明では、サーバーが差し出せるものは「ツール(AIが呼ぶ関数)」「リソース(読めるデータ)」「プロンプト(決まった依頼文)」の3種類です。この記事ではツールだけを作ります。

APIとの違いはMCPとAPIの違いで説明しています。

03

作る:uvで準備し、20行のサーバーを書く

公式の条件は、Python 3.10 以上と、MCP の Python SDK 2.0.0 以上です。準備は次の順に進めます。

  1. uv を入れる:公式の手順(Windows は PowerShell の1行)で入れ、ターミナルを開き直す。
  2. プロジェクトを作る:「uv init memo-tools」を実行し、できたフォルダーに移る。
  3. SDK を入れる:「uv add "mcp[cli]"」を実行する。
  4. server.py を書く:例「文字数を数えるサーバー」をそのまま貼る。

関数の説明文(三重引用符の部分)は、AIが「いつこの道具を使うか」を判断する手がかりになります。何をする道具かを1行目にはっきり書いてください。

04

確かめる:ツール一覧に出て、結果が返るか

編集部の確認では、Python の MCP クライアントからこのサーバーに接続すると、ツール一覧に「count_chars」が出ました。「こんにちは」と「MCP」の2行を渡すと、「文字数: 9、行数: 2」が返りました(改行も1文字に数えます)。

画面で確かめたいときは、公式の MCP Inspector が使えます。ツールの一覧を見たり、入力を渡して結果を見たりできます。

編集部で動かしたときの環境と結果(2026年9月24日)
項目内容
環境Windows 11、uv 0.11.17、Python 3.12.13、mcp 2.2.0
ツール一覧count_chars(説明「文章の文字数と行数を数えます。」)
呼び出し結果「こんにちは」「MCP」の2行 → 文字数: 9、行数: 2
05

登録する:Claude Desktop と Claude Code

Claude Desktop では、設定ファイル「claude_desktop_config.json」の「mcpServers」に登録します。

Windows では、エクスプローラーのアドレス欄に「%AppData%\Claude」と入れると、ファイルのある場所を開けます。

書く内容は例「Claude Desktop に登録する設定」のとおりです。保存したら Claude Desktop を再起動します。

06

Claude Code に登録する:claude mcp add

Claude Code では、ターミナルで例「Claude Code に登録するコマンド」を実行します。「--」の後ろが、サーバーを起動するコマンドです。

登録できたかは、Claude Code の中で「/mcp」を開くか、「claude mcp list」で確かめます。チームで共有したいときは「--scope project」を付けると、設定がプロジェクトの .mcp.json に保存されます。

07

つまずきやすい3つの点(Windows で特に多い)

つながらないときは、次の3つを順に確かめます。

  1. print() を使っている:stdio のサーバーでは、標準出力に書くと通信が壊れる。記録は logging を使う。
  2. パスの書き方:設定ファイルでは「\」を「\\」と2つ重ねるか、「/」で書く。フォルダーは絶対パスで指定する。
  3. uv が見つからない:公式の注意のとおり、「where uv」で出た場所を command にそのまま書く。
  • サーバーの中で print() を使っていない
  • 設定ファイルのパスを絶対パスで、正しい書き方にした
  • 設定を変えたら Claude Desktop を再起動した
08

安全に使うために:読み取りから始め、秘密は渡さない

ツールは、AIの判断で呼ばれます。削除・送信・購入のように取り消せない操作を最初から入れると、思わぬ場面で動くおそれがあります。

パスワードやAPIキーは、コードに直接書かず環境変数で渡します。他の人が作ったMCPサーバーを入れるときは、何ができる道具なのかを読んでから登録してください。

QUICK ANSWERS

よくある疑問を、ここで。

使い始める前に、気になるところから。

MCPサーバーはPython以外でも作れますか?

作れます。公式の手順には TypeScript などの例もあります。この記事では、手順が短く試しやすい Python の SDK を使いました。

print() でデバッグしてはいけないのはなぜですか?

stdio のサーバーは、標準出力を通信に使います。print() で文字を書くと通信の中身が壊れ、つながらなくなります。記録は標準エラー出力に書く logging を使ってください。

作ったMCPサーバーは安全ですか?

道具の内容しだいです。最初は読み取るだけの道具にし、削除・送信など取り消せない操作や、パスワードを扱う操作は、動きを理解してから足してください。

この記事の内容をもとにした、編集部からの提案です。

この記事を共有する

X(旧Twitter)(新しいタブで開きます)LINE(新しいタブで開きます)はてなブックマーク(新しいタブで開きます)
SOURCES & EDITORIAL NOTE

出典と、この記事について

公式資料や、記事で参照した発表・報道をまとめています。仕様や料金は、利用する前に最新の案内をご確認ください。

確認した内容と条件は本文に記載しています。結果や使い勝手は、資料や環境によって異なります。編集方針を読む