使用说明
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 <repository-url> 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服务器。#<server_name> tools-列出可用工具<server_name>.#<server_name> call <tool_name> <json_arguments>-呼叫<tool_name>在…上<server_name>参数以JSON字符串形式提供。- 例子:
#my-server call echo '{"message": "Hello MCP!"}'
- 例子:
#<server_name> resources-列出可用资源<server_name>.#<server_name> prompts-列出可用的提示<server_name>.
后续步骤
- ⚙️ 可配置的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许可证获得许可-请参阅 许可证 文件以获取详细信息。