
Create a new account (company) in ActiveCampaign. Requires name. Optionally include account_url for the company website.
List all accounts (companies) in ActiveCampaign. Supports search by name and pagination with limit/offset.
Retrieve a single account (company) by ID.
Update an existing account. Specify account_id and fields to update. Only provided fields will be changed.
Delete an account (company) from ActiveCampaign. This action cannot be undone.
List all automations in ActiveCampaign. Supports pagination with limit/offset.
Retrieve a single automation by ID. Returns automation details and status.
Add a contact to an automation. Requires contactid and automationid. Use list_automations to find valid automation IDs.
Remove a contact from an automation. Use the contactautomationid from addcontactto_automation response.
List all email campaigns in ActiveCampaign. Supports pagination with limit/offset.
Retrieve a single email campaign by ID. Returns campaign details including type and status.
Create a new contact in ActiveCampaign. Requires email address. Optionally include firstname, lastname, phone, and custom field_values.
List contacts in ActiveCampaign with optional filters. Filter by email, listid, tagid, or status. Supports pagination with limit/offset.
Retrieve a single contact by ID. Returns full contact details including custom fields.
Update an existing contact. Specify contact_id and fields to update. Only provided fields will be changed.
Delete a contact from ActiveCampaign. This action cannot be undone.
Add a tag to a contact. Use list_tags to find valid tag IDs.
Remove a tag from a contact. Use the contacttagid from addtagto_contact response.
Subscribe a contact to a mailing list. Use list_lists to find valid list IDs.
Unsubscribe a contact from a mailing list by updating subscription status to unsubscribed.
Create a new custom field in ActiveCampaign. Requires title and type (text, textarea, date, dropdown, multiselect, radio, checkbox, hidden, listbox).
List all custom fields in ActiveCampaign. Supports pagination with limit/offset.
Retrieve a single custom field by ID.
Update an existing custom field. Specify field_id and fields to update. Can change title and options (for dropdown/multiselect types).
Delete a custom field from ActiveCampaign. This action cannot be undone.
Set a custom field value for a contact. Requires contactid, fieldid, and value. Use listcustomfields to find valid field IDs.
Create a new deal in ActiveCampaign. Requires title, pipelineid, and stageid. Optionally include value (in cents), currency, ownerid, contactid, account_id, and description.
List deals in ActiveCampaign with optional filters. Filter by status, stageid, pipelineid, or contact_id. Supports search and pagination.
Retrieve a single deal by ID. Returns full deal details.
Update an existing deal. Specify dealid and fields to update. Can change title, value, status (open/won/lost), stageid, owner_id, and more.
Delete a deal from ActiveCampaign. This action cannot be undone.
Create a note on a deal. Requires deal_id and note content.
Update an existing deal note. Requires dealid, noteid, and new note content.
Create a new mailing list in ActiveCampaign. Requires name, stringid (URL-safe name), senderurl, and senderreminder for CAN-SPAM compliance.
List all mailing lists in ActiveCampaign. Supports pagination with limit/offset.
Retrieve a single mailing list by ID.
Delete a mailing list from ActiveCampaign. This action cannot be undone.
Create a note on a contact. Requires contact_id and note content.
List all notes in ActiveCampaign. Optionally filter by contact_id. Supports pagination with limit/offset.
Retrieve a single note by ID.
Update an existing note. Specify note_id and new note content.
Delete a note from ActiveCampaign. This action cannot be undone.
Create a new deal pipeline in ActiveCampaign. Requires title. Optionally include default currency.
List all deal pipelines in ActiveCampaign. Supports pagination with limit/offset.
Retrieve a single pipeline by ID.
Update an existing pipeline. Specify pipeline_id and fields to update. Can change title and default currency.
Delete a pipeline from ActiveCampaign. This action cannot be undone.
Create a new stage in a pipeline. Requires title and pipeline_id. Optionally specify order (0-indexed position).
List all deal stages. Optionally filter by pipeline_id. Supports pagination.
Retrieve a single stage by ID.
Update an existing stage. Specify stage_id and fields to update. Can change title and order.
Delete a stage from a pipeline. This action cannot be undone.
Create a new tag in ActiveCampaign. Requires tag name. Optionally specify tag_type (contact or template) and description.
List all tags in ActiveCampaign. Supports search by name and pagination.
Retrieve a single tag by ID.
Update an existing tag. Specify tag_id and fields to update. Can change tag name and description.
Delete a tag from ActiveCampaign. This action cannot be undone.
Create a task for a deal. Requires dealid and title. Optionally include note, duedate (ISO 8601), and tasktypeid.
List deal tasks in ActiveCampaign. Optionally filter by deal_id or status. Supports pagination with limit/offset.
Retrieve a single deal task by ID.
Update an existing deal task. Specify taskid and fields to update. Can change title, note, duedate, and status (incomplete/complete).
Delete a deal task from ActiveCampaign. This action cannot be undone.
Validate ActiveCampaign credentials. Verifies credentials during setup.

In an mcp.json file, add the configuration below, and restart Cursor.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5 "headers": {
6 "Authorization": "Bearer yMt*****"
7 }
8 }
9 }
10}
11Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.
Make sure Claude is using the Node v20+.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "yMt*****"
14 }
15 }
16 }
17}Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "<ah-production-access-key>"
14 }
15 }
16 }
17 }In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".
You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.
Learn more in the official documentation ↗
1{
2 "inputs": [
3 {
4 "type": "promptString",
5 "id": "agent-handler-auth",
6 "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7 "password": true
8 }
9 ],
10 "servers": {
11 "agent-handler": {
12 "type": "stdio",
13 "command": "npx",
14 "args": [
15 "-y",
16 "mcp-remote@latest",
17 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18 "--header",
19 "Authorization: Bearer ${input:agent-handler-auth}"
20 ]
21 }
22 }
23}It's an MCP server that wires your agents into ActiveCampaign's CRM and marketing automation platform via tools. Your agents can invoke these tools to manage contacts and accounts, enroll contacts in automations, track deals through pipelines, manage mailing lists, and more.
ActiveCampaign offers an official MCP server, but you can also use one from a third-party platform, like Merge Agent Handler.
The use cases naturally depend on the agent you've built, but here are a few common ones:
Here are some of the most commonly used tools:
create_contact: adds a new contact to ActiveCampaign with name, email, phone, and custom field values. Use this when an agent is ingesting leads or customers from an external system like a form tool, ad platform, or enrichment serviceadd_contact_to_automation: enrolls a contact in a specified ActiveCampaign automation. Call this when an agent needs to trigger a drip sequence or onboarding flow in response to an event that happened in another systemsubscribe_contact_to_list: adds a contact to a mailing list, making them eligible for campaigns targeting that list. Good for workflows that segment contacts at the point of ingestion based on source, product line, or intent signaladd_tag_to_contact: applies a tag to a contact record for segmentation and filtering. Helpful when an agent needs to mark contacts with behavioral or lifecycle attributes derived from activity in other toolscreate_deal: opens a new deal in an ActiveCampaign pipeline with a specified stage, value, and owner. Use this when an agent is creating CRM records from external triggers like a qualified lead score or a signed proposalupdate_deal: modifies an existing deal's properties, including stage, value, or assigned owner. Useful for agents that need to advance a deal through the pipeline in response to events like a completed demo or an accepted contractActiveCampaign has its own official MCP server, but running it through Merge Agent Handler gives marketing and revenue teams tighter control over how customer data is accessed and acted on.
Merge Agent Handler includes:
You can take the following steps:
1. Create or log into your Merge Agent Handler account and navigate to Tool Packs (collections of connector tools scoped to a specific use case).
2. Create a new Tool Pack, then find and enable the ActiveCampaign connector. Scope tools to your workflow: read tools like list_contacts and list_deals cover reporting and lookup needs, while write tools like create_contact, add_contact_to_automation, and update_deal are needed for agents that take action on CRM data.
3. Add a Registered User inside the Tool Pack. This is the identity context under which your agent operates. Merge generates a unique MCP URL scoped to this user once it's created.
4. From the Registered User detail page, authenticate ActiveCampaign by entering your API credentials. Merge stores and manages those credentials going forward.
5. Copy the MCP URL from the Tool Pack detail page and generate an API key from Settings. You'll need both to connect your agent.
6. Add the MCP server to your agent or IDE using the MCP URL and API key. Your ActiveCampaign tools are now accessible through that endpoint.
Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now