Skip to main content
Glama
cyanheads

@cyanheads/mailchimp-mcp-server

by cyanheads

npm Version License Docker MCP SDK TypeScript Bun

Install in Claude Desktop Install in Cursor Install in VS Code

Framework


ツール

常時利用可能な18のツールに加え、条件付きの2つのツールがあります — mailchimp_assetsMAILCHIMP_ASSETS_DIRが設定されている場合)と mailchimp_local_templatesMAILCHIMP_TEMPLATES_DIRが設定されている場合)。ワークフローヘルパーは一般的なフローをエンドツーエンドでオーケストレーションし、プリミティブツールはきめ細かいCRUD操作を公開し、インストラクションツールはライブのアカウント状態と統合された手順ガイダンスを返します。

ツール名

説明

mailchimp_account

アカウントプロフィール、プラン、データセンター、総登録者数、Chimp Chatter アクティビティフィード。

mailchimp_audiences

オーディエンス(リスト)の管理 — 読み取り、作成/更新、オーディエンス別の分析、登録フォームの設定。削除は不可。

mailchimp_audience_overview

1回の呼び出しで得られるオーディエンス健全性ダイジェスト:情報、統計、成長履歴、主要メールクライアント、マージフィールドスキーマ。

mailchimp_subscribers

登録者のCRUD + タグ/メモ/アクティビティ。archive が利用可能な最も強力な削除操作。

mailchimp_upsert_subscriber

ステータス、マージフィールド、タグ、任意のメモを指定して、登録者を冪等に追加または更新。

mailchimp_find_subscriber

1つのオーディエンス内またはアカウント全体で、メールアドレスによる登録者を検索。

mailchimp_import_subscribers

登録者の一括追加/更新(1回の呼び出しで最大500件)。ステータスはデフォルトで pending(ダブルオプトイン)。

mailchimp_segments

オーディエンスセグメント(保存済み、静的、ファジー)のCRUDに加え、メンバー一覧と一括追加/削除。

mailchimp_merge_fields

カスタム登録者属性の読み取り + 作成/更新。削除は不可 — 全登録者のデータが失われるため。

mailchimp_campaigns

キャンペーン記録の管理:一覧/取得/作成/更新、複製、コンテンツ、チェックリスト、RSS/再送信コントロール。

mailchimp_send_campaign

1回の呼び出しでキャンペーンの作成と送信(またはスケジュール/テスト)を行う。送信/スケジュールの変更前に、再入可能な人間による確認を要求。

mailchimp_replicate_campaign

任意の上書きを指定してキャンペーンを複製し、下書き/テスト/送信/スケジュールを実行。同じ確認 + クリーンアップのセマンティクス。

mailchimp_reports

キャンペーンレポート — 10のディメンション(クリック、開封、場所など)にわたる汎用スライサー。

mailchimp_campaign_report

送信後の分析ダイジェスト — 主要指標 + 上位5つのスライスを1つのレスポンスで返す。

mailchimp_templates

メールテンプレートの読み書き — 読み取り(list/get)は base/user タイプで無料プランでも利用可能。書き込み(create/update/delete)と gallery は有料プランが必要。

mailchimp_files

ファイルマネージャー(Content Studio)— Mailchimp の CDN 上のファイルをアップロード、一覧表示、取得、名前変更、削除。返された fullSizeUrl をキャンペーン HTML に埋め込む。無料プランで利用可能。画像は1ファイルあたり1 MB、その他のファイルは10 MB。

mailchimp_search

メンバーまたはキャンペーンにわたるグローバル検索。軽量な発見手段 — 詳細は find_subscriber を使用。

mailchimp_assets (条件付き — MAILCHIMP_ASSETS_DIR を設定)

ローカルアセットのサーフェス。アセットディレクトリの一覧表示、キャッシュ状態の確認、送信前のアップロードの事前ウォームアップ。ほとんどのワークフローでは直接呼び出さない — キャンペーン HTML 内の @assets/<path> 参照は mailchimp_send_campaignmailchimp_campaigns set-content によって自動アップロードされる。

mailchimp_local_templates (条件付き — MAILCHIMP_TEMPLATES_DIR を設定)

ローカルテンプレート作成のサーフェス。任意の <name>.meta.yaml サイドカー付きで .eta テンプレートの一覧表示/取得/レンダリングプレビューを行う。seed-from-mailchimp は Mailchimp の base/user スターターからローカルテンプレートをブートストラップする。キャンペーンツールで content.localTemplate を使用すると、送信時にレンダリングされる。無料プランの Mailchimp における正規の書き込みパス。アップストリームのテンプレート API は読み取り専用のため。

mailchimp_playbook

ライブのアカウント状態とマージされた構造化された手順プレイブックを返す。アドバイスのみで、書き込みは行わない。


mailchimp_send_campaign

1回の呼び出しでキャンペーンの作成と送信(またはスケジュール/テスト)を行います。

  • 作成 → コンテンツ → チェックリスト → 任意のテスト → 送信/スケジュールを連鎖実行

  • mode: 'send' | 'schedule' の場合、キャンペーンへの変更前に再入可能な入力ラウンドを通じて人間による確認を要求

  • cleanupOnError: true(デフォルト)の場合、失敗した下書きを自動削除。確認が拒否された場合はレビュー可能な下書きを残す

  • htmlplaintexttemplateId + templateSections、ローカル Eta テンプレートのコンテンツ形式に対応


mailchimp_replicate_campaign

既存のキャンペーンを任意の上書きを指定して複製し、送信/スケジュール/テスト、または下書きのまま残します。

  • 上書き:件名、送信者名、返信先、オーディエンス、セグメント、コンテンツ

  • mailchimp_send_campaign と同じ再入可能な確認 + クリーンアップのセマンティクス

  • 「先週のニュースレターの v2 を更新したイントロで送信する」という一般的なパターンに最適化


mailchimp_upsert_subscriber

1回の冪等な呼び出しで登録者を追加または更新します。

  • 宣言的タグ同期 — 希望するアクティブセットを渡すと、ツールが追加/削除の差分を計算

  • preserveTags は名前付きセグメントのメンバーシップを保護(Mailchimp は静的セグメントのメンバーシップをタグとして保存)

  • status: 'pending' は Mailchimp のダブルオプトインメールをトリガー。'subscribed' は文書化された同意が必要

  • 作成パスは PUT /members/{hash}、更新は PATCH を使用して、既存のマージフィールドの再検証をスキップ


mailchimp_import_subscribers

1回の呼び出しで登録者を一括追加(および必要に応じて更新)します。

  • 1回の呼び出しあたり最大500行 — より大きなインポートはクライアント側で分割

  • 誤った一括送信を防ぐため、ステータスはデフォルトで pending(ダブルオプトイン)

  • 行ごとの成功/失敗とエラー理由を返す


mailchimp_campaign_report

キャンペーンの送信後分析の集計。

  • 主要な配信メトリクス: 送信数、バウンス数、不正利用レポート

  • エンゲージメント: 開封数、クリック数、配信停止数

  • クリックされたリンクの上位N件、地域、最近の配信停止

  • 利用可能な場合の業界ベンチマーク

  • 単一のディメンションを詳細に確認するには、mailchimp_reportsoperation: 'slice' とともに使用します


mailchimp_audience_overview

単一呼び出しのオーディエンス健全性ダイジェスト — 「このオーディエンスはどのような状態か?」という問いに1リクエストで答えます。

  • オーディエンス情報 + ライブ統計

  • 設定可能な月数の成長履歴

  • 主要なメールクライアント

  • 完全なマージフィールドスキーマ

  • 最近のアクティビティ


mailchimp_playbook

ライブのアカウント状態と統合された構造化された手順書(プレイブック)を返します。アドバイスのみを提供し、後続のステップはエージェントが他のツールで実行します。

  • トピック: sendpost-send-reviewdeliverabilitylist-hygieneonboardingsubscriber-triagedesign-campaign

  • Markdown形式の手順書 + ライブ状態のスナップショットを返します

  • nextToolSuggestions は、次に呼び出される可能性が高いツールの引数を事前に入力します

Related MCP server: Mailchimp MCP Server

リソースとプロンプト

タイプ

名前

説明

リソース

mailchimp://account

アカウント情報のスナップショット — プロフィール、プラン、データセンター、総登録者数。

リソース

mailchimp://audiences/{audienceId}

オーディエンスのスナップショット — 名前、連絡先、統計、ダブルオプトインのステータス。

リソース

mailchimp://campaigns/{campaignId}

キャンペーンのスナップショット — ステータス、設定、受信者の概要。

リソース

mailchimp://campaigns/{campaignId}/report

送信後のキャンペーンレポートの主要メトリクス。

プロンプト

newsletter_from_source

ユーザーが呼び出せるスターター — URLまたは概要から月次の編集ニュースレターを作成します。mailchimp_playbook(topic: design-campaign)に連鎖し、下書き → テスト → 送信のフローを進めます。

すべてのリソースデータはツールからもアクセスできます。大規模なコレクション(audiencescampaigns)はリソースとして公開されていません — 代わりに対応するツールの list 操作を使用してください。プロンプトのデザインリファレンス: docs/email-design-playbook.md

機能

@cyanheads/mcp-ts-core をベースに構築:

  • 宣言的なツール・リソース・プロンプト定義 — プリミティブごとに単一ファイル、フレームワークが登録と検証を処理

  • 統一されたエラーハンドリング — ハンドラーがスローし、フレームワークがキャッチして分類・整形

  • プラグ可能な認証: nonejwtoauth

  • オプションのOpenTelemetryトレーシングを備えた構造化ロギング

  • STDIOおよびStreamable HTTPトランスポート

Mailchimp固有:

  • APIキーの -dc サフィックスからAPIベースURLを自動的に導出

  • デフォルトで安全な送信ワークフロー — 再入可能な確認、保留ステータスのインポート、エージェントサーフェスからの恒久的な削除なし

  • ワークフローツールは、設定可能な並行性制限の下で関連するサブリクエストを並列化

  • ドメイン正規化により、疎なアップストリームペイロードを、値を捏造せずにコンパクトでLLMに適した出力に整形

はじめに

以下をMCPクライアント設定ファイルに追加してください。Mailchimp APIキーの生成方法については docs/api-key.md を参照してください。

{
  "mcpServers": {
    "mailchimp-mcp-server": {
      "type": "stdio",
      "command": "bunx",
      "args": ["@cyanheads/mailchimp-mcp-server@latest"],
      "env": {
        "MCP_TRANSPORT_TYPE": "stdio",
        "MCP_LOG_LEVEL": "info",
        "MAILCHIMP_API_KEY": "your-key-with-dc-suffix-e.g.-us22"
      }
    }
  }
}

またはnpxを使用する場合(Bunは不要):

{
  "mcpServers": {
    "mailchimp-mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@cyanheads/mailchimp-mcp-server@latest"],
      "env": {
        "MCP_TRANSPORT_TYPE": "stdio",
        "MCP_LOG_LEVEL": "info",
        "MAILCHIMP_API_KEY": "your-key-with-dc-suffix-e.g.-us22"
      }
    }
  }
}

またはDockerを使用する場合:

{
  "mcpServers": {
    "mailchimp-mcp-server": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "MCP_TRANSPORT_TYPE=stdio",
        "-e", "MAILCHIMP_API_KEY=your-key-with-dc-suffix-e.g.-us22",
        "ghcr.io/cyanheads/mailchimp-mcp-server:latest"
      ]
    }
  }
}

Streamable HTTPを使用する場合は、トランスポートを設定してサーバーを起動します:

MCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 MAILCHIMP_API_KEY=... bun run start:http
# Server listens at http://localhost:3010/mcp

前提条件

  • Bun v1.4.0 以上(またはNode.js v24+)。

  • Mailchimp Marketing APIキー — キーの -dc サフィックス(例: -us22)がデータセンターを識別し、起動時に解析されます。

インストール

  1. リポジトリをクローンします:

git clone https://github.com/cyanheads/mailchimp-mcp-server.git
  1. ディレクトリに移動します:

cd mailchimp-mcp-server
  1. 依存関係をインストールします:

bun install
  1. 環境を設定します:

cp .env.example .env
# edit .env and set MAILCHIMP_API_KEY

設定

変数

説明

デフォルト

MAILCHIMP_API_KEY

必須。 -dc サフィックスを含むMailchimp Marketing APIキー(例: abc…-us22)。

MAILCHIMP_BASE_URL

APIベースURLの上書き(モックサーバーやテスト用)。

https://{dc}.api.mailchimp.com/3.0

MAILCHIMP_TIMEOUT_MS

リクエストごとのタイムアウト(ミリ秒)。

60000

MAILCHIMP_MAX_RETRIES

一時的なアップストリーム障害に対する最大再試行回数(0〜10)。

3

MAILCHIMP_CONCURRENCY_LIMIT

ワークフローツールごとのアップストリームリクエストの最大同時実行数(1〜10)。

4

MAILCHIMP_ASSETS_DIR

ローカルアセットディレクトリの絶対パス。設定すると(Nodeのみ)、mailchimp_assets ツールが有効になり、キャンペーンHTML内の @assets/<path> 参照がMailchimp File Managerに自動アップロードされます。キャッシュは <dir>/.mailchimp-cache.json に保存されます。

未設定

MAILCHIMP_TEMPLATES_DIR

ローカルテンプレートディレクトリの絶対パス。設定すると(Nodeのみ)、mailchimp_local_templates ツールとキャンペーンツールでの content.localTemplate のサポートが有効になります。テンプレートは .eta ファイルで、オプションで <name>.meta.yaml サイドカーを伴います。

未設定

MCP_TRANSPORT_TYPE

トランスポート: stdio または http

stdio

MCP_HTTP_HOST

HTTPサーバーのホスト名。

127.0.0.1

MCP_HTTP_PORT

HTTPサーバーのポート。

3010

MCP_HTTP_ENDPOINT_PATH

MCPエンドポイントのパス。

/mcp

MCP_AUTH_MODE

認証モード: nonejwt、または oauth

none

MCP_LOG_LEVEL

ログレベル(RFC 5424)。

info

LOGS_DIR

ログファイルのディレクトリ(Node.jsのみ)。

<project-root>/logs

OTEL_ENABLED

OpenTelemetryを有効にします。

false

オプションの上書きの完全なリストについては .env.example を参照してください。

ローカルアセット(オプション)

MAILCHIMP_ASSETS_DIR を設定すると、MailchimpのFile Managerの上にローカル画像ワークフローを有効にできます。画像ファイルをディレクトリに置き、HTML内で @assets/<relative-path> として参照すると、サーバーが送信時にアップロードと書き換えを行います。

export MAILCHIMP_ASSETS_DIR=/Users/me/Pictures/email-assets

次にキャンペーン内で:

<img src="@assets/hero.png" alt="Hero">
<a href="@assets/whitepaper.pdf">Download</a>

mailchimp_send_campaign(または mailchimp_campaigns set-content / mailchimp_replicate_campaign contentOverride)がこれらの参照を検出すると、次の処理を実行します:

  1. 参照された各ファイルをハッシュ化します(SHA-256)。

  2. キャッシュミスを mailchimp_files ツールサーフェス経由でMailchimp File Managerにアップロードします。

  3. sha256 → file_id + URL<assetsDir>/.mailchimp-cache.json にキャッシュします(アトミック書き込み。再アップロードを強制するために削除しても安全です)。

  4. コンテンツをアップストリームに渡す前に、すべての @assets/<path> をパブリックCDN URLに書き換えます。

mailchimp_assets ツールは、直接検査するための listinfosync(事前ウォーム)、clear-cache を公開しています — ほとんどのワークフローでは必要ありません。

注意事項:

  • Mailchimpは画像を 1 MB、その他のファイルを 10 MB に制限しています。サイズ超過のファイルは、アップロード前に実行可能なエラーメッセージ付きで失敗します。

  • 許可される拡張子: mailchimp_files ツールの説明を参照してください。WebPとAVIFは許可リストに含まれていません — PNG/JPGに変換してください。

  • パストラバーサルは拒否されます(../ および絶対パスは Forbidden をスローします)。

  • mailchimp_assets ツールは Nodeのみ です。Cloudflare Workersでは登録されません。

ローカルテンプレート(オプション)

MAILCHIMP_TEMPLATES_DIR を設定すると、Eta (v4 — 高速、ESMネイティブ、パーシャル/条件分岐/ループをサポート)の上にローカルテンプレート作成ワークフローを有効にできます。これは無料プランのMailchimpアカウントでテンプレートを作成するための標準的な書き込みパスです。無料プランではアップストリームの /templates APIが読み取り専用のためです。

export MAILCHIMP_TEMPLATES_DIR=/Users/me/email-templates
email-templates/
  welcome.eta              # body + optional YAML frontmatter
  newsletter.eta
  partials/
    header.eta
    footer.eta

テンプレート(welcome.eta) — 上部にYAMLフロントマター、その下にEtaボディ:

---
subject: "Welcome to {{brand}}"
previewText: "Onboarding starts here"
vars:
  - firstName
  - brand
---
<%~ include('partials/header', it) %>
<h1>Hello <%= it.firstName %></h1>
<p>Welcome to <%= it.brand %>.</p>
<img src="@assets/hero.png" alt="Hero">

Frontmatter は省略可能です。--- ブロックのない本文は、メタ情報なしのテンプレートとして扱われます。すべてのメタフィールドも省略可能です。vars: リストは情報提供のみを目的としています(宣言された変数はスキーマによって強制されません)。

サイドカーフォールバック(レガシー): v0.3.1 より前は、メタ情報は本文の隣にある別の <name>.meta.yaml ファイルに格納されていました。この形式は後方互換性のために今も動作します。.eta にフロントマターがない場合、ローダーはサイドカーの読み取りにフォールバックします。両方が存在する場合はフロントマターが優先されます。

任意のキャンペーンツールから参照:

{
  "audienceId": "abc123",
  "subject": "Welcome to Acme",
  "fromName": "Casey",
  "replyTo": "casey@acme.com",
  "content": {
    "localTemplate": "welcome",
    "localTemplateVars": { "firstName": "Sam", "brand": "Acme" }
  },
  "mode": "draft"
}

レンダーパイプライン:

  1. Eta は it = { firstName: 'Sam', brand: 'Acme' } を使用して welcome.eta をレンダリングします。

  2. L1 が設定されている場合、@assets/hero.png は Mailchimp File Manager にアップロードされ、CDN URL に書き換えられます。

  3. 最終的な HTML は、Mailchimp の set-content を介してキャンペーンに設定されます。

mailchimp_local_templates ツールは、listgetrender-preview(送信せずに HTML を返す)、および seed-from-mailchimp(Mailchimp の base/user テンプレートを ID で読み取り、出発点としてディスクに書き込む — 読み取りはできてもアップストリームへの書き込みができない無料プランで便利)を公開しています。

このリポジトリ内のサンプルテンプレート

templates/ ディレクトリには動作するサンプルが含まれています。試すには MAILCHIMP_TEMPLATES_DIR をこのディレクトリに直接指定するか、出発点として自分のディレクトリにコピーしてください:

テンプレート

内容

welcome.eta

最小限の本文 — subject / previewText / vars を宣言するフロントマター、<%= it.firstName %> の補間、<% if %> による条件付き CTA ブロック

redden-gardens-april-2026.eta

インラインスタイルを適用した完全な HTML ニュースレター。推奨される分割方法を示しています: 実際のリスト送信での受信者ごとのパーソナライズには Mailchimp マージタグ*|FNAME|*)、テンプレートレンダリング時に置換されるリスト全体の定数には Eta 変数(volume / issue / monthYear / URLs)

注意事項:

  • 同じコンテンツブロックでは、localTemplatehtml および templateId と相互排他的です。

  • 変数の検証はスキーマによって強制されません。欠落または余分な変数は、送信時に Eta のレンダリングエラーとして表面化します。

  • パストラバーサルは拒否されます。

  • Node.js のみ。Workers では利用できません。

サーバーの実行

ローカル開発

  • ウォッチモードMCP_TRANSPORT_TYPE によるトランスポート):

    bun run dev                                     # stdio (default)
    MCP_TRANSPORT_TYPE=http bun run dev             # http
  • ビルドと実行:

    bun run rebuild
    bun run start:stdio
    # or
    bun run start:http
  • チェックとテストの実行:

    bun run devcheck   # Lint, format, typecheck, security
    bun run test       # Vitest test suite
    bun run lint:mcp   # Validate MCP definitions against spec

Docker

docker build -t mailchimp-mcp-server .
docker run --rm -e MAILCHIMP_API_KEY=your-key-us22 -p 3010:3010 mailchimp-mcp-server

Dockerfile はデフォルトで HTTP トランスポートとステートレスセッションモードを使用し、/var/log/mailchimp-mcp-server にログを出力します。OpenTelemetry のピア依存関係はデフォルトでインストールされます。これらを除外するには、--build-arg OTEL_ENABLED=false を指定してビルドしてください。

プロジェクト構成

ディレクトリ

目的

src/index.ts

createApp() のエントリポイント — ツール/リソース/プロンプトを登録し、サービスを初期化します。

src/config

Zod によるサーバー固有の環境変数の解析と検証。

src/mcp-server/tools

ツール定義(*.tool.ts)。常時有効な 18 個のツールに加え、条件付きのローカルワークスペースツールが 2 個。

src/mcp-server/resources

リソース定義(*.resource.ts)。4 つのスナップショットリソース。

src/mcp-server/prompts

プロンプト定義(*.prompt.ts)。ニュースレタースタータープロンプト。

src/services/mailchimp

Mailchimp クライアントラッパー — HTTP 処理、リトライ、正規化、型付きサーフェス。

tests/

設定、サービス、ツールワークフロー、出力フォーマット、フレームワーク契約、およびリグレッションに対する Vitest のテストカバレッジ。

開発ガイド

CLAUDE.md に開発ガイドラインとアーキテクチャ上のルールが記載されています。要約は次のとおりです:

  • ハンドラーがスローし、フレームワークがキャッチする — ツールロジックに try/catch は不要

  • リクエストスコープのロギングには ctx.log を使用

  • 新しいツールとリソースは src/mcp-server/*/definitions/index.ts のバレルを介して登録

  • 外部 API 呼び出しをラップする: 生データを検証 → ドメイン型に正規化 → 出力スキーマを返す。欠落フィールドを捏造しない

コントリビューション

Issue とプルリクエストを歓迎します。提出前にチェックとテストを実行してください:

bun run devcheck
bun run test

ライセンス

このプロジェクトは Apache 2.0 License の下でライセンスされています。詳細は LICENSE ファイルを参照してください。

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessResponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that interfaces with the Mailchimp Marketing API to manage audiences, email campaigns, and subscribers. It enables users to create and schedule campaigns, handle member lists, and send test or live emails through natural language commands.
    13
    29
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    A production-grade MCP server that integrates with the Mailchimp Marketing API to manage campaigns, audiences, members, and reports. It provides 28 specialized tools for automating marketing tasks such as sending emails, managing subscriber tags, and analyzing performance data.
    71
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with the Mailchimp API for managing campaigns, lists, templates, reports, and automations through natural language.
    3
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Manage Mailchimp audiences, campaigns, and members via the Mailchimp Marketing API through natural language queries.
    12
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cyanheads/mailchimp-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server