{"name":"io.github.vriesdemichael/mm-mcp","slug":"vriesdemichael-mm-mcp","title":"mm-mcp for Mattermost","description":"Read, search and post in Mattermost as yourself or a bot.","url":"https://mcp.market/server/vriesdemichael-mm-mcp","rating":null,"grade":"B","score":73,"certified":false,"status":"active","category":"search","tags":["search"],"presence":{"score":15,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-10-09T08:24:55.000Z","license":"Apache-2.0"},"uptime":null,"claimed":false,"transport":"mcpb","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/vriesdemichael/mm-mcp","website":null,"version":"0.4.1","remotes":[],"packages":[{"registryType":"mcpb","identifier":"https://github.com/vriesdemichael/mm-mcp/releases/download/v0.4.1/mm-mcp_0.4.1_darwin_amd64.mcpb","version":"0.4.1","fileSha256":"1a576be11d921781c5207875eec474c6f5289fd11392d232f5aff2082f30ab92","transport":{"type":"stdio"},"environmentVariables":[{"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.","format":"boolean","default":"false","name":"MM_MCP_ALLOW_WRITES"},{"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.","format":"filepath","name":"MM_MCP_CA_FILE"},{"description":"Where save_file writes attachments. Leave it empty for your Downloads directory.","format":"filepath","name":"MM_MCP_DOWNLOAD_DIR"},{"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.","format":"boolean","default":"false","name":"MM_MCP_ELICITATION_OPT_IN"},{"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.","format":"boolean","default":"false","name":"MM_MCP_FORCE_HUMAN_IN_THE_LOOP_IN_CLAUDE_CODE"},{"description":"Mark every post and edit the model writes with Mattermost's own marker for text written with AI.","format":"boolean","default":"true","name":"MM_MCP_MARK_AI_GENERATED"},{"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.","format":"boolean","default":"true","name":"MM_MCP_POST_FROM_VIEWS"},{"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.","format":"number","default":"10","name":"MM_MCP_RESOURCE_MAX_MB"},{"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.","format":"string","isSecret":true,"name":"MM_TOKEN"},{"description":"The address you open Mattermost at, such as https://chat.example.com.","isRequired":true,"format":"string","name":"MM_URL"}]},{"registryType":"mcpb","identifier":"https://github.com/vriesdemichael/mm-mcp/releases/download/v0.4.1/mm-mcp_0.4.1_darwin_arm64.mcpb","version":"0.4.1","fileSha256":"0d46c44fca8af056e1cdbde731587adeb3e4856f649c7dd4d89539b991344abd","transport":{"type":"stdio"},"environmentVariables":[{"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.","format":"boolean","default":"false","name":"MM_MCP_ALLOW_WRITES"},{"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.","format":"filepath","name":"MM_MCP_CA_FILE"},{"description":"Where save_file writes attachments. Leave it empty for your Downloads directory.","format":"filepath","name":"MM_MCP_DOWNLOAD_DIR"},{"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.","format":"boolean","default":"false","name":"MM_MCP_ELICITATION_OPT_IN"},{"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.","format":"boolean","default":"false","name":"MM_MCP_FORCE_HUMAN_IN_THE_LOOP_IN_CLAUDE_CODE"},{"description":"Mark every post and edit the model writes with Mattermost's own marker for text written with AI.","format":"boolean","default":"true","name":"MM_MCP_MARK_AI_GENERATED"},{"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.","format":"boolean","default":"true","name":"MM_MCP_POST_FROM_VIEWS"},{"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.","format":"number","default":"10","name":"MM_MCP_RESOURCE_MAX_MB"},{"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.","format":"string","isSecret":true,"name":"MM_TOKEN"},{"description":"The address you open Mattermost at, such as https://chat.example.com.","isRequired":true,"format":"string","name":"MM_URL"}]},{"registryType":"mcpb","identifier":"https://github.com/vriesdemichael/mm-mcp/releases/download/v0.4.1/mm-mcp_0.4.1_linux_amd64.mcpb","version":"0.4.1","fileSha256":"7d2ef9c66c8783af3fd51e2b9bf4605e3710375e66f53a036e3a6f296c5b6b7a","transport":{"type":"stdio"},"environmentVariables":[{"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.","format":"boolean","default":"false","name":"MM_MCP_ALLOW_WRITES"},{"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.","format":"filepath","name":"MM_MCP_CA_FILE"},{"description":"Where save_file writes attachments. Leave it empty for your Downloads directory.","format":"filepath","name":"MM_MCP_DOWNLOAD_DIR"},{"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.","format":"boolean","default":"false","name":"MM_MCP_ELICITATION_OPT_IN"},{"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.","format":"boolean","default":"false","name":"MM_MCP_FORCE_HUMAN_IN_THE_LOOP_IN_CLAUDE_CODE"},{"description":"Mark every post and edit the model writes with Mattermost's own marker for text written with AI.","format":"boolean","default":"true","name":"MM_MCP_MARK_AI_GENERATED"},{"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.","format":"boolean","default":"true","name":"MM_MCP_POST_FROM_VIEWS"},{"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.","format":"number","default":"10","name":"MM_MCP_RESOURCE_MAX_MB"},{"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.","format":"string","isSecret":true,"name":"MM_TOKEN"},{"description":"The address you open Mattermost at, such as https://chat.example.com.","isRequired":true,"format":"string","name":"MM_URL"}]},{"registryType":"mcpb","identifier":"https://github.com/vriesdemichael/mm-mcp/releases/download/v0.4.1/mm-mcp_0.4.1_linux_arm64.mcpb","version":"0.4.1","fileSha256":"5a599ee45c59bed4334f0b5759013f04959f7f9560d3c4b77761859f4910b3f4","transport":{"type":"stdio"},"environmentVariables":[{"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.","format":"boolean","default":"false","name":"MM_MCP_ALLOW_WRITES"},{"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.","format":"filepath","name":"MM_MCP_CA_FILE"},{"description":"Where save_file writes attachments. Leave it empty for your Downloads directory.","format":"filepath","name":"MM_MCP_DOWNLOAD_DIR"},{"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.","format":"boolean","default":"false","name":"MM_MCP_ELICITATION_OPT_IN"},{"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.","format":"boolean","default":"false","name":"MM_MCP_FORCE_HUMAN_IN_THE_LOOP_IN_CLAUDE_CODE"},{"description":"Mark every post and edit the model writes with Mattermost's own marker for text written with AI.","format":"boolean","default":"true","name":"MM_MCP_MARK_AI_GENERATED"},{"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.","format":"boolean","default":"true","name":"MM_MCP_POST_FROM_VIEWS"},{"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.","format":"number","default":"10","name":"MM_MCP_RESOURCE_MAX_MB"},{"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.","format":"string","isSecret":true,"name":"MM_TOKEN"},{"description":"The address you open Mattermost at, such as https://chat.example.com.","isRequired":true,"format":"string","name":"MM_URL"}]},{"registryType":"mcpb","identifier":"https://github.com/vriesdemichael/mm-mcp/releases/download/v0.4.1/mm-mcp_0.4.1_windows_amd64.mcpb","version":"0.4.1","fileSha256":"1b45ae4f63e44b3296dad29e885f02e1f8114273094f0e69296fbec477f7fe82","transport":{"type":"stdio"},"environmentVariables":[{"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.","format":"boolean","default":"false","name":"MM_MCP_ALLOW_WRITES"},{"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.","format":"filepath","name":"MM_MCP_CA_FILE"},{"description":"Where save_file writes attachments. Leave it empty for your Downloads directory.","format":"filepath","name":"MM_MCP_DOWNLOAD_DIR"},{"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.","format":"boolean","default":"false","name":"MM_MCP_ELICITATION_OPT_IN"},{"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.","format":"boolean","default":"false","name":"MM_MCP_FORCE_HUMAN_IN_THE_LOOP_IN_CLAUDE_CODE"},{"description":"Mark every post and edit the model writes with Mattermost's own marker for text written with AI.","format":"boolean","default":"true","name":"MM_MCP_MARK_AI_GENERATED"},{"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.","format":"boolean","default":"true","name":"MM_MCP_POST_FROM_VIEWS"},{"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.","format":"number","default":"10","name":"MM_MCP_RESOURCE_MAX_MB"},{"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.","format":"string","isSecret":true,"name":"MM_TOKEN"},{"description":"The address you open Mattermost at, such as https://chat.example.com.","isRequired":true,"format":"string","name":"MM_URL"}]},{"registryType":"mcpb","identifier":"https://github.com/vriesdemichael/mm-mcp/releases/download/v0.4.1/mm-mcp_0.4.1_windows_arm64.mcpb","version":"0.4.1","fileSha256":"d9658dfac0b7cc8dd5a91c86a07e566a2fe23c0b9ae4943b9191bbb98c42720e","transport":{"type":"stdio"},"environmentVariables":[{"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.","format":"boolean","default":"false","name":"MM_MCP_ALLOW_WRITES"},{"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.","format":"filepath","name":"MM_MCP_CA_FILE"},{"description":"Where save_file writes attachments. Leave it empty for your Downloads directory.","format":"filepath","name":"MM_MCP_DOWNLOAD_DIR"},{"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.","format":"boolean","default":"false","name":"MM_MCP_ELICITATION_OPT_IN"},{"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.","format":"boolean","default":"false","name":"MM_MCP_FORCE_HUMAN_IN_THE_LOOP_IN_CLAUDE_CODE"},{"description":"Mark every post and edit the model writes with Mattermost's own marker for text written with AI.","format":"boolean","default":"true","name":"MM_MCP_MARK_AI_GENERATED"},{"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.","format":"boolean","default":"true","name":"MM_MCP_POST_FROM_VIEWS"},{"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.","format":"number","default":"10","name":"MM_MCP_RESOURCE_MAX_MB"},{"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.","format":"string","isSecret":true,"name":"MM_TOKEN"},{"description":"The address you open Mattermost at, such as https://chat.example.com.","isRequired":true,"format":"string","name":"MM_URL"}]}],"tools":[],"scan":null,"grade_history":[],"reviews":[]}