Provides programmatic access to newsletter and mailing list management through Listmonk's REST API, enabling subscriber management, mailing list operations, campaign management, analytics access, and template management.
Listmonk MCP Server
An MCP (Model Context Protocol) server implementation for Listmonk, providing programmatic access to newsletter and mailing list management functionality.
Project Status
✅ Implementation Complete - The core MCP server is fully implemented and functional.
Goal
Create an MCP server that enables LLMs and AI assistants to interact with Listmonk instances through the Model Context Protocol. This will allow for:
- Subscriber management (add, remove, update subscribers)
- Mailing list operations (create, manage lists)
- Campaign management (create, send newsletters)
- Analytics and reporting access
- Template and content management
Architecture
This server will bridge the MCP protocol with Listmonk's REST API, providing a standardized interface for AI models to interact with Listmonk installations.
Features
- Complete Listmonk API Coverage: All major Listmonk operations supported
- 18 MCP Tools: Comprehensive subscriber, list, campaign, and template management
- MCP Resources: Easy access to subscriber, list, campaign, and template data
- Async Operations: Built with modern async/await patterns
- Type Safety: Full Pydantic model validation
- Environment Configuration: Easy setup with environment variables
Installation
Using uv (Recommended)
Using pip
Quick Start
1. Set up Listmonk (Local Development)
For testing, you can run a local Listmonk instance using Docker:
2. Create API User and Token
- Access the Listmonk admin interface at http://localhost:9000/admin
- Login with the default credentials:
admin
/listmonk
- Navigate to Admin → Users (http://localhost:9000/admin/users)
- Create a new API user:
- Click "Add new"
- Enter a username (e.g.,
api-user
) - Assign appropriate role/permissions
- Save the user
- Generate an API token:
- Click on the created user
- Click "Generate API token"
- Copy the generated token
3. Configure Environment Variables
The MCP server requires the following environment variables:
Important: The password field should contain the API token (not the user's login password). The server uses Listmonk's token authentication format: Authorization: token username:api_token
.
Troubleshooting Configuration:
- Verify variables:
echo $LISTMONK_MCP_URL
should show your Listmonk URL - Test API access:
curl -H "Authorization: token username:api_token" http://localhost:9000/api/health
- Common errors: "invalid session" or 403 errors indicate incorrect credentials
4. Run the MCP Server
Common Issues:
- Connection refused: Listmonk server not running or wrong URL
- Module not found: Install dependencies with
uv install
orpip install -e .
This server cannot be installed
An MCP server implementation that enables AI assistants to interact with Listmonk instances, providing programmatic access to newsletter and mailing list management functionality including subscriber, list, and campaign operations.
Related MCP Servers
- -securityAlicense-qualityAn MCP server that provides AI assistants access to the Beeminder API, allowing them to help users track goals, manage datapoints, and interact with Beeminder's self-commitment tools through natural language.Last updated -6PythonMIT License
- AsecurityAlicenseAqualityA Model Context Protocol server that enables AI assistants to interact with Linear project management systems, allowing users to retrieve, create, and update issues, projects, and teams through natural language.Last updated -321,06292TypeScriptMIT License
- AsecurityFlicenseAqualityAn MCP server that supercharges AI assistants with powerful tools for software development, enabling research, planning, code generation, and project scaffolding through natural language interaction.Last updated -1159TypeScript
- AsecurityFlicenseAqualityA powerful MCP server that enables AI assistants to interact with Microsoft Graph API for managing Outlook emails, Calendar events, OneDrive files, and Contacts through natural language commands.Last updated -208Python