与模型上下文协议(MCP)服务器集成的Mattermost插件,利用基于LangGraph的人工智能代理提供智能接口,以便在Mattermost中与用户交互并执行工具。


mcp-servers.json中定义的多个MCP服务器。#)直接与MCP服务器交互。集成工作流程如下:
mattermost_client.py):通过API和WebSocket连接到Mattermost服务器,监听指定频道的消息。mcp_client.py):建立到在src/mattermost_mcp_host/mcp-servers.json中定义的每个MCP服务器的连接(主要是stdio)。它发现每个服务器上的可用工具。agent/llm_agent.py):创建一个LangGraphAgent,配置选择的LLM提供商和从所有连接的MCP服务器动态加载的工具。main.py):
#)开头,则解析为直接命令,用于列出服务器/工具或通过相应的MCPClient调用特定工具。LangGraphAgent。MCPClient实例调用一个或多个MCP工具,并生成响应。克隆仓库:
git clone <repository-url>
cd mattermost-mcp-host
安装:
# 如果还没有安装uv,请先安装
# curl -LsSf https://astral.sh/uv/install.sh | sh
# 激活虚拟环境
source .venv/bin/activate
# 使用uv安装包
uv sync
# 安装开发依赖
uv sync --dev --all-extras
配置环境(.env文件):
复制.env.example并填写值或
在项目根目录创建一个.env文件(或设置环境变量):
# Mattermost详情
MATTERMOST_URL=http://your-mattermost-url
MATTERMOST_TOKEN=your-bot-token # 需要权限以发布、读取频道等
MATTERMOST_TEAM_NAME=your-team-name
MATTERMOST_CHANNEL_NAME=your-channel-name # 机器人监听的频道
# MATTERMOST_CHANNEL_ID= # 可选:如果提供了名称则自动检测
# LLM配置(Azure OpenAI是默认)
DEFAULT_PROVIDER=azure
AZURE_OPENAI_ENDPOINT=your-azure-endpoint
AZURE_OPEN_ API_KEY=your-azure-api-key
AZURE_OPENAI_DEPLOYMENT=your-deployment-name # 例如,gpt-4o
# AZURE_OPENAI_API_VERSION= # 可选,默认值已提供
# 可选:其他提供商(使用`[all]`额外安装)
# OPENAI_API_KEY=...
# ANTHROPIC_API_KEY=...
# GOOGLE_API_KEY=...
# 命令前缀
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
mcp-servers.json中配置的一个或多个MCP服务器.env文件中设置TAVILY_API_KEY一旦集成运行并连接:
#)进行特定操作:
#help - 显示帮助信息。#servers - 列出配置并连接的MCP服务器。#<server_name> tools - 列出<server_name>的可用工具。#<server_name> call <tool_name> <json_arguments> - 调用<server_name>上的<tool_name>,参数作为JSON字符串提供。
#my-server call echo '{"message": "Hello MCP!"}'#<server_name> resources - 列出<server_name>的可用资源。#<server_name> prompts - 列出<server_name>的可用提示。
请随时提交PR。
本项目采用MIT许可证 - 详情请参阅LICENSE文件。