mcpField
M
MCP Automations

MCP Automations

リモート
github.com生産性03 週間前に更新
リポジトリ公式サイト

MCP Automations について

MCP Automations は、LLM から呼び出せるコンテンツ処理・調査ツールを 4 つ備えた Python 製 MCP サーバーです。ローカルとリモートのクライアントに対応し、ツールの応答に呼び出しごとのトークン使用量と費用を含めます。

主な機能

  1. 01ウェブページを箇条書きで要約
  2. 02文章を SNS 投稿やニュースレターに再構成
  3. 03トピック別に引用付きニュースダイジェストを作成
  4. 04ドメインから有力な競合候補を検索
  5. 05応答にトークン使用量と費用を付加

活用シーン

  1. 01ウェブページの要点をまとめる
  2. 02長文をニュースレター向けに再構成
  3. 03引用付きの日次ニュース要約を作成
  4. 04企業の競合候補を特定

MCP 対応

4 つのツール、`automations://catalog` リソース、`daily_brief` プロンプトを公開します。stdio と HTTP のトランスポートに対応し、ローカルまたはリモートの MCP クライアントが接続できます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://mcp-automations.fly.dev/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

4
パラメーター型必須説明
urlstringはい
n_bulletsintegerいいえ

詳細

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.5Tavilyでニュースを検索し、引用付きの約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。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。