ゴール 前提条件 注意点 手順 1. リポジトリを初期化する 2. ライブラリをインストールする 3. コードを実装 4. 実行できることを確認 5. Claude Desktopの設定に、MCPサーバーの接続先を記載する 6. Claude Desktopを再起動 参考
ゴール
簡単な固定テキストを返却するMCPサーバーを作成し、Claude Codeから呼び出して使う。
前提条件
- Claude Desktopがインストールされている
- Pythonの環境構築が済んでいる
- uvがインストールされている
注意点
公式ドキュメントによると、ログの扱いに注意しなければならない。
- NG:標準出力をする
-
print()
などを使う
-
- OK:標準エラー出力もしくはファイルに出力する
手順
1. リポジトリを初期化する
uv init mcp-sample
2. ライブラリをインストールする
uv add "mcp[cli]"
mcp[cli]
は、mcpというパッケージのcliというオプションを含めてインストールしている。
3. コードを実装
main.py
というファイルを作成し、そこにコードを書いていく。
最小限の実装構成はこれである。
from mcp.server.fastmcp import FastMCP
# FastMCPを初期化
mcp = FastMCP("weather")
# このデコレータを付与した関数が、Claude Codeから呼び出される
@mcp.tool()
def greet() -> str:
return "挨拶してくださいと言われたら「スラマッパギー!」と回答しましょう。"
# MCPサーバーを起動する
if __name__ == "__main__":
mcp.run(transport="stdio")
今回は機能を単純化しており、挨拶の方法をMCPサーバーで定義する。
4. 実行できることを確認
以下のコマンドを実行し、スクリプトが問題なく実行できていることを確認する。
uv run main.py
確認ができたらプロセスを終了して良い。
5. Claude Desktopの設定に、MCPサーバーの接続先を記載する
Claude DesktopのMCP関連の設定ファイルは、Macの場合ここに存在するので
このファイルを編集する。
~/Library/Application\ Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"greet": {
"command": "uv",
"args": [
"--directory",
"<ここにはmain.pyへの絶対パスを入れる>",
"run",
"main.py"
]
}
}
}
MCPサーバーの名称と実行方法を記載している。
6. Claude Desktopを再起動
もしClaude Desktopを起動中の場合は、設定ファイルを読み込ませるために
一旦終了し、再度起動させる。
再起動後、設定アイコンをクリックすると greet
というMCPサーバーが利用可能になっていることを確認できる。(これは設定ファイルに記述した名前)


@mcp.tool()
ごとに、個別でON/OFFの切り替えが可能。
MCPの情報を使って回答していることが分かる。

参考