Mattermost MCP配置与使用教程
io.github.vriesdemichael/mm-mcp · v0.3.0
Read, search and post in Mattermost as yourself or a bot.
建议先在本页复制安装配置,再到上游核对文档与权限。
产品介绍
Read, search and post in Mattermost as yourself or a bot. Mattermost 是一个MCP Server,收录自 官方 MCP Registry。支持 stdio 传输。本页提供产品介绍、配置教程、安装命令与适用场景,支持 Trae、通义灵码、Cursor、Claude Code、VS Code 等。
适用场景
AgentHub Verified 可用性验证技术测试通过
自动化测试流水线已校验安装命令、传输协议与客户端兼容性
常见报错排查与运行避坑 (Troubleshooting)FAQ
针对 Mattermost 在 Cursor、Claude Code 中的常见连接错误与解决办法
在 Cursor / Claude Code 中配置 Mattermost 提示 connection closed 或 exit code 1?
通常由本地运行时环境缺失或命令路径未被 IDE 继承引起。排查步骤: 1. 确认已安装 Node.js 18+(支持 npx)或 Python 3.10+(支持 uvx); 2. 尝试在终端运行 which npx 或 which uvx,把配置文件中的 "command" 字段改为完整绝对路径; 3. 修改 mcp.json 后,必须完全重载或重启客户端窗口。
# 终端测试命令是否存在: which npx node -v
提示 spawn npx ENOENT 或 command not found?
这是因为编辑器后台进程未加载完整的终端环境变量(PATH)。解决方案:在全局安装该包(如 npm install -g 包名),或在配置文件中将 command 设置为系统的实际路径(如 Windows 下的 C:\Program Files\nodejs\npx.cmd,Mac 下的 /usr/local/bin/npx)。
提示 Missing required environment variable 或 API 认证失败?
Mattermost 依赖环境变量(如 MM_URL、MM_URL、MM_URL、MM_URL、MM_URL、MM_URL)。请在客户端配置文件的 "env" 对象中填入有效密钥,注意不要包含多余空格或未闭合的双引号。
// .cursor/mcp.json 或 claude_desktop_config.json
{
"env": {
"MM_URL": "your_actual_key_here"
}
}免安装模拟调用 (Playground)
仿真环境Mattermost 核心接口调用仿真 · 无需配置本地环境,直接预览调用参数与返回格式
{
"target": "Mattermost",
"action": "execute",
"options": {
"mode": "standard",
"timeoutMs": 5000
}
}点击上方「模拟运行」按钮
查看该工具在 Agent 内部的返回数据格式
选型与决策建议(为什么选它?)
帮助你快速判断该资源是否契合当前项目,避免盲目折腾
- PR 自动审查
- 生成 changelog
- 跨仓库 Issue 检索
- 替代人工安全审计
- 在无授权仓库上操作
Mattermost + 对应场景 Prompt → 组成标准 Agent 自动化任务
MCP 实战教程:从安装到看见效果
按完整实例走一遍(含期望效果与对比验收)。装完本页资源后,用教程里的提示词核对是否真正生效。
相关资源
Kryptonian Labs XRPL APIs
v0.8.0
com.kriptonianlabs/xrpl
Read-only XRP Ledger data for agents: fees, order books, slippage, AMM pools, accounts and health.
Linkbreakers MCP
v1.158.2
com.linkbreakers/mcp
二维码驱动的客户旅程平台,支持可追踪二维码、短链与分析。
MCP 编排器
v0.6.1
io.github.Byggarepop/dotnet-mcp-orchestrator
让一个智能体经由单个 MCP 服务路由到多个服务,并用渐进式工具发现压缩上下文。
benethos-yahoo-finance-mcp
v0.8.4
io.github.benethos-hub/benethos-yahoo-finance-mcp
Unofficial read-only MCP server exposing Yahoo Finance data (via yfinance) over stdio or HTTP.
keryx
v0.4.15
io.github.tang-vu/keryx
自主研究智能体,用 x402 微支付在 Arc 上以 USDC 为它引用的每个来源付费。
Open Components
v1.0.0
com.uxfront/open-components
Guidelines for UI components with a perfect UX, DX and AX, whether humans or AI agents write them.
常搭配使用
基于文件的规划
v3.23.0
io.clawhub.othmanadi/planning-with-files
面向多步 AI Agent 工作的持久化文件规划。将 task_plan.md、findings.md 与 progress.md 保存在磁盘上,生命周期钩子注入所选的项目规划上下文;自动恢复仅读取项目规划文件,显式运行 session-catchup.py --input-file 时读取同项目的本地 Agent……(原文截断)
OpenClaw 指挥中心
v1.5.0
io.clawhub.jontsai/command-center
OpenClaw 任务控制台仪表盘——实时会话监控、LLM 用量跟踪、成本情报与系统生命体征。在一处查看你所有的 AI Age……(原文截断)
ClawCall 语音电话
v2.0.1
io.clawhub.clawcall-dev/clawcall-dev
当用户需要 AI Agent 拨打美国电话、呼叫商家、处理通话等待或语音菜单、完成确认/改期/取消/预订/跟进/查询……时使用本技能(原文截断)。
中文公文写作
v2.0.25
io.clawhub.gongyu0918-debug/chinese-official-writing
用于中文公文、事务性材料和新闻稿件的起草、改写、压缩、润色、审校、文种核对、去口语化、降 AI 味及 Word 格式处理,适用于机关、企事业单位、学校和新闻机构。涵盖申请、请示、报告、通知、通告、意见、决定、决议、议案、公报、命令、函、复函、批复、说明、方案、纪要、公告、公示、通报、制度、规定、办法、细则、操作规程、工作要点、总结、调研、讲话、致辞、主持词、述职、可研、审查材料、技术需求、新闻消息、编者按、新闻评论,以及采购、整改、反馈和 AI 算力等场景。
继续逛 AgentHub
大多数人安装前还会对比同类工具或看场景方案——下面这些能帮你少走弯路。
收录徽章:把 AgentHub 挂到你的官网
复制下面任意一段代码到项目主页、官网或 GitHub README。徽章是 SVG 热链,无需上传文件,链接指向本页,访客可由此直接找到安装方式。
<a href="https://myagenthub.cn/p/io.github.vriesdemichael/mm-mcp" title="AgentHub 已收录:Mattermost" target="_blank" rel="noopener">
<img src="https://myagenthub.cn/badge/io.github.vriesdemichael/mm-mcp" alt="AgentHub 已收录:Mattermost" height="20" style="border:0"/>
</a>[](https://myagenthub.cn/p/io.github.vriesdemichael/mm-mcp)徽章由 /badge/<资源ID> 动态生成,名称与收录状态变化后自动更新;请保留链接指向,它是收录来源的判定依据。
统一 Manifest
{
"id": "io.github.vriesdemichael/mm-mcp",
"type": "mcp-server",
"version": "0.3.0",
"displayName": "Mattermost",
"description": "Read, search and post in Mattermost as yourself or a bot.",
"repository": {
"url": "https://github.com/vriesdemichael/mm-mcp",
"source": "github"
},
"distribution": {
"packages": [
{
"registryType": "mcpb",
"identifier": "https://github.com/vriesdemichael/mm-mcp/releases/download/v0.3.0/mm-mcp_0.3.0_darwin_amd64.mcpb",
"version": "0.3.0",
"transport": "stdio",
"environmentVariables": [
{
"name": "MM_MCP_ALLOW_WRITES",
"description": "Offer the tools that post and change things. Each change others see asks you before it acts, which needs a client that shows MCP elicitation questions; following a thread, saving a post or a draft, reminders and typing do not ask."
},
{
"name": "MM_MCP_ASK_BEFORE_WRITES",
"description": "mm-mcp asks you before each change others see. Turn it off only where your client does not show mm-mcp's question, and its own approval of each tool call is to be the check instead: a client that approves tools by itself then posts as you with nobody seeing it first."
},
{
"name": "MM_MCP_CA_FILE",
"description": "A PEM file of certificate authorities to trust beside your system's, for a Mattermost whose certificate your organisation signed itself. Leave it empty otherwise."
},
{
"name": "MM_MCP_DOWNLOAD_DIR",
"description": "Where save_file writes attachments. Leave it empty for your Downloads directory."
},
{
"name": "MM_MCP_FORCE_HUMAN_IN_THE_LOOP_IN_CLAUDE_CODE",
"description": "Only with Ask before posting off: marks each tool that changes what others see so that Claude Code asks a person on every call, whatever its permission mode or rules allow. An agent cannot post on its own while it is on."
},
{
"name": "MM_MCP_MARK_AI_GENERATED",
"description": "Mark every post and edit the model writes with Mattermost's own marker for text written with AI."
},
{
"name": "MM_TOKEN",
"description": "A personal access token or a bot token. Where those are switched off, leave it empty after logging in once with mm-mcp login --url <address> in a terminal, which keeps your session in the system's credential store.",
"isSecret": true
},
{
"name": "MM_URL",
"description": "The address you open Mattermost at, such as https://chat.example.com.",
"isRequired": true
}
]
},
{
"registryType": "mcpb",
"identifier": "https://github.com/vriesdemichael/mm-mcp/releases/download/v0.3.0/mm-mcp_0.3.0_darwin_arm64.mcpb",
"version": "0.3.0",
"transport": "stdio",
"environmentVariables": [
{
"name": "MM_MCP_ALLOW_WRITES",
"description": "Offer the tools that post and change things. Each change others see asks you before it acts, which needs a client that shows MCP elicitation questions; following a thread, saving a post or a draft, reminders and typing do not ask."
},
{
"name": "MM_MCP_ASK_BEFORE_WRITES",
"description": "mm-mcp asks you before each change others see. Turn it off only where your client does not show mm-mcp's question, and its own approval of each tool call is to be the check instead: a client that approves tools by itself then posts as you with nobody seeing it first."
},
{
"name": "MM_MCP_CA_FILE",
"description": "A PEM file of certificate authorities to trust beside your system's, for a Mattermost whose certificate your organisation signed itself. Leave it empty otherwise."
},
{
"name": "MM_MCP_DOWNLOAD_DIR",
"description": "Where save_file writes attachments. Leave it empty for your Downloads directory."
},
{
"name": "MM_MCP_FORCE_HUMAN_IN_THE_LOOP_IN_CLAUDE_CODE",
"description": "Only with Ask before posting off: marks each tool that changes what others see so that Claude Code asks a person on every call, whatever its permission mode or rules allow. An agent cannot post on its own while it is on."
},
{
"name": "MM_MCP_MARK_AI_GENERATED",
"description": "Mark every post and edit the model writes with Mattermost's own marker for text written with AI."
},
{
"name": "MM_TOKEN",
"description": "A personal access token or a bot token. Where those are switched off, leave it empty after logging in once with mm-mcp login --url <address> in a terminal, which keeps your session in the system's credential store.",
"isSecret": true
},
{
"name": "MM_URL",
"description": "The address you open Mattermost at, such as https://chat.example.com.",
"isRequired": true
}
]
},
{
"registryType": "mcpb",
"identifier": "https://github.com/vriesdemichael/mm-mcp/releases/download/v0.3.0/mm-mcp_0.3.0_linux_amd64.mcpb",
"version": "0.3.0",
"transport": "stdio",
"environmentVariables": [
{
"name": "MM_MCP_ALLOW_WRITES",
"description": "Offer the tools that post and change things. Each change others see asks you before it acts, which needs a client that shows MCP elicitation questions; following a thread, saving a post or a draft, reminders and typing do not ask."
},
{
"name": "MM_MCP_ASK_BEFORE_WRITES",
"description": "mm-mcp asks you before each change others see. Turn it off only where your client does not show mm-mcp's question, and its own approval of each tool call is to be the check instead: a client that approves tools by itself then posts as you with nobody seeing it first."
},
{
"name": "MM_MCP_CA_FILE",
"description": "A PEM file of certificate authorities to trust beside your system's, for a Mattermost whose certificate your organisation signed itself. Leave it empty otherwise."
},
{
"name": "MM_MCP_DOWNLOAD_DIR",
"description": "Where save_file writes attachments. Leave it empty for your Downloads directory."
},
{
"name": "MM_MCP_FORCE_HUMAN_IN_THE_LOOP_IN_CLAUDE_CODE",
"description": "Only with Ask before posting off: marks each tool that changes what others see so that Claude Code asks a person on every call, whatever its permission mode or rules allow. An agent cannot post on its own while it is on."
},
{
"name": "MM_MCP_MARK_AI_GENERATED",
"description": "Mark every post and edit the model writes with Mattermost's own marker for text written with AI."
},
{
"name": "MM_TOKEN",
"description": "A personal access token or a bot token. Where those are switched off, leave it empty after logging in once with mm-mcp login --url <address> in a terminal, which keeps your session in the system's credential store.",
"isSecret": true
},
{
"name": "MM_URL",
"description": "The address you open Mattermost at, such as https://chat.example.com.",
"isRequired": true
}
]
},
{
"registryType": "mcpb",
"identifier": "https://github.com/vriesdemichael/mm-mcp/releases/download/v0.3.0/mm-mcp_0.3.0_linux_arm64.mcpb",
"version": "0.3.0",
"transport": "stdio",
"environmentVariables": [
{
"name": "MM_MCP_ALLOW_WRITES",
"description": "Offer the tools that post and change things. Each change others see asks you before it acts, which needs a client that shows MCP elicitation questions; following a thread, saving a post or a draft, reminders and typing do not ask."
},
{
"name": "MM_MCP_ASK_BEFORE_WRITES",
"description": "mm-mcp asks you before each change others see. Turn it off only where your client does not show mm-mcp's question, and its own approval of each tool call is to be the check instead: a client that approves tools by itself then posts as you with nobody seeing it first."
},
{
"name": "MM_MCP_CA_FILE",
"description": "A PEM file of certificate authorities to trust beside your system's, for a Mattermost whose certificate your organisation signed itself. Leave it empty otherwise."
},
{
"name": "MM_MCP_DOWNLOAD_DIR",
"description": "Where save_file writes attachments. Leave it empty for your Downloads directory."
},
{
"name": "MM_MCP_FORCE_HUMAN_IN_THE_LOOP_IN_CLAUDE_CODE",
"description": "Only with Ask before posting off: marks each tool that changes what others see so that Claude Code asks a person on every call, whatever its permission mode or rules allow. An agent cannot post on its own while it is on."
},
{
"name": "MM_MCP_MARK_AI_GENERATED",
"description": "Mark every post and edit the model writes with Mattermost's own marker for text written with AI."
},
{
"name": "MM_TOKEN",
"description": "A personal access token or a bot token. Where those are switched off, leave it empty after logging in once with mm-mcp login --url <address> in a terminal, which keeps your session in the system's credential store.",
"isSecret": true
},
{
"name": "MM_URL",
"description": "The address you open Mattermost at, such as https://chat.example.com.",
"isRequired": true
}
]
},
{
"registryType": "mcpb",
"identifier": "https://github.com/vriesdemichael/mm-mcp/releases/download/v0.3.0/mm-mcp_0.3.0_windows_amd64.mcpb",
"version": "0.3.0",
"transport": "stdio",
"environmentVariables": [
{
"name": "MM_MCP_ALLOW_WRITES",
"description": "Offer the tools that post and change things. Each change others see asks you before it acts, which needs a client that shows MCP elicitation questions; following a thread, saving a post or a draft, reminders and typing do not ask."
},
{
"name": "MM_MCP_ASK_BEFORE_WRITES",
"description": "mm-mcp asks you before each change others see. Turn it off only where your client does not show mm-mcp's question, and its own approval of each tool call is to be the check instead: a client that approves tools by itself then posts as you with nobody seeing it first."
},
{
"name": "MM_MCP_CA_FILE",
"description": "A PEM file of certificate authorities to trust beside your system's, for a Mattermost whose certificate your organisation signed itself. Leave it empty otherwise."
},
{
"name": "MM_MCP_DOWNLOAD_DIR",
"description": "Where save_file writes attachments. Leave it empty for your Downloads directory."
},
{
"name": "MM_MCP_FORCE_HUMAN_IN_THE_LOOP_IN_CLAUDE_CODE",
"description": "Only with Ask before posting off: marks each tool that changes what others see so that Claude Code asks a person on every call, whatever its permission mode or rules allow. An agent cannot post on its own while it is on."
},
{
"name": "MM_MCP_MARK_AI_GENERATED",
"description": "Mark every post and edit the model writes with Mattermost's own marker for text written with AI."
},
{
"name": "MM_TOKEN",
"description": "A personal access token or a bot token. Where those are switched off, leave it empty after logging in once with mm-mcp login --url <address> in a terminal, which keeps your session in the system's credential store.",
"isSecret": true
},
{
"name": "MM_URL",
"description": "The address you open Mattermost at, such as https://chat.example.com.",
"isRequired": true
}
]
},
{
"registryType": "mcpb",
"identifier": "https://github.com/vriesdemichael/mm-mcp/releases/download/v0.3.0/mm-mcp_0.3.0_windows_arm64.mcpb",
"version": "0.3.0",
"transport": "stdio",
"environmentVariables": [
{
"name": "MM_MCP_ALLOW_WRITES",
"description": "Offer the tools that post and change things. Each change others see asks you before it acts, which needs a client that shows MCP elicitation questions; following a thread, saving a post or a draft, reminders and typing do not ask."
},
{
"name": "MM_MCP_ASK_BEFORE_WRITES",
"description": "mm-mcp asks you before each change others see. Turn it off only where your client does not show mm-mcp's question, and its own approval of each tool call is to be the check instead: a client that approves tools by itself then posts as you with nobody seeing it first."
},
{
"name": "MM_MCP_CA_FILE",
"description": "A PEM file of certificate authorities to trust beside your system's, for a Mattermost whose certificate your organisation signed itself. Leave it empty otherwise."
},
{
"name": "MM_MCP_DOWNLOAD_DIR",
"description": "Where save_file writes attachments. Leave it empty for your Downloads directory."
},
{
"name": "MM_MCP_FORCE_HUMAN_IN_THE_LOOP_IN_CLAUDE_CODE",
"description": "Only with Ask before posting off: marks each tool that changes what others see so that Claude Code asks a person on every call, whatever its permission mode or rules allow. An agent cannot post on its own while it is on."
},
{
"name": "MM_MCP_MARK_AI_GENERATED",
"description": "Mark every post and edit the model writes with Mattermost's own marker for text written with AI."
},
{
"name": "MM_TOKEN",
"description": "A personal access token or a bot token. Where those are switched off, leave it empty after logging in once with mm-mcp login --url <address> in a terminal, which keeps your session in the system's credential store.",
"isSecret": true
},
{
"name": "MM_URL",
"description": "The address you open Mattermost at, such as https://chat.example.com.",
"isRequired": true
}
]
}
],
"remotes": []
},
"dependencies": [],
"installTargets": [
"claude-code",
"claude-desktop",
"cursor",
"vscode",
"trae",
"cherry-studio",
"lingma",
"windsurf",
"cline",
"workbuddy"
],
"keywords": [],
"provenance": {
"origin": "official-mcp-registry",
"originalId": "io.github.vriesdemichael/mm-mcp",
"originalUrl": "https://registry.modelcontextprotocol.io/v0.1/servers/io.github.vriesdemichael%2Fmm-mcp/versions/latest",
"isOfficial": true,
"status": "active"
}
}