🎃

MCPツール化で始める AI エージェント自動化—最小サンプルを汎用ノウハウへ昇華する

に公開

すべての反復作業を「MCPツール」に落とし込み、
AI エージェントに呼び回させるだけで “人が判断して手を動かす工程” を自動化できる。

Anthropic が公開した Model Context Protocol (MCP) は、LLM と外部ツールを “超薄い標準 I/F” で接続する新興規格です。OpenAI も追随を表明し、事実上のデファクトになりつつあります。
本記事では Zenn の「MCP 最小動作サンプル」記事を出発点に、どんな案件にも再利用できる 汎用ノウハウ へ抽象化します。

1. MCP が解決する課題

Before After (MCP)
ボタン/REST API ごとに個別実装 @mcp.tool() で 1 関数=1 ツール登録
LLM↔アプリ間 I/F がまちまち stdio / Streamable HTTP の 2 方式だけで完結
仕様変更→コード修正→再デプロイ プロンプト修正だけで振る舞い変更—PDCA が爆速

2. 設計 3 原則

  1. 道具化の徹底

    • 1 ツール=1 責務。I/O は引数と戻り値だけに閉じる。
    • 失敗ログ取得/バッチ再実行など “人が判断する粒度” でツールを刻むと再利用性が跳ね上がる。
  2. 疎結合トランスポート

    • 開発中は transport="stdio" で爆速プロトタイピング。
    • 運用環境では FastAPI に載せ Streamable HTTP へ昇格。fastmcp が実装を簡素化します。
  3. AI エージェント=オーケストレータ

    • ツール呼び出し順・条件分岐・リトライなど ロジックはすべてプロンプト側に寄せる
    • 仕様変更→プロンプト修正→即反映、という超高速フィードバックループが可能。

3. MCP 汎用レシピ:5 ステップ

  1. 棚卸し
    • 日々クリックしている手作業を列挙(≤5 分のタスク単位)。
  2. 関数化
    • 各操作を Python 関数化し、戻り値は JSON / str に固定。
  3. ツール登録
    • @mcp.tool() で登録。fastmcp なら 10 行以下で完了。
  4. エージェント実装
    • Client.call_tool() を使い、判断ロジックをプロンプトに記述。
  5. デプロイ
    • 開発→stdio、本番→FastAPI + Docker + CI/CD。

4. 典型ユースケース:失敗ログ→自動再実行

5. ベストプラクティスチェックリスト

  1. ツール名は動詞+対象名run_batch, get_failed_log
  2. 戻り値はプリミティブ型 で LLM が解釈しやすく
  3. タイムアウト/リトライは エージェント側で制御
  4. ログ・監視・通知もツール化 して “観測→判断→実行” を 1 ストローク化
  5. stdio⇄HTTP 切替は transport 変数だけで済むようテストコードを用意
  6. 機密ファイルを読むツールは IAM/OS 権限を最小化

6. 応用アイデア集

シナリオ 主要ツール エージェントの振る舞い
週次家計簿 fetch_bank_csv, summarize_spending, post_to_notion 毎週日曜 23:00 に実行し Slack へ自動レポート
資格学習プランナー get_today_schedule, suggest_study_topic, log_progress 朝の空き時間に学習トピックと資料リンクを提示
健康管理 read_scale_weight, append_google_sheet, notify_goal_status 体重差分と昨晩の食事ログを毎晩通知

7. まとめ

  1. 作業の最小単位を関数化し @mcp.tool() で登録
  2. LLM には判断を、ツールには実行を分離
  3. stdio で 15 分動作確認 → HTTP 化 → CI/CD へ載せる

引用・参考リンク

Discussion