🎃
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 責務。I/O は引数と戻り値だけに閉じる。
- 失敗ログ取得/バッチ再実行など “人が判断する粒度” でツールを刻むと再利用性が跳ね上がる。
-
疎結合トランスポート
- 開発中は
transport="stdio"
で爆速プロトタイピング。 - 運用環境では FastAPI に載せ Streamable HTTP へ昇格。
fastmcp
が実装を簡素化します。
- 開発中は
-
AI エージェント=オーケストレータ
- ツール呼び出し順・条件分岐・リトライなど ロジックはすべてプロンプト側に寄せる。
- 仕様変更→プロンプト修正→即反映、という超高速フィードバックループが可能。
3. MCP 汎用レシピ:5 ステップ
-
棚卸し
- 日々クリックしている手作業を列挙(≤5 分のタスク単位)。
-
関数化
- 各操作を Python 関数化し、戻り値は JSON / str に固定。
-
ツール登録
-
@mcp.tool()
で登録。fastmcp
なら 10 行以下で完了。
-
-
エージェント実装
-
Client.call_tool()
を使い、判断ロジックをプロンプトに記述。
-
-
デプロイ
- 開発→stdio、本番→FastAPI + Docker + CI/CD。
4. 典型ユースケース:失敗ログ→自動再実行
5. ベストプラクティスチェックリスト
-
ツール名は動詞+対象名(
run_batch
,get_failed_log
) - 戻り値はプリミティブ型 で LLM が解釈しやすく
- タイムアウト/リトライは エージェント側で制御
- ログ・監視・通知もツール化 して “観測→判断→実行” を 1 ストローク化
- stdio⇄HTTP 切替は
transport
変数だけで済むようテストコードを用意 - 機密ファイルを読むツールは 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. まとめ
- 作業の最小単位を関数化し
@mcp.tool()
で登録 - LLM には判断を、ツールには実行を分離
- stdio で 15 分動作確認 → HTTP 化 → CI/CD へ載せる
引用・参考リンク
- 元記事: https://zenn.dev/ted99/articles/8e679ad20f4f48
- Zenn Markdown ガイド: https://zenn.dev/zenn/articles/markdown-guide
- Anthropic: “Introducing the Model Context Protocol” https://www.anthropic.com/news/model-context-protocol
- OpenAI フォーラム MCP 討議: https://community.openai.com/t/preparing-for-mcp-in-responses/1152972
- fastmcp GitHub: https://github.com/jlowin/fastmcp
- fastmcp PyPI: https://pypi.org/project/fastmcp/
- MCP Python SDK: https://github.com/modelcontextprotocol/python-sdk
- Anthropic Docs MCP: https://docs.anthropic.com/en/docs/agents-and-tools/mcp
- Verge 記事 (MCP 関連): https://www.theverge.com/2024/11/25/24305774/anthropic-model-context-protocol-data-sources
- Anthropic Research Blog (エージェント開発): https://www.anthropic.com/research/building-effective-agents
Discussion