ローカルでMCPサーバーを自作してClaudeで使う方法【Claude Desktop / Claude Code】

AI系ツール

PythonでMCPサーバーを自作し、Claude DesktopやClaude Codeで使う方法を解説します。

WindowsとMac両対応で、シンプルなサンプルコードを使って説明します。

【前提条件】PythonとUVのインストールが必要となります。Macでのインストール方法については、下記記事にまとめているので、併せて参考にしてください。

ローカルでMCPサーバーを自作

まずはプロジェクトディレクトリを作成します。下記コマンドでuvを初期化します。

仮想環境を作成します。

仮想環境を有効化します。

【Mac】

【Windows】

次に、fastmcpをいれておきます。

fastmcpとはPythonでMCPサーバーを簡単に作成できるライブラリです。

これによって、プロジェクト内のpyproject.tomlファイル内には次のようになります。

【pyproject.toml】

dependencies"fastmcp"が入っているか確認してください。 もし空欄だったり、入っていない場合は手動で追加します
namedescriptionは自由に変更できますが、nameに「mcp」など既存のパッケージ名を使うとインポートエラーが発生するので避けてください

main.pyに次のようにいれておきます。

デコレーター@mcp.tool()(sなし)と関数定義defの間に空行を入れないでください。
– 空行を入れると、デコレーターが関数に正しく適用されず、MCPサーバーがツールとして認識できなくなります

これで準備OKです。下記コマンドを実行してみます。

下記のような画面が表示されればOKです。この後、Ctrl+Cで止めておいても大丈夫です。

作成したMCPサーバーをClaude Desktopで使う

まずはClaude Desktopをインストールしておきます。

Claude Desktopを起動します。

サイドバー左下/設定/開発者を選択。【設定を編集】ボタンをクリックすると、設定用ファイルclaude_desktop_config.jsonが選択されます。このファイルを開きます。

*上記では既にいくつか登録されたものがありますが、最初は何も表示されない画面となります。

claude_desktop_config.json に次のように指定します。–directoryの下には、実際にMCPサーバーを作成したディレクトリを設定します。

【Mac】

まず、uvのフルパスを確認します。

実行結果をcommandに指定します。たとえば、実行結果が「/Users/user/.local/bin/uv」であった場合は、下記のようにいれます。

–directory: MCPサーバーのプロジェクトを作成したディレクトリのフルパスを指定します。たとえば、/Users/user/Documents/mcpの配下にMCPサーバーを作成した場合は、上記のように、/Users/user/Documents/mcpと記述します。

【Windows】

Windowsの場合は、commandは”uv”のみでOKです。

–directory: MCPサーバーのプロジェクトを作成したディレクトリのフルパスを指定します。パスの区切りは\\(バックスラッシュ2つ)で記述します。たとえば、C:\python\mcp\myMCPの配下にMCPサーバーを作成した場合は、上記のように、C:\\python\\mcp\\myMCPと記述します

Claude Desktopを再起動します。Macの場合は、許可を求める画面になります。「許可」をクリックします。(Windowの場合は、特にこの画面はありませんでした)

【検索とツール】ボタン(+ボタンの右)をクリックすると、登録したMCPサーバーの名前が確認できます。

下記のように質問をしてみます。すると、作成したMCPサーバー内の関数を使って質問に答えようとしてくれます。なお、MCPサーバーについて使用許可がでてくるので、「一度だけ許可」を選択して進めてみましょう。

「my-mcpを使って答えてください。3と5です」といった形で質問をします。

計算結果が表示されます。

エラーになる場合

Claude Desktopを起動した際に、もしMCPサーバー接続エラーになる場合は、下記のようにエラーメッセージが表示されます。開発者設定画面よりログを確認します。

原因は色々だと思いますが、下記に該当するものがないか確認してみてください。

  • claude_desktop_config.jsonのパスが間違えていないか
  • Macの場合:which uvで確認したパスと一致しているか
  • Windowsの場合:パスの区切りが\\(バックスラッシュ2つ)になっているか
  • プロジェクトディレクトリのパスが正しいか
  • Windowsの場合:Claude Desktopが完全に終了した後に再起動したか(終了したかどうかタスクマネージャーでチェック)

作成したMCPサーバーをClaude Codeで使う

プロジェクトで使用するMCPサーバーは、プロジェクト内に.mcp.jsonファイルを作成します。下記のようにいれておきます。

commandの書き方は、Claude Desktopと同様です(上記説明ご覧ください)。

【Mac】


【Windows】

typeは、MCPサーバーとの通信方式を示します(stdioは標準入出力による通信)。省略しても動作する可能性がありますが、念のため指定しています。

Claude Codeを立ち上げると、新たなMCPサーバーがあるが使ってよいかどうか聞かれます。2番目の「Use this MCP server」を選択します。

Claude Code内で「my mcpを使ってください。3と6です。」といった形で質問をしてみます。

MCPサーバーが使われていることが分かる画面が表示されます。

MCPを使って結果が返ってきます。

なお、ClaudeCode内で/mcpを実行すると、現在利用できるmcpサーバーを確認できます。

さいごに

今回はローカルで作成したMCPサーバーを利用する方法をご紹介しました。

MCPサーバー自体はテスト用にかなりシンプルなものを使いましたが、こちらは、ご希望によって変更してください。

記事コンテンツ更新の際には、Xにてご紹介しています。よろしければフォローしてください。

またYoutubeも更新中です。過去にMCPについて分かりやすく紹介した動画などもあります。

ご興味あれば、併せてご覧ください。

MCPとは?生成AIの回答精度を劇的に変える技術とことん分かりやすく解説しました
AI系ツール 生成AI関連

生成AIを使ったコーディングに興味がある あなたへ

バイブコーディングセミナープレゼント

バイブコーディングセミナーの一部を無料でプレゼント!

プレゼント詳細を見てみる

生成AIを使ったコーディングに興味がある あなたへ

バイブコーディングセミナープレゼント

バイブコーディングセミナーの一部を無料でプレゼント!

プレゼント詳細を見てみる

Laravelの本を書きました。


ひつじが目印♪

Laravelの使い方を分かりやすく解説した書籍を出版しました。 ご好評につき、最新版に対応した改訂版を2025年7月に発売
書店やAmazon等のオンラインショップにて販売中です。 詳しくは下記ボタンをクリック

書籍の詳細を見てみる

Laravelの本書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravelの使い方を分かりやすく解説した書籍を出版しました。ご好評につき最新版対応の改訂版発売。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる
Twitter始めました。
40代からプログラミング!
タイトルとURLをコピーしました