FastMCP server for Apollo について
Apollo.io でアウトバウンド施策を運用するチーム向けの FastMCP サーバーです。キャンペーン監視やシーケンス管理、連絡先のエンリッチメントに加え、監査ログ付きのテンプレート編集にも対応します。
主な機能
- 01キャンペーンとメールボックスの状況集計
- 02シーケンス管理と連絡先登録
- 03人物・組織情報のエンリッチメント
- 04CRMの連絡先、タスク、ラベル管理
- 05テンプレートとシーケンスの作成
- 06監査ログ付き送信上限の変更
活用シーン
- 01日々のキャンペーンとメールボックス状況の確認
- 02連絡先のアウトバウンドシーケンス登録
- 03人物や組織の検索と情報補完
- 04シーケンス作成とメールテンプレートの編集
MCP 対応
Apollo.io の操作を MCP クライアント向けのツールとして公開し、分析、CRM 操作、情報補完、シーケンス作成を提供します。破壊的な書き込みでは、監査ログに変更前後の差分を記録できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Apollo.io MCP サーバー
Apollo.io REST API の全機能を Claude Code に提供する FastMCP サーバーです。シーケンス、キャンペーンの健全性、メールボックスのウォームアップ、人物/組織のエンリッチメント、CRM の連絡先、タスク、ラベル、クレジットの追跡に加え、テンプレート/シーケンス/メールボックスの上限をプログラムで編集する機能と監査ログを含む27個のツールを備えています。
既存の Apollo MCP の多くは、人物検索とエンリッチメントのみを提供します。このサーバーは、大規模なアウトバウンド営業を実施するチーム向けに構築されています。日次の健全性ダイジェスト、シーケンス管理、メールボックスの到達率モニタリング、連絡先のプログラムによる登録、Apollo の UI を操作せずにシーケンスをエンドツーエンドで作成できます。
クイックリファレンス
apollo_campaign_health — daily digest (start here)
apollo_messages_search days_back=1 — raw send/open/reply/bounce log
apollo_mailbox_warmup — per-mailbox deliverability state
apollo_sequences_list — all sequences + labels + stats
apollo_sequence_add_contacts ... — enroll contacts into a sequence
apollo_template_update ... — update template body + subject (with audit log)
apollo_sequence_create ... — author a new sequence end-to-end
apollo_step_create ... — add a step + template to a sequence
apollo_mailbox_update_cap ... — change daily send cap
apollo_credits_remaining — monthly credit budget check
apollo_health — self-check (also probes master key)
ツール一覧(27個)
キャンペーンの健全性
apollo_campaign_health(days_back=1)— すべてのシーケンスとメールボックスのダイジェストapollo_mailbox_warmup()— メールボックスごとのウォームアップ状況と日次上限apollo_sequence_get(sequence_id)— 1つのシーケンスを詳細に確認
シーケンス
apollo_sequences_list()— 統計情報付きですべてのシーケンスを一覧表示apollo_sequence_add_contacts(sequence_id, contact_ids, send_email_from_email_account_id?)apollo_sequence_remove_contacts(sequence_id, contact_ids)apollo_sequence_set_active(sequence_id, active)— 有効化または一時停止
メッセージ/分析
apollo_messages_search(days_back, sequence_ids?, stats?, per_page, max_pages)
人物/組織
apollo_people_search(...)— 無料(クレジットを消費しません)apollo_person_enrich(...)— メールアドレスを1件開示するごとに1クレジットapollo_bulk_person_enrich(people, reveal_personal_emails?)— 1回の呼び出しで最大10件apollo_org_search(...)apollo_org_enrich(domain)apollo_org_job_postings(organization_id)
CRM
apollo_contacts_search(...)apollo_contact_create(...)apollo_contact_update(contact_id, fields)apollo_contact_stages()
タスク/ラベル/クレジット
apollo_task_create(...)apollo_labels_list()apollo_label_create(name)apollo_credits_remaining()
テンプレートとシーケンスの作成・編集(破壊的な書き込み)
apollo_template_get(template_id)— 現在のテンプレートの状態を取得apollo_template_update(template_id, subject?, body_text?, body_html?, audit_label?)— テンプレートの件名と本文を更新します。書き込みの前に、現在の状態をAPOLLO_AUDIT_LOG_PATH(設定されている場合)に保存するため、問題が発生しても差分から元に戻せますapollo_sequence_create(name, label?, permissions?, active?)— 新しいシーケンスを作成します(デフォルトでは一時停止状態)apollo_step_create(sequence_id, position, wait_days, subject, body_text, body_html?, step_type?, include_signature?)— 1回の呼び出しでステップ、タッチ、テンプレートを作成しますapollo_mailbox_update_cap(mailbox_id, daily_send_limit, audit_label?)— メールボックスの日次送信上限を変更します。変更前後を監査します
診断
apollo_health()— API キーの有効性とマスターキーのヒントを確認します
設定
config.example.yaml を config.yaml にコピーし、値を入力します。
cp config.example.yaml config.yaml
config.yaml は gitignore に登録されています。主なフィールドは次のとおりです。
| フィールド | デフォルト | 説明 |
|---|---|---|
daily_send_target | 50 | ヘルスダイジェストの目標との比較表示に使用します |
monthly_credit_pool | 4000 | credit_alert_pct が消費されるとアラートを出します |
sequence_labels | {} | シーケンス ID を人が読める名前に対応付けます |
mailbox_labels | {} | メールアドレスを表示名に対応付けます |
環境変数:
| 変数 | 必須 | 説明 |
|---|---|---|
APOLLO_API_KEY | はい | MASTER キーである必要があります |
APOLLO_MCP_CONFIG | いいえ | config.yaml のパスを上書きします |
APOLLO_MCP_TIMEOUT | いいえ | HTTP タイムアウト(秒)(デフォルトは 30) |
APOLLO_AUDIT_LOG_PATH | いいえ | 破壊的な書き込み(template_update、sequence_create、step_create、mailbox_update_cap)の変更前後の差分を追記する Markdown ファイルのパスです。破壊的な書き込みを行うツールを元に戻せるようにするには必須です。 |
インストール
Claude Code を開き、次のコマンドを貼り付けます。
/plugin marketplace add adelaidasofia/apollo-mcp
/plugin install apollo-mcp@apollo-mcp
次に、環境変数に APOLLO_API_KEY(master キーである必要があります)を設定し、Claude Code を再起動します。
従来のインストール方法
pip3 install -r requirements.txt
python3 -c "import server; print('OK')"
.mcp.json に追加します。
{
"mcpServers": {
"apollo": {
"command": "python3",
"args": ["/path/to/apollo-mcp/server.py"],
"env": {
"APOLLO_API_KEY": "your-master-key-here"
}
}
}
}
.mcp.json の編集後、Claude Code を再起動します。
既知の注意点
-
/emailer_campaigns、/emailer_messages/search、/email_accounts、/usage_stats/*には MASTER キーが必要です。標準キーでは 403 が返されます。apollo_healthはこれを自動的に検査します。 -
レート制限は約 60 リクエスト/分です。ジッター付きの指数バックオフが組み込まれており、429 を透過的に処理します。
-
ページネーションは、1 回の呼び出しにつき最大 50 ページ × 100 件/ページ = 5,000 件に制限されています。さらに深く検索する場合は、日付で範囲を絞ってください。
-
クレジット消費 —
apollo_person_enrich(reveal_personal_emails=True)と一括処理版は、それぞれ 1 クレジットを消費します。 -
sequences_list、email_accounts、labels、contact_stagesは、メモリ内に 5 分間キャッシュされます。強制的に更新するには、Claude Code を再起動してください。 -
デフォルトの Python UA では Cloudflare 1010 が発生します。 apollo.io は、
python-urllib/*またはpython-httpx/*のユーザーエージェントを検出すると、本文がerror code: 1010の HTTP 403 を返します。このサーバーはapollo-mcp/1.0 (curl/8.0.0)を偽装して回避します。apollo.io にアクセスする関連スクリプトを作成する場合は、同じUser-Agentヘッダーを追加してください。そうしないと、master キーが不足しているように見える原因不明の 403 の調査に時間を取られます。 -
シーケンス単位で登録解除できる、動作するエンドポイントはありません。
POST /emailer_campaigns/{id}/remove_contact_idsは 404 を返します。ID を指定しないPOST /emailer_campaigns/remove_contact_idsは 200 を返しますが、ペイロードに関係なく何も行いません。確実に登録解除する方法はDELETE /contacts/{id}のみで、すべてのキャンペーンへの登録が連鎖的に解除されます。破壊的な操作であり、コンタクトレコードにはdeleted: trueが設定されます。apollo_sequence_remove_contactsはこの処理をラップします。 -
GET /emailer_campaignsは空のシーケンスを作成します。 シーケンスの一覧表示にはPOST /emailer_campaigns/searchを使用してください。サーバーは適切に処理しますが、API を直接呼び出す場合は注意してください。 -
シーケンスの有効化にはサブリソースではなく
PUTを使用します。 シーケンスを有効化または一時停止する正しいエンドポイントは、本文{"emailer_campaign": {"active": true/false}}を指定したPUT /emailer_campaigns/{id}です。/check_contactsのようなサブリソースパスは 404 を返します。
スクリプト
scripts/daily_digest.py— 前日の統計を取得し、Markdown ダッシュボードの先頭に追加するスタンドアロンスクリプトです。cron または手動で実行します。scripts/bootstrap_sequences.py— コードからプログラムでシーケンスを作成します。メール文面のバージョン管理に便利です。ステップを下書き状態から移行するために必要な、ドキュメント化されていないPOST /emailer_touches/{id}/approveエンドポイントも使用します。
関連する MCP
同じ作者、同じアーキテクチャパターン(FastMCP、該当する書き込み操作ではドラフト+確認、Vault の自動エクスポート、MIT):
- slack-mcp — 複数ワークスペースの Slack
- imessage-mcp — macOS の iMessage
- whatsapp-mcp — whatsmeow 経由の WhatsApp
- google-workspace-mcp — Gmail / Calendar / Drive / Docs / Sheets
- substack-mcp — Substack の記事作成+分析
- luma-mcp — lu.ma のイベント
- parse-mcp — markitdown / Docling / LlamaParse のルーター
- rescuetime-mcp — RescueTime の生産性データ
- graph-query-mcp — Vault のナレッジグラフクエリ
- graph-autotagger-mcp — グラフからのウィキリンク候補
- investor-relations-mcp — シード資金調達パイプラインのトラッカー
- vault-sync-mcp — 双方向の Vault 同期
テレメトリー
このプラグインは、特定のマシンで Claude Code セッション中に初めて読み込まれたとき、匿名のインストールシグナルを 1 回だけ myceliumai.co に送信します。
送信される情報:
- プラグイン名(例:
slack-mcp) - プラグインのバージョン(例:
0.1.0)
送信されない情報:
- ユーザー識別情報、名前、メールアドレス、トークン、API キーは送信されません
- ファイルパス、メッセージ内容、作業に関する情報は送信されません
- 重複排除処理後、IP アドレスは保存されません
目的: メンテナーが実際にインストールされているプラグインを把握し、利用されているプラグインに注力できるようにします。
オプトアウト: Claude Code の起動前に環境変数 MYCELIUM_NO_PING=1 を設定してください。フックはネットワーク呼び出しを完全にスキップします。すでにシグナルを送信したインストールでは ~/.mycelium/onboarded-<plugin> にセンチネルファイルが作成されます。状態をリセットしたい場合は、このファイルを削除してください。
ライセンス
MIT
Mycelium AI が開発しました。完全版またはチーム版は diazroa.com をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。