Search / io.github.vriesdemichael/mm-mcp
Mattermost
L0· runs locallyRead, search and post in Mattermost as yourself or a bot.
v0.3.1 · active · repository · descriptor JSON · versions
Search / io.github.vriesdemichael/mm-mcp
L0· runs locallyRead, search and post in Mattermost as yourself or a bot.
v0.3.1 · active · repository · descriptor JSON · versions
{
"bundle": "https://github.com/vriesdemichael/mm-mcp/releases/download/v0.3.1/mm-mcp_0.3.1_darwin_amd64.mcpb",
"registry_type": "mcpb",
"note": "Install through the client's bundle installer; no command line form."
}{
"bundle": "https://github.com/vriesdemichael/mm-mcp/releases/download/v0.3.1/mm-mcp_0.3.1_darwin_amd64.mcpb",
"registry_type": "mcpb",
"note": "Install through the client's bundle installer; no command line form."
}{
"bundle": "https://github.com/vriesdemichael/mm-mcp/releases/download/v0.3.1/mm-mcp_0.3.1_darwin_amd64.mcpb",
"registry_type": "mcpb",
"note": "Install through the client's bundle installer; no command line form."
}{
"bundle": "https://github.com/vriesdemichael/mm-mcp/releases/download/v0.3.1/mm-mcp_0.3.1_darwin_amd64.mcpb",
"registry_type": "mcpb",
"note": "Install through the client's bundle installer; no command line form."
}{
"bundle": "https://github.com/vriesdemichael/mm-mcp/releases/download/v0.3.1/mm-mcp_0.3.1_darwin_amd64.mcpb",
"registry_type": "mcpb",
"note": "Install through the client's bundle installer; no command line form."
}{
"bundle": "https://github.com/vriesdemichael/mm-mcp/releases/download/v0.3.1/mm-mcp_0.3.1_darwin_amd64.mcpb",
"registry_type": "mcpb",
"note": "Install through the client's bundle installer; no command line form."
}{
"bundle": "https://github.com/vriesdemichael/mm-mcp/releases/download/v0.3.1/mm-mcp_0.3.1_darwin_amd64.mcpb",
"registry_type": "mcpb",
"note": "Install through the client's bundle installer; no command line form."
}{
"bundle": "https://github.com/vriesdemichael/mm-mcp/releases/download/v0.3.1/mm-mcp_0.3.1_darwin_amd64.mcpb",
"registry_type": "mcpb",
"note": "Install through the client's bundle installer; no command line form."
}Not scored: fewer than three checks apply, usually because no remote answered a credential-free probe or the server is a local package.
protocol.modern, protocol.stateless, protocol.transport, protocol.list_ttlno remote answered a protocol handshake (not probed yet, unreachable, or local-only)auth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptions, tools.description_length, tools.schemas, tools.annotations, tools.directory_hints, tools.token_cost, tools.api_dumptool list unknown (behind auth, not probed, or empty)stability.changes, stability.rug_pulltool list unknowndeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packageNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo ~liveness-unmeasured +updated-8d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| package | registry | version | runtime | secrets |
|---|---|---|---|---|
https://github.com/vriesdemichael/mm-mcp/releases/download/v0.3.1/mm-mcp_0.3.1_darwin_amd64.mcpb | mcpb | 0.3.1 | – | MM_TOKEN |
https://github.com/vriesdemichael/mm-mcp/releases/download/v0.3.1/mm-mcp_0.3.1_darwin_arm64.mcpb | mcpb | 0.3.1 | – | MM_TOKEN |
https://github.com/vriesdemichael/mm-mcp/releases/download/v0.3.1/mm-mcp_0.3.1_linux_amd64.mcpb | mcpb | 0.3.1 | – | MM_TOKEN |
https://github.com/vriesdemichael/mm-mcp/releases/download/v0.3.1/mm-mcp_0.3.1_linux_arm64.mcpb | mcpb | 0.3.1 | – | MM_TOKEN |
https://github.com/vriesdemichael/mm-mcp/releases/download/v0.3.1/mm-mcp_0.3.1_windows_amd64.mcpb | mcpb | 0.3.1 | – | MM_TOKEN |
https://github.com/vriesdemichael/mm-mcp/releases/download/v0.3.1/mm-mcp_0.3.1_windows_arm64.mcpb | mcpb | 0.3.1 | – | MM_TOKEN |
No tools observed. Local packages are never executed by the registry.
Schemas: list_tools.
{
"name": "io.github.vriesdemichael/mm-mcp",
"title": "Mattermost",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"version": "0.3.1",
"packages": [
{
"version": "0.3.1",
"transport": {
"type": "stdio"
},
"fileSha256": "ac328b61688dee17c21327843e8f10d8cd4828d9a30a41bb1faa64da93481a34",
"identifier": "https://github.com/vriesdemichael/mm-mcp/releases/download/v0.3.1/mm-mcp_0.3.1_darwin_amd64.mcpb",
"registryType": "mcpb",
"environmentVariables": [
{
"name": "MM_MCP_ALLOW_WRITES",
"format": "boolean",
"default": "false",
"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",
"format": "boolean",
"default": "true",
"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",
"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_FORCE_HUMAN_IN_THE_LOOP_IN_CLAUDE_CODE",
"format": "boolean",
"default": "false",
"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",
"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_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.3.1",
"transport": {
"type": "stdio"
},
"fileSha256": "09185a238d78b719ee888f27798a3d5318a7ab27f32f00627dcd7886d35e9a11",
"identifier": "https://github.com/vriesdemichael/mm-mcp/releases/download/v0.3.1/mm-mcp_0.3.1_darwin_arm64.mcpb",
"registryType": "mcpb",
"environmentVariables": [
{
"name": "MM_MCP_ALLOW_WRITES",
"format": "boolean",
"default": "false",
"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",
"format": "boolean",
"default": "true",
"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",
"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_FORCE_HUMAN_IN_THE_LOOP_IN_CLAUDE_CODE",
"format": "boolean",
"default": "false",
"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",
"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_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.3.1",
"transport": {
"type": "stdio"
},
"fileSha256": "44b48d1768730d045f8bf0999c55f4ba3b61c599d40542968dab7b580fb72a34",
"identifier": "https://github.com/vriesdemichael/mm-mcp/releases/download/v0.3.1/mm-mcp_0.3.1_linux_amd64.mcpb",
"registryType": "mcpb",
"environmentVariables": [
{
"name": "MM_MCP_ALLOW_WRITES",
"format": "boolean",
"default": "false",
"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",
"format": "boolean",
"default": "true",
"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",
"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_FORCE_HUMAN_IN_THE_LOOP_IN_CLAUDE_CODE",
"format": "boolean",
"default": "false",
"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",
"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_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.3.1",
"transport": {
"type": "stdio"
},
"fileSha256": "67b76ebf21a5cbe94f4c0f8bd8a40af0cd8420fafb5e4f35d170945efb65fe9a",
"identifier": "https://github.com/vriesdemichael/mm-mcp/releases/download/v0.3.1/mm-mcp_0.3.1_linux_arm64.mcpb",
"registryType": "mcpb",
"environmentVariables": [
{
"name": "MM_MCP_ALLOW_WRITES",
"format": "boolean",
"default": "false",
"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",
"format": "boolean",
"default": "true",
"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",
"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_FORCE_HUMAN_IN_THE_LOOP_IN_CLAUDE_CODE",
"format": "boolean",
"default": "false",
"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",
"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_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.3.1",
"transport": {
"type": "stdio"
},
"fileSha256": "3c84aaffa9195dbeb6a89a75f4076c32393c4027d22aa35f2da18cadbdb5199d",
"identifier": "https://github.com/vriesdemichael/mm-mcp/releases/download/v0.3.1/mm-mcp_0.3.1_windows_amd64.mcpb",
"registryType": "mcpb",
"environmentVariables": [
{
"name": "MM_MCP_ALLOW_WRITES",
"format": "boolean",
"default": "false",
"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",
"format": "boolean",
"default": "true",
"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",
"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_FORCE_HUMAN_IN_THE_LOOP_IN_CLAUDE_CODE",
"format": "boolean",
"default": "false",
"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",
"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_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.3.1",
"transport": {
"type": "stdio"
},
"fileSha256": "768430161e67c1171be58c2259a7492fbe6dab77c353a8d08430026ba6bad717",
"identifier": "https://github.com/vriesdemichael/mm-mcp/releases/download/v0.3.1/mm-mcp_0.3.1_windows_arm64.mcpb",
"registryType": "mcpb",
"environmentVariables": [
{
"name": "MM_MCP_ALLOW_WRITES",
"format": "boolean",
"default": "false",
"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",
"format": "boolean",
"default": "true",
"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",
"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_FORCE_HUMAN_IN_THE_LOOP_IN_CLAUDE_CODE",
"format": "boolean",
"default": "false",
"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",
"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_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."
}