Mautic MCP Server

Mautic MCP Server

Enables comprehensive integration with Mautic marketing automation platform, providing contact management, campaign automation, email operations, form management, analytics, and content management through natural language commands.

Category
Visit Server

README

Mautic MCP Server

A comprehensive Model Context Protocol (MCP) server that provides full integration with Mautic marketing automation platform.

GitHub Stars GitHub Issues GitHub License

🚀 Quick Start

# Clone and setup
git clone https://github.com/Cbrown35/mantic-MCP.git
cd mantic-MCP
npm install

# Configure your Mautic credentials
cp .env.example .env
# Edit .env with your Mautic API credentials

# Build and run
npm run build

Then add the server to your MCP configuration and start using natural language commands like:

  • "Search for all contacts with gmail in their email"
  • "Create a new contact named John Doe"
  • "List all email campaigns"

Features

This MCP server provides complete access to your Mautic instance with the following capabilities:

🔐 Authentication

  • OAuth2 authentication with automatic token refresh
  • Secure credential management through environment variables

👥 Contact Management

  • create_contact - Create new contacts with custom fields
  • update_contact - Update existing contact information
  • get_contact - Retrieve contact details by ID or email
  • search_contacts - Search contacts with filters and pagination
  • delete_contact - Remove contacts from Mautic
  • add_contact_to_segment - Add contacts to specific segments

📧 Campaign Management

  • list_campaigns - Get all campaigns with status and statistics
  • get_campaign - Get detailed campaign information
  • create_campaign - Create new campaigns
  • add_contact_to_campaign - Add contacts to campaigns
  • create_campaign_with_automation - Create campaigns with full event automation (🔥 NEW)
  • execute_campaign - Manually execute/trigger campaigns (🔥 NEW)
  • get_campaign_contacts - Get contacts in a campaign with their status (🔥 NEW)

✉️ Email Operations

  • send_email - Send emails to specific contacts
  • list_emails - Get all email templates and campaigns
  • get_email - Get detailed email information
  • create_email_template - Create new email templates
  • get_email_stats - Get email performance statistics

📝 Form Management

  • list_forms - Get all forms with submission counts
  • get_form - Get form details and fields
  • get_form_submissions - Get form submission data

🎯 Segment Management

  • list_segments - Get all contact segments
  • create_segment - Create new contact segments with filters
  • get_segment_contacts - Get contacts in a specific segment

📊 Analytics & Reporting

  • get_contact_activity - Get contact interaction history
  • get_email_stats - Get email performance statistics
  • list_reports - Get all reports (⭐ NEW)
  • create_report - Create custom reports (⭐ NEW)

📎 Content Management

  • list_assets - Get all assets (PDFs, images, documents) (⭐ NEW)
  • get_asset - Get asset details by ID (⭐ NEW)
  • create_asset - Create new assets (local or remote) (⭐ NEW)
  • list_pages - Get all landing pages (⭐ NEW)
  • create_page - Create new landing pages (⭐ NEW)
  • list_sms - Get all SMS templates (⭐ NEW)
  • create_sms - Create SMS templates (⭐ NEW)

🏢 Business Entities

  • list_companies - Get all companies (⭐ NEW)
  • create_company - Create new companies (⭐ NEW)
  • add_contact_to_company - Associate contacts with companies (⭐ NEW)
  • create_note - Add notes to contacts or companies (⭐ NEW)
  • get_contact_notes - Get all notes for a contact (⭐ NEW)
  • list_tags - Get all available tags (⭐ NEW)
  • create_tag - Create new tags (⭐ NEW)
  • add_contact_tags - Add tags to contacts (⭐ NEW)
  • list_categories - Get all categories (⭐ NEW)
  • create_category - Create new categories (⭐ NEW)

🎯 Advanced Features

  • add_contact_points - Add points to contacts (📈 NEW)
  • subtract_contact_points - Subtract points from contacts (📈 NEW)
  • list_stages - Get all lifecycle stages (📈 NEW)
  • change_contact_stage - Change contact's lifecycle stage (📈 NEW)
  • list_contact_fields - Get all contact custom fields (📈 NEW)
  • create_contact_field - Create new contact custom fields (📈 NEW)

🔧 Integration & Automation

  • list_webhooks - Get all webhooks (🔧 NEW)
  • create_webhook - Create new webhooks (🔧 NEW)
  • upload_file - Upload files to Mautic (🔧 NEW)

Installation

Prerequisites

  • Node.js (v16 or higher)
  • npm or yarn
  • Access to a Mautic instance with API credentials

Setup

  1. Clone the repository:

    git clone https://github.com/Cbrown35/mantic-MCP.git
    cd mantic-MCP
    
  2. Install dependencies:

    npm install
    
  3. Configure environment variables:

    cp .env.example .env
    

    Edit .env and fill in your Mautic API credentials:

    MAUTIC_BASE_URL=https://your-mautic-instance.com/api/
    MAUTIC_CLIENT_ID=your_client_id_here
    MAUTIC_CLIENT_SECRET=your_client_secret_here
    MAUTIC_TOKEN_ENDPOINT=https://your-mautic-instance.com/oauth/v2/token
    
  4. Build the server:

    npm run build
    
  5. Configure MCP settings: Add the server to your MCP configuration file:

    {
      "mcpServers": {
        "mautic-server": {
          "command": "node",
          "args": ["/path/to/mautic-server/build/index.js"],
          "env": {
            "MAUTIC_BASE_URL": "https://your-mautic-instance.com/api/",
            "MAUTIC_CLIENT_ID": "your_client_id",
            "MAUTIC_CLIENT_SECRET": "your_client_secret",
            "MAUTIC_TOKEN_ENDPOINT": "https://your-mautic-instance.com/oauth/v2/token"
          },
          "disabled": false,
          "autoApprove": []
        }
      }
    }
    

Configuration

Environment Variables

The server requires the following environment variables:

Variable Description Example
MAUTIC_BASE_URL Your Mautic API base URL https://your-mautic.com/api/
MAUTIC_CLIENT_ID OAuth2 Client ID 1_abc123...
MAUTIC_CLIENT_SECRET OAuth2 Client Secret secret123...
MAUTIC_TOKEN_ENDPOINT OAuth2 Token Endpoint https://your-mautic.com/oauth/v2/token

Obtaining Mautic API Credentials

  1. Log into your Mautic instance as an administrator
  2. Go to Settings → Configuration → API Settings
  3. Enable API access
  4. Go to Settings → API Credentials
  5. Create a new API credential with OAuth2 authorization
  6. Note down the Client ID and Client Secret

Usage Examples

Once the server is running, you can use it through MCP tool calls:

Create a Contact

Create a new contact with email "john@example.com", first name "John", and last name "Doe"

Search Contacts

Search for all contacts with "gmail" in their email address

Send Email

Send email template ID 5 to contact ID 123

Get Campaign Statistics

Get detailed information for campaign ID 10

List Forms

Show me all published forms with their submission counts

API Endpoints

The server connects to your Mautic instance at https://mailer.dzind.com/api/ and uses the following main endpoints:

  • /contacts - Contact management
  • /campaigns - Campaign operations
  • /emails - Email management
  • /forms - Form operations
  • /segments - Segment management

Error Handling

The server includes comprehensive error handling:

  • Automatic OAuth2 token refresh
  • Detailed error messages from Mautic API
  • Graceful handling of authentication failures
  • Retry logic for transient errors

Security

  • All credentials are stored as environment variables
  • OAuth2 tokens are automatically refreshed
  • No sensitive data is logged or exposed
  • Secure HTTPS communication with Mautic API

Development

To modify or extend the server:

  1. Edit the source code in src/index.ts
  2. Build the server: npm run build
  3. The server will automatically reload with your changes

🚀 Deployment

Production Deployment

  1. Clone and build:

    git clone https://github.com/Cbrown35/mantic-MCP.git
    cd mantic-MCP
    npm install
    npm run build
    
  2. Set up environment variables in your production environment

  3. Configure your MCP client to point to the built server

  4. Monitor logs for any authentication or API issues

Docker Deployment (Coming Soon)

Docker support is planned for easier deployment and scaling.

🤝 Contributing

We welcome contributions! Here's how to get started:

Development Setup

  1. Fork the repository on GitHub

  2. Clone your fork:

    git clone https://github.com/yourusername/mantic-MCP.git
    cd mantic-MCP
    
  3. Create a feature branch:

    git checkout -b feature/your-feature-name
    
  4. Install dependencies:

    npm install
    
  5. Make your changes and test thoroughly

  6. Build and test:

    npm run build
    # Test your changes with a real Mautic instance
    
  7. Commit and push:

    git add .
    git commit -m "Add your feature description"
    git push origin feature/your-feature-name
    
  8. Create a Pull Request on GitHub

Contribution Guidelines

  • Follow TypeScript best practices
  • Add comprehensive error handling
  • Update documentation for new features
  • Test with real Mautic instances when possible
  • Maintain backward compatibility

Reporting Issues

Found a bug or have a feature request? Please open an issue with:

  • Clear description of the problem or feature
  • Steps to reproduce (for bugs)
  • Your environment details (Node.js version, Mautic version, etc.)
  • Expected vs actual behavior

📄 License

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

🙏 Acknowledgments

  • Built with the Model Context Protocol SDK
  • Integrates with Mautic marketing automation platform
  • Inspired by the need for seamless marketing automation integration

Support

This server provides comprehensive integration with Mautic's REST API. For specific API documentation, refer to your Mautic instance's API documentation.

Getting Help

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured