Skip to main content
Glama
BusyBee3333

Constant Contact MCP Server

by BusyBee3333

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...

Related MCP server: mcp-mautic

šŸ“¦ 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

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    AI-native email marketing platform built for agents. Control campaigns, automations, contacts, templates, and analytics via MCP with OAuth authentication.
    265 npm
    162
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    Comprehensive MCP server for the Mautic marketing automation API, providing 203 tools for managing contacts, campaigns, emails, segments, and more.
    2
    ISC
  • A
    license
    C
    quality
    D
    maintenance
    Comprehensive MCP server for Mailchimp Marketing API v3.0 with over 104 tools and 15+ React UI apps, enabling management of campaigns, audiences, ecommerce, automations, reports, and more via natural language.
    100
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables sending transactional email and campaigns, managing contacts and templates, and reading delivery reports and wallet usage from any MCP client.
    MIT