Mattermost MCP主机
Mattermost集成,连接到模型上下文协议(MCP)服务器,利用基于LangGraph的AI代理提供智能界面,直接在Mattermost中与用户交互和执行工具。
演示
1.Github Agent在支持通道中-搜索现有问题和PR,如果找不到,则创建新问题
2.使用Mattermost MCP服务器搜索互联网并发布到频道
在YouTube上滚动查看完整演示
特性
- 🤖 Langgraph代理集成:使用LangGraph代理来理解用户请求并编排响应。
- 🔌 MCP服务器集成:连接到中定义的多个MCP服务器
mcp-servers.json. - 🛠️ 动态工具加载:自动从连接的MCP服务器中发现工具,并将其提供给AI代理。将MCP工具转换为langchain结构化工具。
- 💬 线程感知对话:在Mattermost线程中保持对话上下文,以实现连贯的交互。
- 🔄 智能工具使用:AI代理可以决定何时使用可用工具(包括链接多个调用)来满足用户请求。
- 🔍 MCP能力发现:允许用户通过直接命令列出可用的服务器、工具、资源和提示。
- #️⃣ 直接命令界面:使用命令前缀直接与MCP服务器交互(默认值:
#).
概述
集成工作如下:
- Mattermost连接(
mattermost_client.py):通过API和WebSocket连接到Mattermost服务器,以侦听指定通道中的消息。 - MCP连接(
mcp_client.py):建立联系(主要是stdio)到中定义的每个MCP服务器src/mattermost_mcp_host/mcp-servers.json。它发现每台服务器上的可用工具。 - 代理初始化(
agent/llm_agent.py)A.LangGraphAgent创建、配置有所选LLM提供程序和来自所有连接的MCP服务器的动态加载工具。 - 消息处理(
main.py):
- 如果消息以命令前缀开头(#),它被解析为一个直接命令,用于列出服务器/工具或通过相应的 MCPClient. - 否则,消息(连同线程历史记录)将传递给 LangGraphAgent.
- 代理执行:代理处理请求,可能通过调用一个或多个MCP工具
MCPClient并生成响应。 - 响应交付:代理或命令执行的最终响应被发布回相应的Mattermost通道/线程。
设置
- 克隆存储库:
git clone
cd mattermost-mcp-host- 安装:
- 使用紫外线(推荐):
# Install uv if you don't have it yet
# curl -LsSf https://astral.sh/uv/install.sh | sh
# Activate venv
source .venv/bin/activate
# Install the package with uv
uv sync
# To install dev dependencies
uv sync --dev --all-extras- 配置环境(
.env文件):
复制 .env.example 并填写数值或 创建一个 .env 项目根目录中的文件(或设置环境变量):
# Mattermost Details
MATTERMOST_URL=http://your-mattermost-url
MATTERMOST_TOKEN=your-bot-token # Needs permissions to post, read channel, etc.
MATTERMOST_TEAM_NAME=your-team-name
MATTERMOST_CHANNEL_NAME=your-channel-name # Channel for the bot to listen in
# MATTERMOST_CHANNEL_ID= # Optional: Auto-detected if name is provided
# LLM Configuration (Azure OpenAI is default)
DEFAULT_PROVIDER=azure
AZURE_OPENAI_ENDPOINT=your-azure-endpoint
AZURE_OPENAI_API_KEY=your-azure-api-key
AZURE_OPENAI_DEPLOYMENT=your-deployment-name # e.g., gpt-4o
# AZURE_OPENAI_API_VERSION= # Optional, defaults provided
# Optional: Other providers (install with `[all]` extra)
# OPENAI_API_KEY=...
# ANTHROPIC_API_KEY=...
# GOOGLE_API_KEY=...
# Command Prefix
COMMAND_PREFIX=# 看 .env.example 更多选择。
- 配置MCP服务器:
编辑 src/mattermost_mcp_host/mcp-servers.json 要定义要连接的MCP服务器,请参阅 src/mattermost_mcp_host/mcp-servers-example.json. 根据服务器配置,您可能 npx, uvx, docker 安装在您的系统和路径中。
- 启动集成:
mattermost-mcp-host先决条件
- Python 3.13.1+
- uv包管理器
- Mattermost服务器实例
- 使用API代币的Mattermost Bot帐户
- 访问LLM API(Azure OpenAI)
可选的
- 在中配置了一个或多个MCP服务器
mcp-servers.json - Tavily网络搜索需要
TAVILY_API_KEY在……里面.env文件
在Mattermost中的使用
集成运行并连接后:
- 直接聊天: 只需在配置的频道或与机器人聊天。人工智能代理将根据需要使用工具进行响应。它在消息线程中维护上下文。
- 直接命令: 使用命令前缀(默认
#)具体行动:
- #help -显示帮助信息。 - #servers -列出已配置和连接的MCP服务器。 - # tools -列出可用工具 `. - # call -呼叫 在…上 参数以JSON字符串形式提供。 - 例子: #my-server call echo '{"message": "Hello MCP!"}' - # resources -列出可用资源 . - # prompts -列出可用的提示 `.
后续步骤
- ⚙️ 可配置的LLM后端:通过环境变量支持多个AI提供商(Azure OpenAI默认、OpenAI、Anthropic Claude、Google Gemini)。
Mattermost设置
- 创建Bot帐户
- 转到集成>Bot帐户>添加Bot帐户
- 给它起个名字和描述
- 将访问令牌保存在.env文件中
- 所需的Bot权限
- post_all
- create_post
- read_channel
- create_direct_channel
- read_user
- 将机器人添加到团队/频道
- 邀请机器人加入您的团队
- 将机器人添加到所需频道
故障排除
- 连接问题
- 验证Mattermost服务器是否正在运行
- 检查机器人令牌权限
- 确保正确的团队/频道名称
- AI提供商问题
- 验证API密钥
- 检查API配额和限制
- 验证对API端点的网络访问
- MCP服务器问题
- 检查服务器日志
- 验证服务器配置
- 确保安装了所需的依赖项并定义了环境变量
德莫斯
使用Github MCP服务器通过聊天创建问题
(在YouTube上)

贡献
请随时打开PR。
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
