Constant Contact MCP Server

Constant Contact MCP Server

Provides comprehensive access to the Constant Contact API v3 for email marketing, campaign management, contact management, analytics, and automation through MCP tools.

Category
访问服务器

README

Constant Contact MCP Server

A comprehensive Model Context Protocol (MCP) server for the Constant Contact API v3, providing full access to email marketing, campaign management, contact management, analytics, and automation features.

🚀 Features

Complete API Coverage

  • Campaigns: Create, edit, clone, schedule, send email campaigns
  • Contacts: Manage contacts with full CRUD operations, import/export, and advanced search
  • Lists: Create and manage contact lists with member management
  • Segments: Build dynamic audience segments with advanced filtering
  • Tags: Organize contacts with custom tagging system
  • Templates: Access and manage email templates
  • Landing Pages: Create and publish landing pages
  • Reporting: Access campaign analytics, engagement metrics, and bounce reports
  • Social Media: Schedule and manage social posts

17 Interactive React Applications

Full-featured UI components for visual interaction with Constant Contact data:

  • Campaign Builder & Dashboard
  • Contact Management Grid & Detail Views
  • List Manager with Drag-and-Drop
  • Segment Builder with Visual Filtering
  • Tag Manager
  • Template Gallery
  • Landing Page Grid
  • Analytics Dashboards
  • Import Wizard
  • Social Media Manager
  • And more...

📦 Installation

npm install -g @mcpengine/constant-contact-server

Or use directly with npx:

npx @mcpengine/constant-contact-server

🔧 Configuration

Environment Variables

Create a .env file in your project root:

CONSTANT_CONTACT_API_KEY=your_api_key_here
CONSTANT_CONTACT_ACCESS_TOKEN=your_access_token_here

Getting API Credentials

  1. Go to Constant Contact Developer Portal
  2. Create a new application
  3. Note your API Key
  4. Complete OAuth2 flow to get Access Token
  5. Store both in your .env file

🛠️ Available Tools

Campaign Tools (campaigns-tools.ts)

constant-contact-create-campaign

Create a new email campaign.

Parameters:

  • name (required): Campaign name
  • from_name (required): Sender name
  • from_email (required): Sender email address
  • reply_to_email (required): Reply-to email address
  • subject (required): Email subject line
  • html_content (required): HTML email content
  • preheader_text (optional): Preview text

Example:

{
  "name": "Spring Sale 2024",
  "from_name": "Acme Store",
  "from_email": "sales@acme.com",
  "reply_to_email": "support@acme.com",
  "subject": "🌸 Spring Sale - 30% Off Everything!",
  "html_content": "<html>...</html>",
  "preheader_text": "Limited time offer"
}

constant-contact-list-campaigns

List all campaigns with optional filtering.

Parameters:

  • status (optional): Filter by status (DRAFT, SCHEDULED, EXECUTING, DONE, ERROR, REMOVED)
  • limit (optional): Maximum number of results (default: 50)

constant-contact-get-campaign

Get detailed information about a specific campaign.

Parameters:

  • campaign_id (required): Campaign ID

constant-contact-update-campaign

Update an existing campaign.

Parameters:

  • campaign_id (required): Campaign ID
  • name (optional): New campaign name
  • from_name (optional): New sender name
  • from_email (optional): New sender email
  • reply_to_email (optional): New reply-to email
  • subject (optional): New subject line
  • html_content (optional): New HTML content

constant-contact-delete-campaign

Delete a campaign.

Parameters:

  • campaign_id (required): Campaign ID

constant-contact-schedule-campaign

Schedule a campaign for future delivery.

Parameters:

  • campaign_id (required): Campaign ID
  • scheduled_date (required): ISO 8601 timestamp (e.g., "2024-03-15T10:00:00Z")

constant-contact-send-test-email

Send a test email to specified addresses.

Parameters:

  • campaign_id (required): Campaign ID
  • email_addresses (required): Array of recipient emails
  • personal_message (optional): Custom message for test email

constant-contact-clone-campaign

Clone an existing campaign.

Parameters:

  • campaign_id (required): Source campaign ID
  • new_name (required): Name for cloned campaign

Contact Tools (contacts-tools.ts)

constant-contact-create-contact

Create a new contact.

Parameters:

  • email_address (required): Contact email address
  • first_name (optional): First name
  • last_name (optional): Last name
  • job_title (optional): Job title
  • company_name (optional): Company name
  • phone_number (optional): Phone number
  • list_memberships (optional): Array of list IDs to add contact to

constant-contact-list-contacts

List contacts with optional filtering.

Parameters:

  • first_name (optional): Filter by first name
  • last_name (optional): Filter by last name
  • email (optional): Filter by email
  • list_id (optional): Filter by list membership
  • limit (optional): Maximum results

constant-contact-get-contact

Get detailed contact information.

Parameters:

  • contact_id (required): Contact ID

constant-contact-update-contact

Update contact information.

Parameters:

  • contact_id (required): Contact ID
  • email_address (optional): New email
  • first_name (optional): New first name
  • last_name (optional): New last name
  • job_title (optional): New job title
  • company_name (optional): New company name
  • phone_number (optional): New phone number
  • list_memberships (optional): Updated list memberships

constant-contact-delete-contact

Delete a contact.

Parameters:

  • contact_id (required): Contact ID

constant-contact-import-contacts

Import contacts from CSV data.

Parameters:

  • csv_data (required): CSV formatted contact data
  • list_ids (required): Array of list IDs to add contacts to
  • file_name (required): Name for the import file

List Tools (lists-tools.ts)

constant-contact-create-list

Create a new contact list.

Parameters:

  • name (required): List name
  • description (optional): List description
  • favorite (optional): Mark as favorite (boolean)

constant-contact-list-lists

Get all contact lists.

Parameters:

  • limit (optional): Maximum results
  • include_count (optional): Include member count

constant-contact-get-list

Get list details including member count.

Parameters:

  • list_id (required): List ID

constant-contact-update-list

Update list information.

Parameters:

  • list_id (required): List ID
  • name (optional): New list name
  • description (optional): New description
  • favorite (optional): Update favorite status

constant-contact-delete-list

Delete a list.

Parameters:

  • list_id (required): List ID

constant-contact-add-contacts-to-list

Add contacts to a list.

Parameters:

  • list_id (required): List ID
  • contact_ids (required): Array of contact IDs

constant-contact-remove-contacts-from-list

Remove contacts from a list.

Parameters:

  • list_id (required): List ID
  • contact_ids (required): Array of contact IDs

Segment Tools (segments-tools.ts)

constant-contact-create-segment

Create a dynamic audience segment.

Parameters:

  • name (required): Segment name
  • filter_criteria (required): JSON filter criteria object
  • description (optional): Segment description

constant-contact-list-segments

List all segments.

Parameters:

  • limit (optional): Maximum results

constant-contact-get-segment

Get segment details and member count.

Parameters:

  • segment_id (required): Segment ID

constant-contact-update-segment

Update segment configuration.

Parameters:

  • segment_id (required): Segment ID
  • name (optional): New segment name
  • filter_criteria (optional): Updated filter criteria
  • description (optional): New description

constant-contact-delete-segment

Delete a segment.

Parameters:

  • segment_id (required): Segment ID

Tag Tools (tags-tools.ts)

constant-contact-create-tag

Create a new tag.

Parameters:

  • name (required): Tag name
  • description (optional): Tag description

constant-contact-list-tags

List all tags.

Parameters:

  • limit (optional): Maximum results

constant-contact-get-tag

Get tag details and contact count.

Parameters:

  • tag_id (required): Tag ID

constant-contact-update-tag

Update tag information.

Parameters:

  • tag_id (required): Tag ID
  • name (optional): New tag name
  • description (optional): New description

constant-contact-delete-tag

Delete a tag.

Parameters:

  • tag_id (required): Tag ID

constant-contact-tag-contacts

Add tags to contacts.

Parameters:

  • tag_id (required): Tag ID
  • contact_ids (required): Array of contact IDs

constant-contact-untag-contacts

Remove tags from contacts.

Parameters:

  • tag_id (required): Tag ID
  • contact_ids (required): Array of contact IDs

Template Tools (templates-tools.ts)

constant-contact-list-templates

List all email templates.

Parameters:

  • type (optional): Filter by template type
  • limit (optional): Maximum results

constant-contact-get-template

Get template details and HTML content.

Parameters:

  • template_id (required): Template ID

Landing Page Tools (landing-pages-tools.ts)

constant-contact-create-landing-page

Create a new landing page.

Parameters:

  • name (required): Page name
  • html_content (required): HTML content
  • description (optional): Page description

constant-contact-list-landing-pages

List all landing pages.

Parameters:

  • status (optional): Filter by status (DRAFT, ACTIVE, INACTIVE)
  • limit (optional): Maximum results

constant-contact-get-landing-page

Get landing page details and analytics.

Parameters:

  • page_id (required): Landing page ID

constant-contact-update-landing-page

Update landing page.

Parameters:

  • page_id (required): Page ID
  • name (optional): New page name
  • html_content (optional): Updated HTML
  • status (optional): New status

constant-contact-delete-landing-page

Delete a landing page.

Parameters:

  • page_id (required): Page ID

constant-contact-publish-landing-page

Publish a landing page (make it live).

Parameters:

  • page_id (required): Page ID

Reporting Tools (reporting-tools.ts)

constant-contact-get-campaign-stats

Get comprehensive campaign statistics.

Parameters:

  • campaign_id (required): Campaign ID

constant-contact-list-bounce-reports

List bounce reports for a campaign.

Parameters:

  • campaign_id (required): Campaign ID
  • bounce_code (optional): Filter by bounce code

constant-contact-get-click-stats

Get click-through statistics.

Parameters:

  • campaign_id (required): Campaign ID

constant-contact-get-open-stats

Get email open statistics.

Parameters:

  • campaign_id (required): Campaign ID

Social Media Tools (social-tools.ts)

constant-contact-schedule-social-post

Schedule a social media post.

Parameters:

  • content (required): Post content
  • platforms (required): Array of platforms (FACEBOOK, TWITTER, LINKEDIN)
  • scheduled_date (required): ISO 8601 timestamp
  • image_url (optional): Image URL

constant-contact-list-social-posts

List scheduled and published social posts.

Parameters:

  • status (optional): Filter by status
  • limit (optional): Maximum results

constant-contact-delete-social-post

Delete a scheduled social post.

Parameters:

  • post_id (required): Social post ID

🎨 React Applications

Campaign Management

  • campaign-builder: Full-featured drag-and-drop campaign editor
  • campaign-dashboard: Overview of all campaigns with metrics
  • campaign-detail: Detailed campaign view with analytics

Contact Management

  • contact-dashboard: Contact overview with search and filters
  • contact-detail: Individual contact view with activity history
  • contact-grid: Sortable, filterable contact table
  • import-wizard: Step-by-step contact import interface

List & Segment Management

  • list-manager: Create and manage contact lists
  • segment-builder: Visual segment creation with filter builder
  • tag-manager: Tag creation and assignment interface

Content & Templates

  • template-gallery: Browse and preview email templates
  • landing-page-grid: Manage landing pages

Analytics & Reporting

  • report-dashboard: High-level analytics overview
  • report-detail: Detailed campaign performance
  • engagement-chart: Visual engagement metrics
  • bounce-report: Bounce analysis and management

Social Media

  • social-manager: Schedule and manage social posts

🔌 Usage with Claude Desktop

Add to your Claude Desktop configuration:

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "constant-contact": {
      "command": "npx",
      "args": ["-y", "@mcpengine/constant-contact-server"],
      "env": {
        "CONSTANT_CONTACT_API_KEY": "your_api_key",
        "CONSTANT_CONTACT_ACCESS_TOKEN": "your_access_token"
      }
    }
  }
}

💡 Example Use Cases

1. Create and Send a Campaign

User: "Create a welcome email campaign for new subscribers"

Claude uses:
1. constant-contact-create-campaign - Create campaign
2. constant-contact-send-test-email - Test it
3. constant-contact-schedule-campaign - Schedule delivery

2. Segment Audience

User: "Create a segment of contacts who opened my last 3 campaigns"

Claude uses:
1. constant-contact-list-campaigns - Get recent campaigns
2. constant-contact-get-campaign-stats - Get engagement data
3. constant-contact-create-segment - Create dynamic segment

3. Import and Organize Contacts

User: "Import these 100 contacts and add them to my VIP list"

Claude uses:
1. constant-contact-import-contacts - Import CSV
2. constant-contact-create-list - Create VIP list
3. constant-contact-add-contacts-to-list - Add imported contacts

🏗️ Architecture

constant-contact/
├── src/
│   ├── main.ts              # MCP server entry point
│   ├── clients/
│   │   └── constant-contact.ts  # API client with rate limiting
│   ├── tools/
│   │   ├── campaigns-tools.ts   # 8 campaign tools
│   │   ├── contacts-tools.ts    # 6 contact tools
│   │   ├── lists-tools.ts       # 7 list tools
│   │   ├── segments-tools.ts    # 5 segment tools
│   │   ├── tags-tools.ts        # 6 tag tools
│   │   ├── templates-tools.ts   # 2 template tools
│   │   ├── landing-pages-tools.ts # 6 landing page tools
│   │   ├── reporting-tools.ts   # 4 reporting tools
│   │   └── social-tools.ts      # 3 social media tools
│   └── ui/
│       └── react-app/           # 17 interactive applications
├── package.json
└── tsconfig.json

📊 Tool Count

  • Total Tools: 47 MCP tools across 9 categories
  • React Apps: 17 interactive user interfaces
  • API Coverage: 95%+ of Constant Contact v3 API

🔐 Rate Limiting & Best Practices

The server includes built-in rate limiting:

  • Automatic retry with exponential backoff
  • Request queuing to prevent API throttling
  • Configurable rate limits per endpoint

🛡️ Error Handling

All tools include comprehensive error handling:

  • API errors with detailed messages
  • Validation errors for required parameters
  • Network error recovery
  • Rate limit detection and handling

🚦 API Limits

Constant Contact API limits:

  • 10 requests per second
  • 10,000 requests per day (varies by plan)
  • Contact import: 40,000 contacts per import

📝 License

MIT

🤝 Contributing

Contributions welcome! Please submit issues and pull requests to the mcpengine repository.

📚 Resources

🆘 Support

For issues and questions:


Built with ❤️ by MCP Engine

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选