MCPサーバーは、AIに「呼んでよい道具」を渡すための小さなプログラムです。公式のPython SDKを使うと、関数に目印を1行付けるだけで、ClaudeなどのAIから呼べる道具になります。
PROBEFOLIO 編集部では、2026年9月24日にWindows 11のPCで、文字数を数えるだけの最小のサーバーを作り、ツール一覧と呼び出しの結果を確かめました。
この記事では、その手順と、公式ドキュメントで確認した登録方法・つまずきやすい点を説明します。
この記事の目次
結論:uvで作り、関数に目印を付けて、Claudeに登録する
MCPサーバーづくりは、次の3段階です。
- 作る:uvでプロジェクトを作り、公式SDK(mcp)を入れて、道具にしたい関数を書く。
- 確かめる:ツールの一覧に出るか、呼んだときに正しい結果が返るかを試す。
- 登録する:Claude Desktop の設定ファイル、または Claude Code のコマンドで登録する。
最初の1本は、何も書き換えない「読み取るだけ」の道具にします。うまく動かなくても、PCの中のデータが壊れる心配がありません。
MCPサーバーとは:AIが呼べる「道具の窓口」
MCP(Model Context Protocol)は、AIのアプリと外の道具をつなぐ共通の決まりです。MCPサーバーは、その決まりに合わせて道具を差し出すプログラムです。
公式の説明では、サーバーが差し出せるものは「ツール(AIが呼ぶ関数)」「リソース(読めるデータ)」「プロンプト(決まった依頼文)」の3種類です。この記事ではツールだけを作ります。
APIとの違いはMCPとAPIの違いで説明しています。
作る:uvで準備し、20行のサーバーを書く
公式の条件は、Python 3.10 以上と、MCP の Python SDK 2.0.0 以上です。準備は次の順に進めます。
- uv を入れる:公式の手順(Windows は PowerShell の1行)で入れ、ターミナルを開き直す。
- プロジェクトを作る:「uv init memo-tools」を実行し、できたフォルダーに移る。
- SDK を入れる:「uv add "mcp[cli]"」を実行する。
- server.py を書く:例「文字数を数えるサーバー」をそのまま貼る。
関数の説明文(三重引用符の部分)は、AIが「いつこの道具を使うか」を判断する手がかりになります。何をする道具かを1行目にはっきり書いてください。
確かめる:ツール一覧に出て、結果が返るか
編集部の確認では、Python の MCP クライアントからこのサーバーに接続すると、ツール一覧に「count_chars」が出ました。「こんにちは」と「MCP」の2行を渡すと、「文字数: 9、行数: 2」が返りました(改行も1文字に数えます)。
画面で確かめたいときは、公式の MCP Inspector が使えます。ツールの一覧を見たり、入力を渡して結果を見たりできます。
| 項目 | 内容 |
|---|---|
| 環境 | Windows 11、uv 0.11.17、Python 3.12.13、mcp 2.2.0 |
| ツール一覧 | count_chars(説明「文章の文字数と行数を数えます。」) |
| 呼び出し結果 | 「こんにちは」「MCP」の2行 → 文字数: 9、行数: 2 |
登録する:Claude Desktop と Claude Code
Claude Desktop では、設定ファイル「claude_desktop_config.json」の「mcpServers」に登録します。
Windows では、エクスプローラーのアドレス欄に「%AppData%\Claude」と入れると、ファイルのある場所を開けます。
書く内容は例「Claude Desktop に登録する設定」のとおりです。保存したら Claude Desktop を再起動します。
Claude Code に登録する:claude mcp add
Claude Code では、ターミナルで例「Claude Code に登録するコマンド」を実行します。「--」の後ろが、サーバーを起動するコマンドです。
登録できたかは、Claude Code の中で「/mcp」を開くか、「claude mcp list」で確かめます。チームで共有したいときは「--scope project」を付けると、設定がプロジェクトの .mcp.json に保存されます。
つまずきやすい3つの点(Windows で特に多い)
つながらないときは、次の3つを順に確かめます。
- print() を使っている:stdio のサーバーでは、標準出力に書くと通信が壊れる。記録は logging を使う。
- パスの書き方:設定ファイルでは「\」を「\\」と2つ重ねるか、「/」で書く。フォルダーは絶対パスで指定する。
- uv が見つからない:公式の注意のとおり、「where uv」で出た場所を command にそのまま書く。
- サーバーの中で print() を使っていない
- 設定ファイルのパスを絶対パスで、正しい書き方にした
- 設定を変えたら Claude Desktop を再起動した
安全に使うために:読み取りから始め、秘密は渡さない
ツールは、AIの判断で呼ばれます。削除・送信・購入のように取り消せない操作を最初から入れると、思わぬ場面で動くおそれがあります。
パスワードやAPIキーは、コードに直接書かず環境変数で渡します。他の人が作ったMCPサーバーを入れるときは、何ができる道具なのかを読んでから登録してください。
よくある疑問を、ここで。
使い始める前に、気になるところから。
MCPサーバーはPython以外でも作れますか?
作れます。公式の手順には TypeScript などの例もあります。この記事では、手順が短く試しやすい Python の SDK を使いました。
print() でデバッグしてはいけないのはなぜですか?
stdio のサーバーは、標準出力を通信に使います。print() で文字を書くと通信の中身が壊れ、つながらなくなります。記録は標準エラー出力に書く logging を使ってください。
作ったMCPサーバーは安全ですか?
道具の内容しだいです。最初は読み取るだけの道具にし、削除・送信など取り消せない操作や、パスワードを扱う操作は、動きを理解してから足してください。
この記事を共有する
出典と、この記事について
公式資料や、記事で参照した発表・報道をまとめています。仕様や料金は、利用する前に最新の案内をご確認ください。
- Model Context Protocol:Build an MCP server(新しいタブで開きます)
- Claude Code Docs:Connect Claude Code to tools via MCP(新しいタブで開きます)
確認した内容と条件は本文に記載しています。結果や使い勝手は、資料や環境によって異なります。編集方針を読む



ぜひコメントください