コンテンツにスキップ
Zenn Dev Koro St Articles 9393bab30048c1

MCP入門 ① 自作ツール(MCP Server)を Claude Code から呼び出す

  • URL: https://zenn.dev/koro_st/articles/9393bab30048c1
  • 日付: 2026-06-22
  • Tier: Tier 3
  • 要旨: MCP(Model Context Protocol)は AI に自作ツール・自分の手元データを扱わせる仕組み。Host(Claude Code・Claude Desktop など AI アプリ本体)・Client(Host 内で MCP Server と通信する部品)・Server(ツール・データ提供プログラム)の3登場人物を分けて理解。Python SDK で self-hosting MCP Server を自作し、claude mcp add で登録して Claude Code から呼び出す。time-server は datetime 返す最小例、todo-server は JSON ファイル永続化で LLM の「忘れる」弱点補足。@mcp.tool() デコレータで関数を MCP ツール登録、docstring で LLM に説明、型ヒントで扱いやすく。

詳細

MCP のHost(AI アプリ本体)が ユーザープロンプト受け取り LLM 渡し必要時 MCP Server 呼び出し。Client(Host 内蔵部品)が Server と1対1通信。Server(別プロセス・stdio/HTTP)がツール・データ提供。この記事では Server を Python 自作に焦点。FastMCP SDK でサーバー定義、@mcp.tool() でツール登録、mcp.run() で起動。time-server は datetime.now() 返す最小例で、docstring が LLM の判断資料。todo-server は add_todo・list_todos・complete_todo 3ツール登録、load/save で JSON ファイル永続化。LLM は「追加して」「一覧取得して」とリクエストするだけで、実データ管理は Server(外部)担当、ファイル永続化で LLM 「忘れる」弱点補完。型ヒント(->str、todo_id: int)で戻り値・引数型明示、FastMCP が自動 JSON 化。claude mcp add で登録、絶対パス指定・–で右側が起動コマンド。claude mcp list で確認、✓Connected は ヘルスチェック成功・Server プロセス起動・MCP プロトコル通信確認。新セッションから使用可能、ツール名含めて指示すると確実に呼ばれる。初回は使用許可ダイアログ表示。mcp<サーバー名>__<関数名>の命名規則。「現在時刻教えて」と指示だけでは Bash date で応答されることもあるため、ツール名・Server 名明示が確実。