mcpField
L
Listmonk MCP

Listmonk MCP

本地服务
github.com/tecspda商业与营销12 天前更新

关于 Listmonk MCP

Listmonk MCP 是面向 Listmonk 自托管邮件列表管理器的 MCP 服务,可供 AI Agent 管理订阅者、营销活动和模板,并发送事务邮件。它还支持从文件读取模板内容,并通过目录限制文件访问。

主要功能

  1. 01管理订阅者及状态
  2. 02创建和维护邮件列表
  3. 03创建、预览及发送活动
  4. 04管理模板与媒体文件
  5. 05发送事务邮件
  6. 06从受限目录读取文件

适用场景

  1. 01查找或更新订阅者资料
  2. 02安排或发送邮件活动
  3. 03从文件创建大型 HTML 模板
  4. 04向单个收件人发送事务邮件

MCP 相关

该 MCP 服务向 MCP 客户端提供 Listmonk 健康检查、订阅者、邮件列表、活动、模板、媒体及事务邮件工具。通过配置 Listmonk URL 和 API 用户凭据连接实例。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"tecspda-listmonk-mcp-ts": {
"command": "npx",
"args": [
"-y",
"listmonk-mcp-ts"
],
"env": {
"LISTMONK_MCP_URL": "<LISTMONK_MCP_URL>",
"LISTMONK_MCP_USERNAME": "<LISTMONK_MCP_USERNAME>",
"LISTMONK_MCP_PASSWORD": "<LISTMONK_MCP_PASSWORD>",
"LISTMONK_MCP_FILES_DIR": "<LISTMONK_MCP_FILES_DIR>"
}
}
}
}
启动命令npx -y listmonk-mcp-ts
需要配置的环境变量
LISTMONK_MCP_URLListmonk base URL, e.g. https://listmonk.example.com
LISTMONK_MCP_USERNAMEListmonk API user name
LISTMONK_MCP_PASSWORD密钥Listmonk API user password or token
LISTMONK_MCP_FILES_DIRDirectory the file tools (*_from_file, upload_media_file) may read from; they are disabled when unset

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmlistmonk-mcp-ts0.1.3

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Listmonk MCP 服务

Listmonk MCP 服务

这是一个用于 Listmonk 的 MCP 服务。Listmonk 是一款可自托管的新闻简报和邮件列表管理器。它让 AI Agent(Claude Code、Claude Desktop、Cursor、Cline、VS Code 等)能够管理订阅者、邮件列表、营销活动、模板和媒体,并通过你的 Listmonk 实例发送事务性邮件。

这是 Rohan Verma 开发的 rhnvrm/listmonk-mcp 的 TypeScript 移植版,并扩展了基于文件的模板、营销活动正文编辑和强化的文件访问功能。

使用 TypeScript 编写,运行于 Bun。

俄语版

功能

  • 订阅者: 添加、更新、删除订阅者,更改状态,使用 Listmonk SQL 查询搜索,并按 ID 或电子邮件查找。
  • 邮件列表: 创建、更新、删除和列出邮件列表,以及列出成员。
  • 营销活动: 创建、更新、预览、立即发送和安排发送。支持通过纯文本、正则表达式和批量替换编辑正文。
  • 模板: 创建、更新、删除和读取模板。大型 HTML 正文(例如 MJML 导出文件)可直接从文件加载。
  • 事务性邮件: 向一位收件人发送 tx 模板,并附带自定义数据。
  • 媒体: 上传、重命名、删除和列出媒体。

要求

  • Bun 1.1 或更高版本。
  • Listmonk 和一个 API 用户。在 Listmonk 管理界面中打开 Users,创建一个类型为 API 的用户,并复制其令牌。为其分配仅包含 Agent 所需权限的角色。

快速开始

一键安装(然后在客户端的 MCP 设置中替换占位的 URL、用户名和令牌):

在 Cursor 中安装 在 VS Code 中安装

Claude Code
claude mcp add --transport stdio --scope user \
  --env LISTMONK_MCP_URL=https://listmonk.example.com \
  --env LISTMONK_MCP_USERNAME=api_user \
  --env LISTMONK_MCP_PASSWORD=your-api-token \
  listmonk -- bunx listmonk-mcp-ts
Claude Desktop、Cursor、Cline 和其他客户端

将服务添加到客户端的 MCP 配置(mcpServers 部分):

{
  "mcpServers": {
    "listmonk": {
      "command": "bunx",
      "args": ["listmonk-mcp-ts"],
      "env": {
        "LISTMONK_MCP_URL": "https://listmonk.example.com",
        "LISTMONK_MCP_USERNAME": "api_user",
        "LISTMONK_MCP_PASSWORD": "your-api-token",
        "LISTMONK_MCP_FILES_DIR": "/path/to/email-templates"
      }
    }
  }
}

各客户端配置文件的位置:Claude Desktop、Cursor 和 Windsurf、Cline、VS Code。

会话打开时,客户端会启动该服务;会话结束时,服务也会停止。你无需让它持续运行。

配置

变量必填默认值说明
LISTMONK_MCP_URL是Listmonk 基础 URL,支持 http:// 或 https://
LISTMONK_MCP_USERNAME是API 用户名
LISTMONK_MCP_PASSWORD是API 用户令牌
LISTMONK_MCP_FILES_DIR否文件工具可读取的目录。未设置时,文件工具将被禁用
LISTMONK_MCP_TIMEOUT否30HTTP 超时时间,单位为秒
LISTMONK_MCP_MAX_RETRIES否3网络错误时的重试次数。仅重试 GET 请求
LISTMONK_MCP_SERVER_NAME否Listmonk MCP Server向客户端报告的服务名称

变量也可以来自工作目录中的 .env 文件,或通过 --config /path/to/.env 指定的文件。

CLI 选项:-c, --config <file> 加载环境变量文件,-v, --version 输出版本号。

工具

区域工具
健康状况check_listmonk_health
订阅者add_subscriber、update_subscriber、remove_subscriber、change_subscriber_status、list_subscribers、get_subscriber_by_id、get_subscriber_by_email
邮件列表get_mailing_lists、get_list_by_id、get_list_subscribers_tool、create_mailing_list、update_mailing_list、delete_mailing_list
Campaignget_campaigns、get_campaign、get_campaign_preview、create_campaign、update_campaign、send_campaign、schedule_campaign
Campaign 正文replace_in_campaign_body、regex_replace_in_campaign_body、batch_replace_in_campaign_body
模板get_templates、get_template、create_template、update_template、create_template_from_file、update_template_from_file、delete_template
事务性邮件send_transactional_email
媒体get_media_list、upload_media_file、rename_media、delete_media_file
从文件创建模板

通过工具调用内联传入大型 HTML 正文既耗时,模型在复制时也可能会修改内容。create_template_from_file 和 update_template_from_file 会改为从文件读取正文,因此存储的模板与文件逐字节一致。tx 模板必须提供 subject。

文件路径可以是绝对路径,也可以是相对于 LISTMONK_MCP_FILES_DIR 的路径。

安全

  • 文件访问范围仅限 LISTMONK_MCP_FILES_DIR。 create_template_from_file、update_template_from_file 和 upload_media_file 会拒绝访问该目录之外的任何路径(包括符号链接),并且在未设置该目录时会被禁用。从 Listmonk 读取的订阅者姓名、Campaign 正文和其他数据可能包含陌生人写入的指令(提示词注入)。如果没有此限制,这类文本可能会诱使 Agent 读取 ~/.ssh 或 .env 并通过电子邮件发送出去。
  • 发送工具应保持审批开启。 send_campaign、schedule_campaign 和 send_transactional_email 会发送真实邮件。请勿在客户端中为它们启用自动审批。
  • 使用专用 API 用户,其角色权限应仅限 Agent 所需范围,而非使用管理员账户。
  • 不要将令牌放入共享文件。 如果 MCP 配置已提交到版本库或进行同步,请通过环境变量传递令牌。

开发

git clone https://github.com/tecspda/listmonk-mcp-ts.git
cd listmonk-mcp-ts
bun install
cp .env.example .env   # fill in your Listmonk details
bun run start          # run the server
bun run dev            # run with reload on change
bun run check          # type check
bun test               # tests

要从 MCP 客户端运行本地检出版本,请使用 "command": "bun", "args": ["run", "/path/to/listmonk-mcp-ts/src/index.ts"]。

需要 Listmonk 实例进行测试?请参阅 Docker 设置。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。