【PR】この記事には楽天アフィリエイト・Amazonアソシエイトの広告リンクが含まれます。商品やサービスは公式の仕様・条件と販売情報を確認して選んでおり、実機テストによる評価ではありません。 Amazonのアソシエイトとして、PROBEFOLIOは適格販売により収入を得ています。

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

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

この記事では、その手順と、2つ目の道具を足した例(9月25日に確認)、公式ドキュメントで確認した登録方法・つまずきやすい点を説明します。

この記事の目次
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

ツールのほかの2つ:リソースとプロンプト

公式の説明では、MCPサーバーが差し出せるものは3種類です。この記事で作るツールのほかに、リソースとプロンプトがあります。

  1. ツール:AIが呼ぶ関数。公式の説明では、使う人の承認を得て呼ばれる。
  2. リソース:ファイルの中身やAPIの応答のように、アプリが読めるデータ。
  3. プロンプト:決まった作業を進めるための、用意された依頼文のひな形。

最初はツールだけで十分です。AIに何かをしてもらう道具はツール、読ませたい資料はリソースと覚えておくと、使い分けに迷いません。

04

作る: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行目にはっきり書いてください。

05

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

編集部の確認では、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
06

2つ目の道具を足す:決まったフォルダーのメモを一覧にする

慣れてきたら、同じサーバーに道具を足します。ここでは、サーバーと同じ場所の「notes」フォルダーにあるメモのファイル名と大きさを返す、読み取るだけの道具を足しました。

見るフォルダーをコードの中で固定しているため、AIがほかのフォルダーを読みに行くことはありません。読める範囲を先に決めておくのが、安全に道具を増やすコツです。

07

動かした結果:2つの道具が一覧に出た

2026年9月25日に、編集部のWindows 11のPC(uv 0.11.17、Python 3.12.13、mcp 2.2.0)で、Pythonのクライアントから接続して確かめました。

ツールの一覧には「count_chars」と「list_notes」の2つが出ました。どちらも、関数の説明文の1行目がそのまま道具の説明として表示されました。

notesフォルダーに2つのメモを置いて「list_notes」を呼ぶと、「meeting.txt(53バイト)」「shopping.txt(19バイト)」が返りました。日本語は1文字が3バイトになるため、文字数より大きな数字になります。

08

最初に作ると便利な道具の例

最初の数本は、読み取るだけで、間違って動いても困らない道具がおすすめです。表「最初に作ると便利な道具」から、自分の作業に近いものを選びます。

書き換えや送信をする道具は、読み取りの道具で慣れてから作ります。作るときは、実行の前に内容を確かめる手順を必ず入れます。

最初に作ると便利な道具(例)
道具読み取りだけか気をつけること
文字数を数える読み取りだけ特になし
決まったフォルダーのメモの一覧読み取りだけ読めるフォルダーをコードで固定する
表計算のファイルの合計を出す読み取りだけ大きなファイルは読み込みに時間がかかる
今日の予定を表示する読み取りだけ予定を読むための鍵を、コードに直接書かない
メモを新しく保存する書き込みあり保存する場所を固定し、上書きしない
09

登録する:Claude Desktop と Claude Code

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

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

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

10

Claude Code に登録する:claude mcp add

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

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

11

チームで共有するときの注意

Claude Codeで「--scope project」を付けて登録すると、設定がプロジェクトの .mcp.json に保存され、同じプロジェクトを使う人と共有できます。

共有する前に、設定の中にパスワードやAPIキーが書かれていないかを確かめます。鍵は設定ファイルに書かず、各自の環境変数で渡すようにしておくと、共有しても安全です。

12

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

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

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

つながらないときの公式の確認手順

Claude Desktopにサーバーが出てこないとき、公式の手順では次の3つを確かめるよう案内しています。

  1. 設定ファイルの書き方:claude_desktop_config.json の括弧や引用符の抜けがないか。
  2. パスが絶対パスか:プロジェクトのフォルダーを、絶対パスで書いているか。
  3. 完全に終了して再起動したか:Windowsでは、タスクバーの通知領域のClaudeのアイコンを右クリックして終了する。ウィンドウを閉じただけでは、設定が読み込まれない。

それでも動かないときは、ログを確かめます。公式の説明では、「mcp.log」に接続の記録が、「mcp-server-サーバー名.log」にサーバーのエラーの出力が書かれます。

14

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

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

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

15

他人が作ったMCPサーバーを入れる前の確認

インターネットで公開されているMCPサーバーを入れる前に、次の確認リストを見ます。MCPサーバーは、PCの中のファイルやサービスに触れる道具です。

1つでも分からない項目があれば、入れる前に作った人の説明を読み、必要なら使うのを見送ります。

  • どんな道具(ツール)を差し出すのかを読んだ
  • ファイルの書き換えや送信をする道具があるかを確かめた
  • パスワードやAPIキーを渡す必要があるかを確かめた
  • 作った人や組織が分かり、更新が続いている
  • まず試用の環境で動かしてから、ふだんの環境に入れる
16

SDKの版は、動いた組み合わせを記録しておく

MCPのSDKは、新しい版が出ると書き方が変わることがあります。動いたときのSDKの版を、pyproject.toml や記録に残しておきます。

更新した後に動かなくなったら、記録した版に戻して確かめます。どの版で動いたかが分かれば、原因を探す時間が短くなります。

QUICK ANSWERS

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

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

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

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

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

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

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

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

この記事の内容をもとにした、編集部からの提案です。
作ったMCPサーバーは、Claude以外のアプリでも使えますか?

MCPに対応したアプリなら使えます。MCPは、AIのアプリと外の道具をつなぐ共通の決まりのためです。アプリごとに登録の方法が違うので、使うアプリの説明で、MCPサーバーの設定の仕方を確かめてください。

この記事の内容をもとにした、編集部からの提案です。
Claude Desktopにつながらないとき、どこを見ればいいですか?

公式の手順では、設定ファイルの書き方、パスが絶対パスか、Claude Desktopを完全に終了して再起動したかを先に確かめます。それでも動かないときは、接続の記録が書かれる mcp.log と、サーバーごとのログを確かめます。

この記事を共有する

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

商品情報の提供:Supported by Rakuten Developers

SOURCES & EDITORIAL NOTE

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

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

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