Skip to main content
Glama
Drip MCP Server

Drip MCP Server

by GravityKit

Drip MCP Server

npm version License: MIT Node.js Version MCP Protocol

A Model Context Protocol (MCP) server that provides seamless integration with the Drip email marketing automation platform. This server enables AI assistants like Claude to interact with Drip's API for subscriber management, campaign automation, and analytics tracking.

๐ŸŒŸ Features

Core Capabilities

  • ๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ Subscriber Management - Create, update, delete, and search subscribers with full custom field support

  • ๐Ÿท๏ธ Tag Operations - Apply and remove tags for segmentation and automation

  • ๐Ÿ“ง Campaign Management - List campaigns and manage subscriber enrollments

  • ๐Ÿ”„ Workflow Automation - Control workflows and subscriber participation

  • ๐Ÿ“Š Event Tracking - Track custom events for behavioral automation

  • ๐Ÿ’ฐ E-commerce Integration - Record purchases and conversions

  • ๐Ÿ“ Form & Broadcast Access - Retrieve forms and broadcast information

  • โšก Batch Operations - Efficiently handle bulk subscriber operations

  • ๐Ÿ” Advanced Search - Find subscribers using complex filter criteria

Technical Features

  • ๐Ÿ›ก๏ธ Automatic Rate Limiting - Handles Drip's API limits with exponential backoff

  • ๐Ÿ”ง Smart Field Mapping - Automatically organizes standard and custom fields

  • ๐ŸŽฏ Error Handling - Detailed error messages for debugging

  • ๐Ÿงช Comprehensive Testing - Unit and integration test suites included

  • ๐Ÿ” MCP Inspector Support - Built-in debugging interface for development

Related MCP server: Sequenzy MCP Server

๐Ÿ“ฆ Installation

Prerequisites

  • Node.js 20.0.0 or higher

  • npm or yarn package manager

  • Drip account with API access

  • MCP-compatible client (e.g., Claude Desktop)

Package Installation

# Using npm
npm install @gravitykit/drip-mcp-server

# Using yarn
yarn add @gravitykit/drip-mcp-server

# For global installation
npm install -g @gravitykit/drip-mcp-server

From Source

# Clone the repository
git clone https://github.com/GravityKit/drip-mcp-server.git
cd drip-mcp-server

# Install dependencies
npm install

# Set up environment variables
cp .env.example .env
# Edit .env with your credentials

๐Ÿ”‘ Configuration

Getting Your API Credentials

  1. API Key:

  2. Account ID:

    • Found in Settings โ†’ General Info

    • Also visible in your Drip dashboard URL

    • Format: Numeric ID (e.g., 12345678)

Environment Variables

Create a .env file in the project root:

DRIP_API_KEY=your_api_key_here
DRIP_ACCOUNT_ID=your_account_id_here

Claude Desktop Configuration

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "drip": {
      "command": "npx",
      "args": ["@gravitykit/drip-mcp-server"],
      "env": {
        "DRIP_API_KEY": "your_api_key_here",
        "DRIP_ACCOUNT_ID": "your_account_id_here"
      }
    }
  }
}

Alternative: Using Local Installation

{
  "mcpServers": {
    "drip": {
      "command": "node",
      "args": ["/path/to/drip-mcp-server/src/index.js"],
      "env": {
        "DRIP_API_KEY": "your_api_key_here",
        "DRIP_ACCOUNT_ID": "your_account_id_here"
      }
    }
  }
}

๐Ÿš€ Usage

Quick Start

Once configured, the MCP server exposes Drip functionality through standardized tools. Your AI assistant can use natural language to interact with these tools.

Example Prompts for AI Assistants

"Add john@example.com to my Drip subscribers with the tag 'customer'"

"Find all subscribers tagged as 'vip' who joined this month"

"Track a 'Product Viewed' event for user@example.com with product_id ABC123"

"Start the 'Welcome Series' workflow for new@subscriber.com"

"Show me the last 10 unsubscribes and their reasons"

Available Tools

Subscriber Management

Tool

Description

drip_create_subscriber

Create or update a subscriber

drip_list_subscribers

List all subscribers with pagination

drip_get_subscriber

Get a specific subscriber by ID or email

drip_delete_subscriber

Permanently delete a subscriber

drip_search_subscribers

Advanced search with filters

drip_batch_create_subscribers

Bulk create/update (up to 1000)

Tags & Segmentation

Tool

Description

drip_tag_subscriber

Apply tags to a subscriber

drip_remove_tag

Remove a tag from a subscriber

Campaigns & Workflows

Tool

Description

drip_list_campaigns

List all campaigns

drip_subscribe_to_campaign

Add subscriber to campaign

drip_list_workflows

List all workflows

drip_activate_workflow

Activate a workflow

drip_pause_workflow

Pause a workflow

drip_start_workflow

Start workflow for subscriber

drip_remove_from_workflow

Remove subscriber from workflow

Analytics & Tracking

Tool

Description

drip_track_event

Track custom events

drip_record_conversion

Record a conversion

drip_record_purchase

Record a purchase

drip_recent_unsubscribes

Get recent unsubscribes

drip_unsubscribe_stats

Get unsubscribe statistics

Forms & Broadcasts

Tool

Description

drip_list_forms

List all forms

drip_get_form

Get specific form details

drip_list_broadcasts

List all broadcasts

drip_get_broadcast

Get specific broadcast details

Code Examples

Creating a Subscriber

{
  "email": "user@example.com",
  "first_name": "John",
  "last_name": "Doe",
  "tags": ["customer", "newsletter"],
  "custom_fields": {
    "company": "Acme Corp",
    "plan": "premium"
  },
  "time_zone": "America/New_York",
  "eu_consent": "granted"
}

Tracking an Event

{
  "email": "user@example.com",
  "action": "Viewed Product",
  "properties": {
    "product_id": "SKU-12345",
    "product_name": "Premium Widget",
    "price": 99.99,
    "category": "Widgets"
  },
  "occurred_at": "2024-01-15T10:30:00Z"
}
{
  "tags": ["vip", "customer"],
  "created_after": "2024-01-01T00:00:00Z",
  "custom_field_filters": {
    "lifetime_value": { "greater_than": 1000 },
    "plan": "premium"
  },
  "status": "active",
  "per_page": 100
}

๐Ÿงช Development

Running in Development Mode

# Watch mode with auto-restart
npm run dev

# Standard mode
npm start

Using the MCP Inspector

The MCP Inspector provides a web-based UI for testing and debugging:

# Launch the inspector
npm run inspect

Features:

  • Interactive tool testing

  • Real-time message monitoring

  • Schema validation

  • Request/response inspection

Access the inspector at http://localhost:5173 after running the command.

Testing

# Run all tests
npm run test:all

# Run specific test suites
npm test                    # Core functionality
npm run test:unit          # Unit tests (no network)
npm run test:validation    # Input validation
npm run test:names         # Field handling
npm run test:unsubscribes  # Unsubscribe tracking

Project Structure

drip-mcp-server/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ index.js           # MCP server implementation
โ”‚   โ”œโ”€โ”€ drip-client.js     # Drip API client wrapper
โ”‚   โ””โ”€โ”€ tests/             # Test suites
โ”‚       โ”œโ”€โ”€ run.js         # Test runner
โ”‚       โ”œโ”€โ”€ drip-client.test.js
โ”‚       โ”œโ”€โ”€ server-tools.test.js
โ”‚       โ””โ”€โ”€ server-e2e.test.js
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ mcp.json              # MCP Inspector config
โ”œโ”€โ”€ .env.example          # Environment template
โ”œโ”€โ”€ LICENSE               # MIT license
โ””โ”€โ”€ README.md             # Documentation

๐Ÿ”’ Security Best Practices

  1. API Key Management

    • Never commit API keys to version control

    • Use environment variables or secure key management

    • Rotate API keys regularly

    • Use least-privilege API keys when possible

  2. Data Protection

    • Handle subscriber data according to privacy regulations (GDPR, CCPA)

    • Implement proper consent management

    • Use secure connections (HTTPS) only

  3. Rate Limiting

    • Respect Drip's API limits (3,600 requests/hour)

    • Implement exponential backoff for retries

    • Monitor API usage to avoid limit violations

๐Ÿ› Troubleshooting

Common Issues

Authentication Errors (401)

  • Cause: Invalid API key or account ID

  • Solution: Verify credentials in Drip settings and environment variables

Permission Errors (403)

  • Cause: API key lacks required permissions

  • Solution: Check API key permissions in Drip account settings

Rate Limiting (429)

  • Cause: Exceeding API rate limits

  • Solution: Server automatically retries with backoff; reduce request frequency if persistent

Field Mapping Issues

  • Cause: Incorrect field placement (standard vs. custom)

  • Solution: Server handles automatically; check field names match Drip configuration

Debug Mode

Enable detailed logging:

DEBUG=* npm start

๐Ÿ“š API Documentation

Field Types

Standard Fields (Root Level)

  • email (required)

  • first_name

  • last_name

  • user_id

  • time_zone

  • eu_consent

  • eu_consent_message

Custom Fields (Nested)

All other fields are automatically placed in custom_fields:

  • company

  • phone

  • address1, address2

  • city, state, zip, country

  • Any custom data fields

Rate Limits

Operation Type

Limit

Window

Individual Requests

3,600

Per hour

Batch Operations

50,000

Per hour

Concurrent Requests

50

Simultaneous

Error Responses

Status Code

Description

Action Required

401

Unauthorized

Check API credentials

403

Forbidden

Verify permissions

422

Validation Error

Fix request parameters

429

Rate Limited

Wait and retry

500

Server Error

Contact support if persistent

โ“ Frequently Asked Questions

Can I create broadcasts through the API?

No, the Drip API provides read-only access to broadcasts. Use the Drip web interface to create broadcasts.

Use the eu_consent field with values: granted, denied, or pending. Include eu_consent_message for audit trails.

What's the difference between campaigns and workflows?

  • Campaigns: Email series with fixed timing

  • Workflows: Automated sequences triggered by events or conditions

Can I bulk delete subscribers?

No, Drip requires individual deletion for data safety. Use drip_delete_subscriber for each subscriber.

How do I track revenue?

Use drip_record_purchase with the value field in cents (e.g., 9999 for $99.99).

๐Ÿค Contributing

We welcome contributions! Please follow these guidelines:

  1. Fork the repository and create a feature branch

  2. Write tests for new functionality

  3. Follow the code style (ESM, async/await, clear naming)

  4. Update documentation for API changes

  5. Submit a pull request with a clear description

Development Guidelines

  • Use Node.js 20+ with ES modules

  • Maintain test coverage above 80%

  • Follow semantic versioning

  • Write descriptive commit messages

  • Keep dependencies minimal

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ†˜ Support

For This MCP Server

For Drip API

For MCP Protocol

๐Ÿ™ Acknowledgments


Made with โค๏ธ by GravityKit

Available Tools

28 tools
drip_activate_workflowB

Activate a workflow by ID

NameRequiredDescriptionDefault
workflow_idYes
drip_batch_create_subscribersB

Create or update multiple subscribers at once

NameRequiredDescriptionDefault
subscribersYesArray of subscriber objects to create/update
drip_batch_unsubscribeB

Unsubscribe multiple subscribers at once

NameRequiredDescriptionDefault
subscribersYesEmails or objects {email}
drip_create_subscriberB

Create or update a subscriber in Drip

NameRequiredDescriptionDefault
emailYesEmail address of the subscriber
user_idNoUnique identifier for the subscriber
time_zoneNoTime zone of the subscriber (e.g., America/New_York)
custom_fieldsNoCustom field values for the subscriber
tagsNoTags to apply to the subscriber
prospectNoWhether the subscriber is a prospect
base_lead_scoreNoBase lead score for the subscriber
eu_consentNoEU consent status
eu_consent_messageNoMessage explaining how consent was obtained
drip_delete_subscriberB

Delete a subscriber from your Drip account

NameRequiredDescriptionDefault
subscriber_idYesSubscriber ID or email address
drip_get_accountB

Get Drip account details

NameRequiredDescriptionDefault

No parameters

drip_get_broadcastC

Get broadcast by ID

NameRequiredDescriptionDefault
broadcast_idYes
drip_get_formC

Get form by ID

NameRequiredDescriptionDefault
form_idYes
drip_get_subscriberA

Fetch a specific subscriber by ID or email

NameRequiredDescriptionDefault
subscriber_idYesSubscriber ID or email address
drip_list_broadcastsD

List broadcasts

NameRequiredDescriptionDefault
statusNo
pageNo
per_pageNo
drip_list_campaignsB

List all campaigns in your Drip account

NameRequiredDescriptionDefault
statusNoFilter by campaign status
pageNoPage number for pagination
per_pageNoNumber of campaigns per page
drip_list_custom_fieldsB

List custom field identifiers

NameRequiredDescriptionDefault

No parameters

drip_list_formsD

List forms

NameRequiredDescriptionDefault
pageNo
per_pageNo
drip_list_subscribersC

List all subscribers in your Drip account

NameRequiredDescriptionDefault
pageNoPage number for pagination
per_pageNoNumber of subscribers per page (max 1000)
sortNoField to sort by
directionNoSort direction
statusNoFilter by subscriber status
tagsNoComma-separated list of tags to filter by
drip_list_workflowsC

List workflows

NameRequiredDescriptionDefault
statusNo
pageNo
per_pageNo
drip_pause_workflowC

Pause a workflow by ID

NameRequiredDescriptionDefault
workflow_idYes
drip_recent_unsubscribesC

List recent unsubscribes with optional date bounds

NameRequiredDescriptionDefault
sinceNo
beforeNo
pageNo
per_pageNo
sortNo
directionNo
drip_record_conversionC

Record a conversion event

NameRequiredDescriptionDefault
emailYes
actionYes
occurred_atNo
propertiesNo
drip_record_purchaseC

Record a purchase for a subscriber

NameRequiredDescriptionDefault
emailYes
amountYes
occurred_atNo
propertiesNo
itemsNo
drip_remove_from_workflowC

Remove a subscriber from a workflow

NameRequiredDescriptionDefault
workflow_idYes
emailYes
drip_remove_tagB

Remove tags from a subscriber

NameRequiredDescriptionDefault
emailYesEmail address of the subscriber
tagYesTag to remove
drip_search_subscribersC

Search for subscribers using various filters

NameRequiredDescriptionDefault
emailNoPartial email match
tagsNoMust include all tags
custom_field_filtersNoCustom field equals filters
created_afterNoISO 8601 lower bound
created_beforeNoISO 8601 upper bound
pageNo
per_pageNo
statusNo
sortNo
directionNo
drip_start_workflowC

Start a workflow for a subscriber

NameRequiredDescriptionDefault
workflow_idYes
emailYes
drip_subscribe_to_campaignC

Subscribe a user to a campaign

NameRequiredDescriptionDefault
campaign_idYesCampaign ID
emailYesEmail address of the subscriber
user_idNoOptional user ID
time_zoneNoTime zone of the subscriber
custom_fieldsNoCustom field values
tagsNoTags to apply
reactivate_if_removedNoWhether to reactivate if previously removed
prospectNoWhether the subscriber is a prospect
base_lead_scoreNoBase lead score
drip_tag_subscriberB

Apply tags to a subscriber

NameRequiredDescriptionDefault
emailYesEmail address of the subscriber
tagsYesTags to apply
drip_track_eventC

Track a custom event for a subscriber

NameRequiredDescriptionDefault
emailYesEmail address of the subscriber
actionYesName of the event
propertiesNoEvent properties
occurred_atNoISO 8601 timestamp when the event occurred
drip_unsubscribeC

Unsubscribe a subscriber from all emails

NameRequiredDescriptionDefault
subscriber_idYesSubscriber ID or email address
campaign_idNoOptional campaign ID to unsubscribe from
drip_unsubscribe_statsC

Aggregate unsubscribe stats by date

NameRequiredDescriptionDefault
sinceNo
beforeNo
pageNo
per_pageNo

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 28 tool updatesv1.0.0
    • First observeddrip_activate_workflow
    • First observeddrip_batch_create_subscribers
    • First observeddrip_batch_unsubscribe
    • First observeddrip_create_subscriber
    • First observeddrip_delete_subscriber
    • First observeddrip_get_account
    • First observeddrip_get_broadcast
    • First observeddrip_get_form
    • First observeddrip_get_subscriber
    • First observeddrip_list_broadcasts
    • First observeddrip_list_campaigns
    • First observeddrip_list_custom_fields
    • First observeddrip_list_forms
    • First observeddrip_list_subscribers
    • First observeddrip_list_workflows
    • First observeddrip_pause_workflow
    • First observeddrip_recent_unsubscribes
    • First observeddrip_record_conversion
    • First observeddrip_record_purchase
    • First observeddrip_remove_from_workflow
    • First observeddrip_remove_tag
    • First observeddrip_search_subscribers
    • First observeddrip_start_workflow
    • First observeddrip_subscribe_to_campaign
    • First observeddrip_tag_subscriber
    • First observeddrip_track_event
    • First observeddrip_unsubscribe
    • First observeddrip_unsubscribe_stats

TDQS

C2.8/5.0

Scored across 28 tools

Disambiguation5/5

Each tool targets a distinct resource and action (e.g., create_subscriber vs delete_subscriber, start_workflow vs pause_workflow). No overlap in purpose.

Naming Consistency5/5

All tools follow the 'drip_verb_noun' pattern consistently with clear English verbs (list, get, create, delete, etc.) and no mixed conventions.

Tool Count4/5

28 tools is slightly above the ideal range but reasonable for a comprehensive marketing automation platform covering subscribers, workflows, campaigns, broadcasts, forms, and events.

Completeness4/5

Covers CRUD for subscribers, workflows, campaigns, broadcasts, forms, tags, conversions, purchases, and events. Missing some update operations for campaigns/workflows but core workflows are supported.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with Drip's email marketing platform through comprehensive tools for managing subscribers, campaigns, tags, events, and workflows. Supports batch operations, GDPR compliance, and both JSON and Markdown response formats for seamless email marketing automation.
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables management of AI-powered email marketing automation, including subscriber segments, campaigns, and templates. It allows users to generate email sequences with AI and track detailed analytics through natural language commands.
    100
    1,984 npm
    3
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to manage ActiveCampaign CRM, marketing automation, and contact data via 33 tools including contacts, deals, tags, automations, pipelines, custom fields, campaigns, accounts, and webhooks.
    65
    1
    MIT
  • A
    license
    B
    quality
    F
    maintenance
    Connects AI assistants to the Kit.com (formerly ConvertKit) email marketing platform, enabling management of subscribers, tags, sequences, broadcasts, and more through natural language.
    29
    62 npm
    4
    MIT