MCP Automations について
MCP Automations は、LLM から呼び出せるコンテンツ処理・調査ツールを 4 つ備えた Python 製 MCP サーバーです。ローカルとリモートのクライアントに対応し、ツールの応答に呼び出しごとのトークン使用量と費用を含めます。
主な機能
- 01ウェブページを箇条書きで要約
- 02文章を SNS 投稿やニュースレターに再構成
- 03トピック別に引用付きニュースダイジェストを作成
- 04ドメインから有力な競合候補を検索
- 05応答にトークン使用量と費用を付加
活用シーン
- 01ウェブページの要点をまとめる
- 02長文をニュースレター向けに再構成
- 03引用付きの日次ニュース要約を作成
- 04企業の競合候補を特定
MCP 対応
4 つのツール、`automations://catalog` リソース、`daily_brief` プロンプトを公開します。stdio と HTTP のトランスポートに対応し、ローカルまたはリモートの MCP クライアントが接続できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp-automations.fly.dev/mcpclaude mcp add --transport http wzltmp-mcp-automations https://mcp-automations.fly.dev/mcp{"mcpServers":{"wzltmp-mcp-automations":{"type":"http","url":"https://mcp-automations.fly.dev/mcp"}}}Cursor で開く{"servers":{"wzltmp-mcp-automations":{"type":"http","url":"https://mcp-automations.fly.dev/mcp"}}}VS Code で開く{"mcpServers":{"wzltmp-mcp-automations":{"type":"http","url":"https://mcp-automations.fly.dev/mcp"}}}{"mcpServers":{"wzltmp-mcp-automations":{"serverUrl":"https://mcp-automations.fly.dev/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
4| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | はい | |
| n_bullets | integer | いいえ |
詳細
MCP Automations
Pythonで構築された、本番環境向けのModel Context Protocolサーバーです。LLMから呼び出せる4つのツール、2つのトランスポート、2通りのデプロイ方法を備えています。
| URL | |
|---|---|
| ソースコード | https://github.com/wzltmp/mcp-automations |
| プレイグラウンド(ブラウザデモ) | https://mcp-automations-5vgea2ynuyrvbzkcxm6yoh.streamlit.app/ |
| MCP HTTP サーバー | https://mcp-automations.fly.dev/mcp |
# 30-second proof the server is up:
curl -X POST https://mcp-automations.fly.dev/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","method":"initialize","id":1,
"params":{"protocolVersion":"2024-11-05",
"capabilities":{},
"clientInfo":{"name":"curl","version":"1"}}}'
これは何か
多くの「AI エンジニア」向けポートフォリオプロジェクトは、アプリケーション(RAG チャットボットや、調査を行うエージェント)です。このプロジェクトはその下位レイヤー、つまりLLMが呼び出す型付きツールと、それらを公開するためのトランスポート処理を扱います。MCPはLLMのツール利用における新たな標準として普及しつつあります(2026年初頭時点でSDKの月間ダウンロード数は約9,700万件)。MCPを利用するだけでなく、自ら構築できるスキルは希少です。
設計上の判断について詳しくは、WRITEUP.mdをご覧ください。2つのトランスポートを採用した理由、コストの計測方法、例外の階層構造、改善できる点などを説明しています。
ツール
| ツール | モデル | 機能 |
|---|---|---|
summarize_url(url, n_bullets) | Haiku 4.5 | ページを取得し、trafilaturaで読みやすいテキストを抽出して、N項目の箇条書き要約を返します |
repurpose_content(text, format) | Sonnet 4.6 | 長文をTwitterスレッド、LinkedIn投稿、またはニュースレターに書き換えます |
daily_digest(topic, n_results) | Haiku 4.5 | Tavilyでニュースを検索し、引用付きの約200語のダイジェストを作成します |
find_competitors(domain, n) | Sonnet 4.6 | ドメインを基に、企業の有力な競合他社をN社特定します |
さらに、MCP リソース(automations://catalog)とMCP プロンプト(daily_brief)を1つずつ備えており、ツールだけでなく、3種類すべてのMCPプリミティブを使用しています。
各ツールは、呼び出しごとのトークン使用量とドル建てコストを含む、型付きのPydanticモデルを返します。低コストのタスクにはHaiku 4.5(入力100万トークンあたり$1、出力100万トークンあたり$5)、文章作成が中心のタスクにはSonnet 4.6(入力100万トークンあたり$3、出力100万トークンあたり$15)を使用します。
Claude Desktopをこのサーバーに接続する
~/Library/Application Support/Claude/claude_desktop_config.json(Mac)または %APPDATA%/Claude/claude_desktop_config.json(Windows)に次のいずれかを追加してから、Claude Desktopを再起動してください。
オプションA — ローカルstdio(ネットワーク不要。サーバーをサブプロセスとして実行します):
{
"mcpServers": {
"mcp-automations": {
"command": "python",
"args": ["-m", "mcp_server.server"],
"cwd": "/absolute/path/to/mcp-automations",
"env": {
"ANTHROPIC_API_KEY": "sk-ant-...",
"TAVILY_API_KEY": "tvly-..."
}
}
}
}
オプションB — リモートHTTP(稼働中のFlyサーバーに接続します。ローカルでのセットアップは不要です):
{
"mcpServers": {
"mcp-automations": {
"url": "https://mcp-automations.fly.dev/mcp",
"transport": "http"
}
}
}
その後、*「https://www.paulgraham.com/greatwork.html を3項目で要約して」*のようにClaudeに依頼すると、summarize_urlが自動的に呼び出されます。
ローカルで実行する
pip install -r requirements.txt
# Stdio (for Claude Desktop):
python -m mcp_server.server
# HTTP server (defaults to 0.0.0.0:8765):
MCP_TRANSPORT=http python -m mcp_server.server
# Streamlit playground:
streamlit run playground/app.py
Python 3.13が必要です。.envにANTHROPIC_API_KEYとTAVILY_API_KEYを設定してください(.env.exampleを参照)。
アーキテクチャ
┌────────────────┐ stdio ┌──────────────────────┐
│ Claude Desktop ├───────────────►│ │
└────────────────┘ │ │
│ mcp_server/ │
┌────────────────┐ HTTP/JSON │ server.py │
│ Remote client ├───────────────►│ (FastMCP) │
└────────────────┘ (Fly.io) │ │
│ 4 tools │
┌────────────────┐ direct call │ 1 resource │
│ Streamlit UI ├───────────────►│ 1 prompt │
└────────────────┘ └──────────┬───────────┘
│
┌──────────┴───────────┐
│ Anthropic + Tavily │
│ (lazy clients) │
└──────────────────────┘
3つのエントリーポイントは、すべて同じPython呼び出し可能オブジェクトを使用します。トランスポートは単なるラッパーです。
このリポジトリの内容
mcp-automations/
├── mcp_server/
│ ├── server.py # FastMCP server: 4 tools + 1 resource + 1 prompt
│ ├── models.py # Pydantic I/O schemas (incl. per-call Cost telemetry)
│ └── exceptions.py # MCPToolError + UpstreamAPIError / EmptyLLMResponseError / ExtractionError
├── playground/
│ └── app.py # Streamlit UI with per-session call + spend caps
├── tests/ # offline unit tests (httpx/anthropic/tavily all mocked)
├── Dockerfile # python:3.13-slim, MCP_TRANSPORT=http for Fly
├── fly.toml # shared-cpu-1x, 256mb, auto-stop when idle
└── .github/workflows/ # ruff + strict mypy + pytest on every push
本番環境向けの注目ポイント
- すべてのツール応答でコストを計測(
models.Cost) — トークン数と米ドル建てのコストを付加するため、クライアント側で再計算する必要がありません。 - コストを考慮したモデルの振り分け — 低コストのタスクにはHaiku、文章作成タスクにはSonnetを使用します。
- ドメイン固有の例外階層 —
UpstreamAPIError、EmptyLLMResponseError、ExtractionErrorは、それぞれログとStreamlit UIで異なる方法で処理されます。 - 1つのコードベースで2つのトランスポートに対応 —
MCP_TRANSPORT=stdio|http環境変数で切り替えます。HTTPのホストとポートも環境変数から設定するため、Fly上で同じイメージを実行できます。 - プレイグラウンドでセッション単位の不正利用を制限 — 1セッションあたり20回、最大$0.50に制限しています。Anthropicコンソール側でも、月額$2の上限を設定しています。
- プッシュごとにCIで厳格なmypy、ruff、pytestを実行(
.github/workflows/ci.yml)。
MCP を選ぶ理由
MCP はトランスポートに依存しないため、1 つのサーバーで、ローカルの Claude Desktop ユーザー(stdio サブプロセス)と、ホストされたマルチテナント環境(HTTPS)の両方に対応できます。また、多くのデモで省略される 3 つのプリミティブも公開します。
- ツール — モデルが呼び出すことを決定する関数(ここでは 4 つ)
- リソース — クライアントが URI で取得できる読み取り専用データ(
automations://catalogはツールの一覧を JSON で返します) - プロンプト — ユーザーが明示的に呼び出すサーバー側のテンプレート(
daily_briefはdaily_digestとrepurpose_contentを連鎖させます)
3 つすべてを使用することは、クイックスタートを試しただけでなく、仕様を読んだことの表れです。
ステータス
✅ GitHub にコードを公開済み、CI はグリーン
✅ Streamlit Cloud で公開プレイグラウンドを提供
✅ Fly.io で公開 MCP HTTP サーバーを提供
✅ コスト保護(セッションごとの上限+Anthropic の月間上限)
✅ 実際のテストカバレッジ(オフラインのユニットテスト 23 件)
✅ io.github.wzltmp/mcp-automations として公式 MCP レジストリに登録済み
✅ 設計上の判断についての詳細な解説
✅ デモだけでなく、別のエージェントで利用済み — langgraph-research-agent の read_node は、HTTP 経由でこのサーバーの summarize_url ツールを呼び出します(呼び出しに失敗した場合はローカルにフォールバックします)
🚧 デモ GIF とスクリーンショット(予定)
🚧 docker-compose による n8n のセルフホスト(予定)
ライセンス
MIT。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。