cli-anything-mailchimp は何をしますか?
アイデンティティ
CLI-Anything フレームワーク上に構築された、Mailchimp Marketing API v3.0 用のエージェントネイティブCLIです。
このCLIの機能
- オーディエンス(リスト) の管理 — リストの作成、更新、削除、メンバーの追加/更新/アーカイブ、マージフィールド、セグメント、タグ、Webhookの管理。
- キャンペーン の実行 — メールキャンペーンの作成、スケジュール設定、送信、一時停止、複製、分析。
- レポート の読み取り — 開封率、クリック率、バウンス統計、購読解除、メールアクティビティ、地理データ。
- 自動化 の制御 — 自動メールワークフローの作成と管理。
- Eコマース の管理 — ストア、注文、顧客、製品、カート、プロモーションコード。
- テンプレート、ファイルマネージャー、ランディングページ、SMSキャンペーン、サーベイ、およびその他すべてのMarketing APIリソースの使用。
前提条件
- Python 3.10+
MAILCHIMP_API_KEY 環境変数がAPIキーに設定されていること(データセンターサフィックスを含む、例: abc123-us8)
インストール
pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=mailchimp/agent-harness
cd mailchimp/agent-harness && pip install -e .
コマンドリファレンス
ルート
| コマンド | 説明 |
|---|
cli-anything-mailchimp ping | ヘルスチェック — API接続を確認します |
cli-anything-mailchimp root list | アカウント情報を取得します |
cli-anything-mailchimp --json <cmd> | 任意のコマンドをJSONで出力します |
cli-anything-mailchimp | インタラクティブREPLを起動します |
リスト(オーディエンス)
| コマンド | 説明 |
|---|
lists list | すべてのオーディエンスを一覧表示します |
lists get <LIST_ID> | オーディエンス情報を取得します |
lists create --data '<json>' | オーディエンスを作成します |
lists update <LIST_ID> --data '<json>' | オーディエンスを更新します |
lists delete <LIST_ID> | オーディエンスを削除します |
lists list-lists-id-members <LIST_ID> | メンバーを一覧表示します |
lists get-lists-id-members-id <LIST_ID> <SUBSCRIBER_HASH> | MD5ハッシュでメンバーを取得します |
lists create-lists-id-members <LIST_ID> --data '<json>' | メンバーを追加します |
lists list-lists-id-merge-fields <LIST_ID> | マージフィールドを一覧表示します |
lists create-lists-id-merge-fields <LIST_ID> --data '<json>' | マージフィールドを追加します |
lists list-lists-id-segments <LIST_ID> | セグメントを一覧表示します |
lists list-list-member-tags <LIST_ID> <SUBSCRIBER_HASH> | メンバータグを一覧表示します |
lists create-list-member-tags <LIST_ID> <SUBSCRIBER_HASH> --data '<json>' | メンバータグを追加/削除します |
lists list-lists-id-webhooks <LIST_ID> | Webhookを一覧表示します |
lists create-lists-id-webhooks <LIST_ID> --data '<json>' | Webhookを追加します |
キャンペーン
| コマンド | 説明 |
|---|
campaigns list | キャンペーンを一覧表示します |
campaigns get <CAMPAIGN_ID> | キャンペーン情報を取得します |
campaigns create --data '<json>' | キャンペーンを作成します |
campaigns update <CAMPAIGN_ID> --data '<json>' | キャンペーン設定を更新します |
campaigns delete <CAMPAIGN_ID> | キャンペーンを削除します |
campaigns send <CAMPAIGN_ID> | キャンペーンをすぐに送信します |
campaigns schedule <CAMPAIGN_ID> --data '<json>' | キャンペーンをスケジュールします |
campaigns cancel-send <CAMPAIGN_ID> | スケジュールされた送信をキャンセルします |
campaigns pause <CAMPAIGN_ID> | RSSキャンペーンを一時停止します |
campaigns resume <CAMPAIGN_ID> | RSSキャンペーンを再開します |
campaigns replicate <CAMPAIGN_ID> | キャンペーンを複製します |
campaigns list-content <CAMPAIGN_ID> | キャンペーンコンテンツを取得します |
campaigns list-send-checklist <CAMPAIGN_ID> | 送信前チェックリストを取得します |
レポート
| コマンド | 説明 |
|---|
reports list | すべてのキャンペーンレポートを一覧表示します |
reports get <CAMPAIGN_ID> | キャンペーンサマリーレポートを取得します |
reports list-email-activity <CAMPAIGN_ID> | 購読者ごとの開封/クリックアクティビティ |
reports list-click-details <CAMPAIGN_ID> | リンククリックの内訳 |
reports list-open-details <CAMPAIGN_ID> | 購読者ごとの開封 |
reports list-unsubscribed <CAMPAIGN_ID> | 購読解除者 |
reports list-locations <CAMPAIGN_ID> | 地理的内訳 |
reports list-domain-performance <CAMPAIGN_ID> | ドメインごとの統計 |
自動化
| コマンド | 説明 |
|---|
automations list | 自動化を一覧表示します |
automations get <WORKFLOW_ID> | 自動化情報を取得します |
automations create --data '<json>' | 自動化を作成します |
automations pause <WORKFLOW_ID> | 自動化を一時停止します |
automations start <WORKFLOW_ID> | 自動化を開始します |
automations archive <WORKFLOW_ID> | 自動化をアーカイブします |
automations list-emails <WORKFLOW_ID> | 自動化メールを一覧表示します |
Eコマース
| コマンド | 説明 |
|---|
ecommerce list-ecommerce-stores | ストアを一覧表示します |
ecommerce get <STORE_ID> | ストア情報を取得します |
ecommerce create --data '<json>' | ストアを追加します |
ecommerce list-ecommerce-stores-id-orders <STORE_ID> | 注文を一覧表示します |
ecommerce list-ecommerce-stores-id-products <STORE_ID> | 製品を一覧表示します |
ecommerce list-ecommerce-stores-id-customers <STORE_ID> | 顧客を一覧表示します |
ecommerce list-ecommerce-stores-id-carts <STORE_ID> | カートを一覧表示します |
ecommerce list-ecommerce-stores-id-promocodes <PROMO_RULE_ID> <STORE_ID> | プロモーションコードを一覧表示します |
その他のリソース
| グループ | 説明 |
|---|
templates | メールテンプレート(一覧表示、取得、作成、更新、削除) |
template-folders | テンプレートフォルダー |
campaign-folders | キャンペーンフォルダー |
file-manager | ファイルマネージャーのファイルとフォルダー |
landing-pages | ランディングページ(一覧表示、作成、公開、非公開) |
sms-campaigns | SMSキャンペーン(10の操作) |
surveys | サーベイ(一覧表示、取得、公開) |
reporting | Facebook広告とランディングページのレポート |
search-campaigns | クエリでキャンペーンを検索 |
search-members | すべてのオーディエンスからメンバーを検索 |
batches | バッチAPI操作 |
batch-webhooks | バッチ操作用Webhook |
verified-domains | メールドメインの検証 |
authorized-apps | OAuth接続アプリ |
connected-sites | 接続サイトの統合 |
conversations | 受信箱の会話 |
activity-feed | アカウントアクティビティフィード |
account-exports | アカウントデータエクスポート |
JSON出力
すべてのコマンドはルートレベルで --json をサポートしています:
cli-anything-mailchimp --json lists list
cli-anything-mailchimp --json reports get abc123def
cli-anything-mailchimp --json lists list | jq '.lists[].name'
cli-anything-mailchimp --json campaigns list | jq '.campaigns[].id'
エンベロープ形状(ネイティブMailchimp APIレスポンス — リソース固有のキーを使用):
{"lists": [...], "total_items": 42, "_links": [...]}
{"campaigns": [...], "total_items": 10, "_links": [...]}
{"id": "abc123", "name": "My List", ...}
{"ok": true, "message": "Deleted."}
{"ok": false, "message": "Resource Not Found: ...", "data": {...}}
一般的なエージェントパターン
cli-anything-mailchimp --json ping | jq '.health_status'
cli-anything-mailchimp --json lists list | jq '.lists[] | {id, name}'
cli-anything-mailchimp --json lists list-lists-id-members <list_id> --status subscribed | jq '.members[].email_address'
cli-anything-mailchimp --json campaigns create --data '{"type":"regular","settings":{"subject_line":"Hello","from_name":"Me","reply_to":"[email protected]"}}' | jq '.id'
cli-anything-mailchimp --json campaigns list-send-checklist <campaign_id> | jq '.items[] | select(.result == false)'
cli-anything-mailchimp --json reports list-unsubscribed <campaign_id> | jq '.unsubscribes[].email_address'
cli-anything-mailchimp --json lists create-members <list_id> --data '{"email_address":"[email protected]","status":"subscribed"}'
cli-anything-mailchimp --json search-members list --query "[email protected]" | jq '.exact_matches.members[]'
インタラクティブREPL
引数なしで cli-anything-mailchimp を実行すると、REPLに入ります:
◆ cli-anything · Mailchimp
v0.1.0
ヘルプは help、終了は quit と入力
◆ mailchimp ❯ ping
✓ {"health_status": "Everything's Chimpy!"}
◆ mailchimp ❯ --json lists list
{"lists": [...], "total_items": 3, "_links": [...]}
◆ mailchimp ❯ quit
注意事項
- サブスクライバーハッシュ: Mailchimpは、小文字にしたメールアドレスのMD5ハッシュでメンバーを識別します。
python -c "import hashlib; email='[email protected]'; print(hashlib.md5(email.strip().lower().encode()).hexdigest())" で計算します。
- 本文ペイロード: すべてのPOST/PATCH/PUTコマンドは
--data '<json>' を受け入れます。各エンドポイントのスキーマについては、Mailchimp APIドキュメント を参照してください。
- データセンター: APIキーの末尾は
-us8、-eu2 などです。CLIはこれを自動的に抽出します — MAILCHIMP_API_KEY に含めてください。
- レート制限: Marketing APIは、10の同時接続とアカウントごとのローリング制限でレート制限を行います。一括操作には
batches グループを使用してください。