关于 Chatwoot (Mojood Connect)
Chatwoot MCP 服务让 Claude 查询客户对话,并管理备注、分配、标签和状态。只读查询与需一次性确认的变更相分离,且不提供向客户发送消息的工具。
主要功能
- 01按状态、文本、标签或客服查找对话
- 02查看对话记录和联系人概览
- 03识别未分配、紧急或等待中的对话
- 04经确认添加内部备注
- 05经确认重新分配、添加标签或解决对话
适用场景
- 01查找等待回复时间最长的客户
- 02查看联系人的对话历史
- 03添加内部备注而不联系客户
- 04将对话移交给客服或团队
MCP 相关
向 MCP 客户端提供 Chatwoot 对话查询和管理工具。变更须先通过一次性确认码才会生效。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx mojood-chatwoot-mcpCHATWOOT_URLYour Chatwoot addressCHATWOOT_ACCOUNTThe account idCHATWOOT_TOKEN密钥A user's API access tokenCHATWOOT_SAMPLE0 for real data (1 labels answers SAMPLE)本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Chatwoot MCP 服务
用日常语言向 Claude 询问客户收件箱:谁等待的时间最长、客户想要什么、某家公司提出过的所有需求。将对话转交给 Agent 或团队,为对话添加标签或将其解决,并在同一个聊天中留下私人备注;在任何更改生效前,都需要先确认。没有可向客户发送消息的工具。
由 Mojood Connect 构建,是一个可运行的 Chatwoot 演示。它通过 Chatwoot 应用 API 连接到任何 Chatwoot 实例。此代码库包含一个本地 Chatwoot 实例,其中有一家虚构公司 Harbor Trading 的客户收件箱示例数据,让你无需接触真实账户即可试用。
工具
| 工具 | 功能 | 会更改任何内容吗? |
|---|---|---|
find_conversations | 按状态、消息中的词语、标签或 Agent 列出对话:联系人、公司、收件箱、受指派人、团队、标签、客户已等待的时间 | 否 |
get_conversation | 按顺序显示一段对话中的所有消息,并标明私人备注 | 否 |
contact_overview | 查看某个人、邮箱或公司及其所有对话;如果同名人员属于多家公司,则会询问具体是哪一位 | 否 |
needs_attention | 没有 Agent 负责的对话、等待回复的客户(按等待时间从长到短排列)、紧急对话 | 否 |
add_private_note | 为 Agent 添加私人备注,客户永远看不到 | 是,需确认后才会更改 |
update_conversation | 将对话转交给 Agent 或团队、添加标签、更改状态 | 是,需确认后才会更改 |
如何确保更改安全。 如果调用 add_private_note 或 update_conversation 时未提供 confirmation,则不会进行任何更改:系统会返回一段简单摘要(“在与 Noor Al-Saadi(Bayt Interiors)的对话 1 中:将其转交给 Sales 团队,并指派给 Omar Siddiqui。”)以及一次性验证码。只有在 10 分钟内,使用同一请求和该验证码再次提交时,更改才会生效。验证码只能使用一次,且仅适用于签发该验证码的请求。服务的指令会要求模型显示摘要并等待用户确认。备注会附带“via Claude (Mojood Connect demo)”,Chatwoot 会以令牌所属用户的身份,在对话中记录每次转交和标签更改。
服务以访问令牌所属用户的身份运行,并使用该用户在 Chatwoot 中的权限。
本地试用
需要 Docker(含 Compose)、uv 和 Python 3.13。
scripts/reset.sh # local Chatwoot on http://localhost:3010, filled with the SAMPLE inbox
uv run --env-file .env chatwoot-mcp # MCP server on http://127.0.0.1:8004/mcp (Streamable HTTP)
docker/compose.yml 参照 Chatwoot 自带的 docker-compose.production.yaml(v4.19.1)并固定了版本;应用仅绑定到 127.0.0.1,数据库和 Redis 不对外发布。scripts/reset.sh 会生成所有密码、账户、管理员和访问令牌,并将它们保存在被 Git 忽略的文件 docker/.env 和 .env 中;不会输出任何内容。重启后,scripts/up.sh 会重新启动服务,不会触碰数据。
Claude Desktop: 将以下内容添加到 claude_desktop_config.json(设置 › 开发者),并填入此文件夹的路径:
{
"mcpServers": {
"chatwoot": {
"command": "uv",
"args": ["run", "--directory", "/path/to/chatwoot-mcp", "--env-file", "/path/to/chatwoot-mcp/.env", "chatwoot-mcp", "--stdio"]
}
}
}
然后提问:“谁等待回复的时间最长?”、“Bayt Interiors 的 Noor 想要什么?”、“把这件事交给 Sales 的 Omar,并备注她的客户会在周四批准预算。”
你自己的 Chatwoot: 设置 CHATWOOT_URL、CHATWOOT_ACCOUNT、CHATWOOT_TOKEN(个人资料设置中的访问令牌)和 CHATWOOT_SAMPLE=0。
示例收件箱
Harbor Trading 的客户收件箱:两个 API 渠道收件箱(网站聊天、电子邮件)、两个团队(Sales、Service)中的四位 Agent、四个标签、七家公司中的八位联系人,以及九段对话。消息时间会根据数据初始化当天设定,因此始终会有等待数小时的客户、两段无人负责的对话、一段紧急对话、待处理对话以及已解决的历史对话。其中的所有人和所有内容均为虚构。
测试
uv run --env-file .env pytest # unit tests (a fake Chatwoot API), plus live tests when the local Chatwoot runs
生产版本新增内容
这个演示使用一个访问令牌登录。面向 Chatwoot 客户的生产级服务会新增使用每位客服自己的 Chatwoot 账户登录,让 Claude 只能看到他们有权访问的收件箱;提供托管服务,并记录每次工具调用的审计日志;还会接入更多 API(预设回复、供客服发送的回复草稿、报告、宏、帮助中心)。Mojood Connect 正是为此打造的。
许可证
Apache 2.0。Chatwoot 是 Chatwoot Inc. 的商标;本项目并非由 Chatwoot Inc. 制作或认可。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。