Mattermost MCP Python
  
用于Mattermost集成的全面模型上下文协议(MCP)服务器实现,使AI助手能够与Mattermost渠道、用户和消息传递功能无缝交互。
🚀 快速开始
Docker Compose(推荐)
git clone [Repository](https://github.com/cronus42/mattermost-mcp-python.git)
cd mattermost-mcp-python
cp .env.example .env
# Edit .env with your Mattermost configuration
docker-compose up -d🔗
手动安装
pip install mattermost-mcp-python
python -m mcp_mattermost目录
- - Python安装
- 🔌 MCP服务器 - 🌐 高级HTTP客户端 - 📊 类型型号 - 🔧 域服务 - 📡 实时能力 - 🛠️ 开发者体验 - 🚀 CI/CD管道
- 💬 消息传递 - 🏗️ 渠道管理 - 👥 用户操作 - 📁 文件处理
✨ 特性
🔌 MCP服务器
- 完整模型上下文协议服务器实现
- 支持WebSocket的实时流媒体资源
- REST API轮询可靠性回退
- 包含20多种工具的综合工具目录
🌐 高级HTTP客户端
- 异步HTTP客户端,具有自动重试和指数回退功能
- 内置速率限制和断路器模式
- 全面的错误处理和记录
- SSL/TLS支持证书验证
📊 类型型号
- 所有Mattermost实体的完整Pydantic模型
- 运行时验证和序列化
- 根据Mattermost官方规范生成OpenAPI模式
- 类型安全API交互
🔧 域服务
- 用户服务:用户管理、身份验证、搜索和配置文件
- 团队服务:团队运营、成员管理和邀请
- 频道服务:通道CRUD、成员资格和统计信息
- 邮政服务:帖子创建、编辑、搜索、反应和帖子
- 文件服务:文件上传、下载、元数据和附件管理
📡 实时能力
- WebSocket流媒体实时更新
- 基于资源的流媒体架构
- 自动重新连接和故障转移
- 可配置的轮询间隔
🛠️ 开发者体验
- 完整的类型提示和IDE支持
- 使用自定义异常类型进行全面的错误处理
- 带有关联ID的结构化日志记录
- pytest具有广泛的测试覆盖率
- 带有GitHub操作的完整CI/CD管道
🚀 CI/CD管道
- 自动植绒(片状8,黑色,isort)
- 在Python 3.8-3.12中使用mypy进行类型检查
- 使用pytest和覆盖率进行全面测试
- 发布时自动发布PyPI
- 用于开发的预提交挂钩
安装
- 克隆存储库:
git clone https://github.com/cronus42/mattermost-mcp-python.git
cd mattermost-mcp-python- 创建并激活虚拟环境:
python3 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate- 安装依赖项:
pip install -r requirements.txt- 设置环境变量:
cp .env.example .env
# Edit .env with your Mattermost configuration配置
复制 .env.example 向 .env 并配置以下变量:
MATTERMOST_URL:您的Mattermost实例URLMATTERMOST_TOKEN:您的Mattermest API代币MATTERMOST_TEAM_ID:要连接的团队ID(可选)
📖 文档
- 📚 完整的文件 -完整文档索引
- 🚀 快速入门指南 -5分钟后开始跑步
- 🏗️ 架构概述 -系统设计和组件
- 🛠️ 工具目录 -所有可用的MCP工具
- 📝 使用示例 -实用代码示例
- ⚙️ 配置指南 -全面配置
- **** -生产就绪设置
🚀 快速开始
选项1:Docker Compose(推荐)
# Clone and setup
git clone [Repository](https://github.com/cronus42/mattermost-mcp-python.git)
cd mattermost-mcp-python
cp .env.example .env
docker-compose up -d
# Edit .env with your Mattermost configuration
# Then start all services:
# Access:
# - **Mattermost**: [localhost:8065](http://localhost:8065)
# - **MCP Server**: [localhost:3000](http://localhost:3000)
# - **Health Check**: [localhost:3000/health](http://localhost:3000/health)选项2:Python安装
pip install mattermost-mcp-python
# Set environment variables
export MATTERMOST_URL="https://your-mattermost.com"
export MATTERMOST_TOKEN="your-bot-token"
export MATTERMOST_TEAM_ID="your-team-id"
# Run the server
python -m mcp_mattermost🛠️ 可用工具
用于Mattermost集成的MCP工具:
💬 消息传递
send_message-向频道发送消息reply_to_thread-回复消息线程get_channel_history-检索消息历史记录add_reaction/remove_reaction-表情符号反应pin_message/unpin_message-固定重要消息
🏗️ 渠道管理
list_channels-列出团队频道create_channel-创建新频道add_user_to_channel-管理频道成员资格get_channel_stats-渠道统计search_channels-按名称/主题查找频道
👥 用户操作
get_user/search_users-用户信息get_user_status-用户状态
📁 文件处理
upload_file-上传文件附件get_file_info-文件元数据download_file-下载文件
💡 使用示例
发送信息
import asyncio
from mcp_client import MCPClient
async def send_hello():
async with MCPClient("http://localhost:3000") as client:
result = await client.call_tool("send_message", {
"channel_id": "your-channel-id",
"message": "Hello, Mattermost! 🎉"
})
print(f"Message sent: {result['post_id']}")
asyncio.run(send_hello())创建频道并添加用户
async def setup_project():
async with MCPClient("http://localhost:3000") as client:
# Create private channel
channel = await client.call_tool("create_channel", {
"team_id": "your-team-id",
"name": "project-alpha",
"display_name": "Project Alpha",
"type": "P", # Private
"purpose": "Alpha project discussions"
})
# Add team members
for user_id in ["user1", "user2", "user3"]:
await client.call_tool("add_user_to_channel", {
"channel_id": channel["channel_id"],
"user_id": user_id
})
# Welcome message
await client.call_tool("send_message", {
"channel_id": channel["channel_id"],
"message": "🚀 Welcome to Project Alpha!"
})实时监控
async def monitor_activity():
async with MCPClient("http://localhost:3000") as client:
# Subscribe to real-time updates
async for update in client.subscribe_to_resource("channel_posts"):
if "help" in update["message"].lower():
# Auto-respond to help requests
await client.call_tool("add_reaction", {
"post_id": update["post_id"],
"emoji_name": "eyes",
"user_id": "bot-user-id"
})🎯 用例
- 🤖 聊天机器人和人工智能助理 -构建对话界面
- 📢 通知和警报 -自动系统通知
- 🔄 工作流程自动化 -Mattermost的过程自动化
- 📊 监控仪表板 -实时活动监控
- 🔗 系统集成 -连接外部服务
- 📋 报告生成 -自动向渠道报告
- 🎮 交互式命令 -自定义斜线命令和工作流
🏗️ 建筑
graph TB
Client[AI Assistant/App] --> MCP[MCP Protocol]
MCP --> Server[MCP Mattermost Server]
Server --> Tools[Tool Registry]
Server --> Resources[Resource Registry]
Tools --> Services[Domain Services]
Resources --> WebSocket[WebSocket Client]
Services --> HTTP[HTTP Client]
HTTP --> Mattermost[Mattermost API]
WebSocket --> Mattermost关键部件:
- 工具注册表 -用于Mattermost运营的20多种MCP工具
- 资源注册表 -实时流媒体资源
- 域服务 -高级业务逻辑层
- HTTP客户端 -具有重试/速率限制的强大API客户端
- WebSocket客户端 -实时事件流
发展
安装开发依赖项:
pip install -r requirements-dev.txt运行测试:
pytest贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
许可证
\[在此处添加您的许可证信息\]
支持
有关问题和疑问,请在 .
______________________________________________________________________
