# ActiveCampaign MCP Server

ActiveCampaign's MCP server is now available as a beta release. This enables AI clients to seamlessly take ActiveCampaign actions and interact with your ActiveCampaign data, opening up powerful new integration possibilities for our ecosystem. For more information and to provide feedback, visit https://www.activecampaign.com/mcp

## What is MCP?

MCP (Model Context Protocol) is an emerging standard that allows AI models to interact with applications through a consistent interface. It acts as an abstraction layer over HTTP, letting AI agents access application functionality without needing to understand specific API protocols.

## Beta Notice

The ActiveCampaign MCP Server is currently in beta. Features and functionality may change as we continue to improve the integration.

## Pre-requisites

Visit [this link](https://docs.astral.sh/uv/getting-started/installation/) for detailed instructions on installing uv, a python package manager required to run the MCP server locally.

### Finding your API token and URL in ActiveCampaign:

Reference [here](https://help.activecampaign.com/hc/en-us/articles/207317590-Getting-started-with-the-API) for instructions on finding your ActiveCampaign API token and URL.

## Using the MCP Server

### Claude Desktop

Download Claude Desktop [here](https://claude.ai/download).

Add the server configuration to your Claude Desktop config file (usually located at `~/Library/Application Support/Claude/claude_desktop_config.json` in macOS) and restart Claude Desktop:

```json
{
  "mcpServers": {
    "activecampaign": {
      "command": "uvx",
      "args": [
        "ac-mcp-server"
      ],
      "env": {
        "AC_API_TOKEN": "<YOUR AC API TOKEN>",
        "AC_API_URL": "<YOUR AC API URL>"
      }
    }
  }
}
```

Save the file and restart Claude. You should now be able to access all the tools!

Visit [this page](https://modelcontextprotocol.io/clients#claude-desktop) for more information and troubleshooting.

### Cursor

Create a `.cursor/mcp.json` file in your project:

```bash
mkdir -p .cursor && touch .cursor/mcp.json
```

Put the following configuration in the file:

```json
{
  "mcpServers": {
    "activecampaign": {
      "command": "uvx",
      "args": [
        "ac-mcp-server"
      ],
      "env": {
        "AC_API_TOKEN": "<YOUR AC API TOKEN>",
        "AC_API_URL": "<YOUR AC API URL>"
      }
    }
  }
}
```

Save the file and restart Cursor. You should now be able to access all the tools!

Visit [this page](https://docs.cursor.com/context/mcp) for more information and troubleshooting.

### Other MCP Clients

List of other popular MCP Clients are [here](https://modelcontextprotocol.io/clients).

## Example Usage

Once set up, try these example prompts:

### Create and Modify Contacts
"Create a new contact in ActiveCampaign with email john@example.com, first name John, and last name Smith"

"Update ActiveCampaign contact john@example.com to change their phone number to 312-555-0123"

"Add contact sarah@company.com to the 'Newsletter Subscribers' list in ActiveCampaign"

"Set the ActiveCampaign custom field 'Company Size' to 'Enterprise' for John Smith"

### Get Insights from Your Campaign Data
"Show me my most recent email activities in ActiveCampaign"

"List all my ActiveCampaign campaigns and their performance metrics from this month"

"Get me the email activity for John Smith in ActiveCampaign"

"Give me details for my campaign 'Black Friday Sale 2024' in ActiveCampaign"

### Automation Management
"Show me all active automations in my ActiveCampaign account"

"Add Sarah Smith to the 'Welcome Series' automation in ActiveCampaign"

"List all ActiveCampaign automations that john@example.com is currently enrolled in"

"Remove John Smith from the 'Re-engagement Campaign' automation in ActiveCampaign"

### Tags and List Management
"Create a new tag called 'Webinar Attendee' in ActiveCampaign"

"Add the 'High Value Customer' tag to Sarah Smith in ActiveCampaign"

"Show me all ActiveCampaign contacts subscribed to the 'Monthly Newsletter' list"

"Update my 'Product Launch' list in ActiveCampaign to be 'Product Launch Updates'"

## Tools

This MCP server provides a set of tools for interacting with the ActiveCampaign API.

| Category | Tool Name | Description |
|----------|-----------|-------------|
| **Contacts** | contacts_list | Retrieve all contacts from your ActiveCampaign account, with basic filtering capabilities |
| **Contacts** | contacts_get_one | Fetch details for a specific contact |
| **Contacts** | contacts_create | Add a new contact to your account |
| **Contacts** | contacts_update | Modify existing contact information |
| **Contacts** | contacts_update_list_status | Change a contact's subscription status for specific lists |
| **Tags** | tags_list | Retrieve all available tags in your account |
| **Tags** | tags_get_one | Fetch details for a specific tag |
| **Tags** | tags_create | Create a new tag for organizing contacts |
| **Tags** | tags_add_to_contact | Apply a tag to a specific contact |
| **Lists** | lists_list | Retrieve all contact lists in your account |
| **Lists** | lists_get_one | Fetch details for a specific list |
| **Lists** | lists_create | Create a new contact list |
| **Lists** | lists_update | Modify existing list settings |
| **Custom Fields** | custom_fields_list | Retrieve all custom fields defined in your account |
| **Custom Fields** | custom_fields_get_one | Fetch details for a specific custom field |
| **Custom Fields** | custom_fields_create | Create a new custom field for contacts |
| **Custom Fields** | custom_fields_update | Modify existing custom field settings |
| **Custom Field Values** | custom_field_values_list | Retrieve custom field values for contacts |
| **Custom Field Values** | custom_field_values_get_one | Fetch a specific custom field value |
| **Custom Field Values** | custom_field_values_create | Set custom field values for contacts |
| **Custom Field Values** | custom_field_values_update | Modify existing custom field values |
| **Email Activities** | email_activities_list | Retrieve contact email engagement activities |
| **Campaigns** | campaigns_list | Retrieve all email campaigns in your account |
| **Campaigns** | campaigns_get_one | Fetch details for a specific campaign |
| **Campaigns** | campaigns_retrieve_links | Get all tracked links from a specific campaign |
| **Automations** | automations_list | Retrieve all automations in your account |
| **Automations** | automations_list_all_a_contact_is_in | Show which automations a specific contact is enrolled in |
| **Automations** | automations_get_one_a_contact_is_in | Get details of a specific automation that a contact is enrolled in |
| **Automations** | automations_add_contact | Add a contact into an automation |
| **Automations** | automations_remove_contact | Remove a contact from an automation |
