加载中…
Read, search and post in Mattermost as yourself or a bot.
Mattermost 是 ChatHome Skills 收录的 MCP 条目,来源为 Official MCP Registry,质量分 54/100。 作为 Model Context Protocol 服务器,它向 Claude、Cursor、Copilot 等兼容 MCP 的 LLM 客户端暴露可直接调用的工具,让 agent 的能力超出模型内置范围。 该条目由 ChatHome Skills 的每日抓取从官方 registry 和 GitHub 发现查询中收录,每次运行都会重新核验仓库事实、新鲜度信号和安装元数据。 质量分综合了官方 registry 收录情况、可用安装命令、许可证完整性、仓库活跃度和 GitHub star 趋势,完整算法说明见来源页。该条目暂无自动安装命令,请查阅仓库获取手动安装说明。 在将 Mattermost 加入生产 agent 工作流前,请核对上方的最近更新日期和仓库状态——下方事实快照是最近一次抓取的时点值。
查看来源文档运行此命令前,请先核对上游源码。
{
"_meta": {
"io.modelcontextprotocol.registry/official": {
"status": "active",
"isLatest": true,
"updatedAt": "2026-10-21T09:21:11.385492Z",
"publishedAt": "2026-10-21T09:21:11.385492Z",
"statusChangedAt": "2026-10-21T09:21:11.385492Z"
}
},
"server": {
"name": "io.github.vriesdemichael/mm-mcp",
"title": "Mattermost",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"version": "0.4.0",
"packages": [
{
"version": "0.4.0",
"transport": {
"type": "stdio"
},
"fileSha256": "874814ee6d98f49cd7aef9b2ab651e387401abdd9ca7666aa37ab1e3543f291b",
"identifier": "https://github.com/vriesdemichael/mm-mcp/releases/download/v0.4.0/mm-mcp_0.4.0_darwin_amd64.mcpb",
"registryType": "mcpb",
"environmentVariables": [
{
"name": "MM_MCP_ALLOW_WRITES",
"format": "boolean",
"default": "false",
"description": "Offer the tools that post and change things. Your client's own approval of each call decides, and mm-mcp checks what each change others see states before it acts."
},
{
"name": "MM_MCP_CA_FILE",
"format": "filepath",
"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",
"format": "filepath",
"description": "Where save_file writes attachments. Leave it empty for your Downloads directory."
},
{
"name": "MM_MCP_ELICITATION_OPT_IN",
"format": "boolean",
"default": "false",
"description": "Your client's own approval of each call decides whether a post or another change others see goes ahead, and mm-mcp checks what each states. Turn this on to have mm-mcp ask you too, through a question your client shows: a convenience where it shows it, not a safeguard, since some clients answer it themselves."
},
{
"name": "MM_MCP_FORCE_HUMAN_IN_THE_LOOP_IN_CLAUDE_CODE",
"format": "boolean",
"default": "false",
"description": "Not with mm-mcp asks as well: 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",
"format": "boolean",
"default": "true",
"description": "Mark every post and edit the model writes with Mattermost's own marker for text written with AI."
},
{
"name": "MM_MCP_POST_FROM_VIEWS",
"format": "boolean",
"default": "true",
"description": "Where your app shows mm-mcp's views, a post the model proposes as your draft can be posted from the view with Post. Off, the draft waits in Mattermost for you to send."
},
{
"name": "MM_MCP_RESOURCE_MAX_MB",
"format": "number",
"default": "10",
"description": "The most one message carrying an attached file as an MCP resource holds, a binary file counted as its base64. MCP sends a resource whole, and a client drops a message past its own limit, 10 MB for clients built on the TypeScript SDK. A larger one is refused, and read_file or save_file reads it instead. 0 is no limit."
},
{
"name": "MM_TOKEN",
"format": "string",
"isSecret": true,
"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."
},
{
"name": "MM_URL",
"format": "string",
"isRequired": true,
"description": "The address you open Mattermost at, such as https://chat.example.com."
}
]
},
{
"version": "0.4.0",
"transport": {
"type": "stdio"
},
"fileSha256": "01a91a09ed6d11e95e7f399b594ec6582bfb432724fd61ffba1afea4225742ba",
"identifier": "https://github.com/vriesdemichael/mm-mcp/releases/download/v0.4.0/mm-mcp_0.4.0_darwin_arm64.mcpb",
"registryType": "mcpb",
"environmentVariables": [
{
"name": "MM_MCP_ALLOW_WRITES",
"format": "boolean",
"default": "false",
"description": "Offer the tools that post and change things. Your client's own approval of each call decides, and mm-mcp checks what each change others see states before it acts."
},
{
"name": "MM_MCP_CA_FILE",
"format": "filepath",
"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",
"format": "filepath",
"description": "Where save_file writes attachments. Leave it empty for your Downloads directory."
},
{
"name": "MM_MCP_ELICITATION_OPT_IN",
"format": "boolean",
"default": "false",
"description": "Your client's own approval of each call decides whether a post or another change others see goes ahead, and mm-mcp checks what each states. Turn this on to have mm-mcp ask you too, through a question your client shows: a convenience where it shows it, not a safeguard, since some clients answer it themselves."
},
{
"name": "MM_MCP_FORCE_HUMAN_IN_THE_LOOP_IN_CLAUDE_CODE",
"format": "boolean",
"default": "false",
"description": "Not with mm-mcp asks as well: 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",
"format": "boolean",
"default": "true",
"description": "Mark every post and edit the model writes with Mattermost's own marker for text written with AI."
},
{
"name": "MM_MCP_POST_FROM_VIEWS",
"format": "boolean",
"default": "true",
"description": "Where your app shows mm-mcp's views, a post the model proposes as your draft can be posted from the view with Post. Off, the draft waits in Mattermost for you to send."
},
{
"name": "MM_MCP_RESOURCE_MAX_MB",
"format": "number",
"default": "10",
"description": "The most one message carrying an attached file as an MCP resource holds, a binary file counted as its base64. MCP sends a resource whole, and a client drops a message past its own limit, 10 MB for clients built on the TypeScript SDK. A larger one is refused, and read_file or save_file reads it instead. 0 is no limit."
},
{
"name": "MM_TOKEN",
"format": "string",
"isSecret": true,
"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."
},
{
"name": "MM_URL",
"format": "string",
"isRequired": true,
"description": "The address you open Mattermost at, such as https://chat.example.com."
}
]
},
{
"version": "0.4.0",
"transport": {
"type": "stdio"
},
"fileSha256": "ad56d46b2f40922350349821f2cd6feb6fc3924b7724f80bc30ddcdb2a0a0a8d",
"identifier": "https://github.com/vriesdemichael/mm-mcp/releases/download/v0.4.0/mm-mcp_0.4.0_linux_amd64.mcpb",
"registryType": "mcpb",
"environmentVariables": [
{
"name": "MM_MCP_ALLOW_WRITES",
"format": "boolean",
"default": "false",
"description": "Offer the tools that post and change things. Your client's own approval of each call decides, and mm-mcp checks what each change others see states before it acts."
},
{
"name": "MM_MCP_CA_FILE",
"format": "filepath",
"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",
"format": "filepath",
"description": "Where save_file writes attachments. Leave it empty for your Downloads directory."
},
{
"name": "MM_MCP_ELICITATION_OPT_IN",
"format": "boolean",
"default": "false",
"description": "Your client's own approval of each call decides whether a post or another change others see goes ahead, and mm-mcp checks what each states. Turn this on to have mm-mcp ask you too, through a question your client shows: a convenience where it shows it, not a safeguard, since some clients answer it themselves."
},
{
"name": "MM_MCP_FORCE_HUMAN_IN_THE_LOOP_IN_CLAUDE_CODE",
"format": "boolean",
"default": "false",
"description": "Not with mm-mcp asks as well: 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",
"format": "boolean",
"default": "true",
"description": "Mark every post and edit the model writes with Mattermost's own marker for text written with AI."
},
{
"name": "MM_MCP_POST_FROM_VIEWS",
"format": "boolean",
"default": "true",
"description": "Where your app shows mm-mcp's views, a post the model proposes as your draft can be posted from the view with Post. Off, the draft waits in Mattermost for you to send."
},
{
"name": "MM_MCP_RESOURCE_MAX_MB",
"format": "number",
"default": "10",
"description": "The most one message carrying an attached file as an MCP resource holds, a binary file counted as its base64. MCP sends a resource whole, and a client drops a message past its own limit, 10 MB for clients built on the TypeScript SDK. A larger one is refused, and read_file or save_file reads it instead. 0 is no limit."
},
{
"name": "MM_TOKEN",
"format": "string",
"isSecret": true,
"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."
},
{
"name": "MM_URL",
"format": "string",
"isRequired": true,
"description": "The address you open Mattermost at, such as https://chat.example.com."
}
]
},
{
"version": "0.4.0",
"transport": {
"type": "stdio"
},
"fileSha256": "0924bf140fa6da0d2073c3e4082322b6a2dace30f09d18411ed1814adcf6bea0",
"identifier": "https://github.com/vriesdemichael/mm-mcp/releases/download/v0.4.0/mm-mcp_0.4.0_linux_arm64.mcpb",
"registryType": "mcpb",
"environmentVariables": [
{
"name": "MM_MCP_ALLOW_WRITES",
"format": "boolean",
"default": "false",
"description": "Offer the tools that post and change things. Your client's own approval of each call decides, and mm-mcp checks what each change others see states before it acts."
},
{
"name": "MM_MCP_CA_FILE",
"format": "filepath",
"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",
"format": "filepath",
"description": "Where save_file writes attachments. Leave it empty for your Downloads directory."
},
{
"name": "MM_MCP_ELICITATION_OPT_IN",
"format": "boolean",
"default": "false",
"description": "Your client's own approval of each call decides whether a post or another change others see goes ahead, and mm-mcp checks what each states. Turn this on to have mm-mcp ask you too, through a question your client shows: a convenience where it shows it, not a safeguard, since some clients answer it themselves."
},
{
"name": "MM_MCP_FORCE_HUMAN_IN_THE_LOOP_IN_CLAUDE_CODE",
"format": "boolean",
"default": "false",
"description": "Not with mm-mcp asks as well: 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",
"format": "boolean",
"default": "true",
"description": "Mark every post and edit the model writes with Mattermost's own marker for text written with AI."
},
{
"name": "MM_MCP_POST_FROM_VIEWS",
"format": "boolean",
"default": "true",
"description": "Where your app shows mm-mcp's views, a post the model proposes as your draft can be posted from the view with Post. Off, the draft waits in Mattermost for you to send."
},
{
"name": "MM_MCP_RESOURCE_MAX_MB",
"format": "number",
"default": "10",
"description": "The most one message carrying an attached file as an MCP resource holds, a binary file counted as its base64. MCP sends a resource whole, and a client drops a message past its own limit, 10 MB for clients built on the TypeScript SDK. A larger one is refused, and read_file or save_file reads it instead. 0 is no limit."
},
{
"name": "MM_TOKEN",
"format": "string",
"isSecret": true,
"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."
},
{
"name": "MM_URL",
"format": "string",
"isRequired": true,
"description": "The address you open Mattermost at, such as https://chat.example.com."
}
]
},
{
"version": "0.4.0",
"transport": {
"type": "stdio"
},
"fileSha256": "c473c72864efb1a2c25454bb6126c693de29e09653e2af1fbfe958c32b8da947",
"identifier": "https://github.com/vriesdemichael/mm-mcp/releases/download/v0.4.0/mm-mcp_0.4.0_windows_amd64.mcpb",
"registryType": "mcpb",
"environmentVariables": [
{
"name": "MM_MCP_ALLOW_WRITES",
"format": "boolean",
"default": "false",
"description": "Offer the tools that post and change things. Your client's own approval of each call decides, and mm-mcp checks what each change others see states before it acts."
},
{
"name": "MM_MCP_CA_FILE",
"format": "filepath",
"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",
"format": "filepath",
"description": "Where save_file writes attachments. Leave it empty for your Downloads directory."
},
{
"name": "MM_MCP_ELICITATION_OPT_IN",
"format": "boolean",
"default": "false",
"description": "Your client's own approval of each call decides whether a post or another change others see goes ahead, and mm-mcp checks what each states. Turn this on to have mm-mcp ask you too, through a question your client shows: a convenience where it shows it, not a safeguard, since some clients answer it themselves."
},
{
"name": "MM_MCP_FORCE_HUMAN_IN_THE_LOOP_IN_CLAUDE_CODE",
"format": "boolean",
"default": "false",
"description": "Not with mm-mcp asks as well: 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",
"format": "boolean",
"default": "true",
"description": "Mark every post and edit the model writes with Mattermost's own marker for text written with AI."
},
{
"name": "MM_MCP_POST_FROM_VIEWS",
"format": "boolean",
"default": "true",
"description": "Where your app shows mm-mcp's views, a post the model proposes as your draft can be posted from the view with Post. Off, the draft waits in Mattermost for you to send."
},
{
"name": "MM_MCP_RESOURCE_MAX_MB",
"format": "number",
"default": "10",
"description": "The most one message carrying an attached file as an MCP resource holds, a binary file counted as its base64. MCP sends a resource whole, and a client drops a message past its own limit, 10 MB for clients built on the TypeScript SDK. A larger one is refused, and read_file or save_file reads it instead. 0 is no limit."
},
{
"name": "MM_TOKEN",
"format": "string",
"isSecret": true,
"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."
},
{
"name": "MM_URL",
"format": "string",
"isRequired": true,
"description": "The address you open Mattermost at, such as https://chat.example.com."
}
]
},
{
"version": "0.4.0",
"transport": {
"type": "stdio"
},
"fileSha256": "5a37b08c0872877c233f43ed75ffd3dfad5920c9c4b6aa4245ddeae892896e20",
"identifier": "https://github.com/vriesdemichael/mm-mcp/releases/download/v0.4.0/mm-mcp_0.4.0_windows_arm64.mcpb",
"registryType": "mcpb",
"environmentVariables": [
{
"name": "MM_MCP_ALLOW_WRITES",
"format": "boolean",
"default": "false",
"description": "Offer the tools that post and change things. Your client's own approval of each call decides, and mm-mcp checks what each change others see states before it acts."
},
{
"name": "MM_MCP_CA_FILE",
"format": "filepath",
"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",
"format": "filepath",
"description": "Where save_file writes attachments. Leave it empty for your Downloads directory."
},
{
"name": "MM_MCP_ELICITATION_OPT_IN",
"format": "boolean",
"default": "false",
"description": "Your client's own approval of each call decides whether a post or another change others see goes ahead, and mm-mcp checks what each states. Turn this on to have mm-mcp ask you too, through a question your client shows: a convenience where it shows it, not a safeguard, since some clients answer it themselves."
},
{
"name": "MM_MCP_FORCE_HUMAN_IN_THE_LOOP_IN_CLAUDE_CODE",
"format": "boolean",
"default": "false",
"description": "Not with mm-mcp asks as well: 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",
"format": "boolean",
"default": "true",
"description": "Mark every post and edit the model writes with Mattermost's own marker for text written with AI."
},
{
"name": "MM_MCP_POST_FROM_VIEWS",
"format": "boolean",
"default": "true",
"description": "Where your app shows mm-mcp's views, a post the model proposes as your draft can be posted from the view with Post. Off, the draft waits in Mattermost for you to send."
},
{
"name": "MM_MCP_RESOURCE_MAX_MB",
"format": "number",
"default": "10",
"description": "The most one message carrying an attached file as an MCP resource holds, a binary file counted as its base64. MCP sends a resource whole, and a client drops a message past its own limit, 10 MB for clients built on the TypeScript SDK. A larger one is refused, and read_file or save_file reads it instead. 0 is no limit."
},
{
"name": "MM_TOKEN",
"format": "string",
"isSecret": true,
"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."
},
{
"name": "MM_URL",
"format": "string",
"isRequired": true,
"description": "The address you open Mattermost at, such as https://chat.example.com."
}
]
}
],
"repository": {
"url": "https://github.com/vriesdemichael/mm-mcp",
"source": "github"
},
"description": "Read, search and post in Mattermost as yourself or a bot."
}
}