使用说明
项目简介
MB-MCP (Model Context Protocol) 是一个 Python 包,旨在简化大型语言模型 (LLM) 与各种外部服务(如 Slack、Google Drive、GitHub、Atlassian、PostgreSQL、Brave Search 等)的集成。它通过模型上下文协议 (MCP) 提供统一的接口,使开发者能够轻松构建由 AI 驱动的应用程序,利用这些服务的强大功能。该项目包含多个预构建的服务连接器以及一个简易的Web仪表板,方便用户查询和使用这些服务。
主要功能点
- 多服务连接: 支持连接多种常用服务,包括 Slack, Google Drive, GitHub, Atlassian (Confluence & Jira), PostgreSQL, Brave Search 和文本格式化服务。
- Web仪表板: 提供一个简单的Web界面,用户可以通过该界面查询和与已连接的各种服务进行交互。
- 环境配置: 所有API密钥和凭据均通过 '.env' 文件进行管理,提高了安全性。
- 可编程接口: 允许开发者通过 Python 代码直接调用连接器,灵活构建自定义应用。
- 本地MCP服务器: 内置文本格式化MCP服务器,可直接运行,展示了MCP服务器的实现方式。
安装步骤
-
克隆仓库:
git clone https://github.com/bigmb/mb_mcp.git cd mb_mcp -
安装 Python 包: 确保已安装 Python 3.8 或更高版本。在项目根目录下运行:
pip install -e . -
配置环境变量: 复制 '.env.example' 文件并重命名为 '.env',然后编辑 '.env' 文件,填入所需的 API 密钥和凭据。
cp .env.example .env vim .env根据需要配置以下环境变量,例如 API 密钥、Slack Token、PostgreSQL 连接信息、Google Drive 凭据路径、GitHub Token、Atlassian (Confluence/Jira) 凭据、Brave Search API Key等。
服务器配置
MB-MCP 本身作为一个客户端框架,主要通过连接预先构建的 MCP 服务器 (以 Docker 镜像形式提供,例如 'mcp/slack', 'mcp/github' 等) 来实现服务集成。 对于不同的服务连接器 (如 'slack_connecter.py', 'github_connecter.py'),你需要配置对应的 MCP 服务器启动命令 (command) 和 参数 (args),以便客户端能够正确连接到 MCP 服务器。
以下是一些服务连接器对应的 MCP 服务器配置 示例 (JSON 格式):
1. Slack 连接器 (Slack Connector):
{ "server_name": "slack_server", "command": "sudo", "args": ["docker", "run", "-i", "--rm", "-e", "SLACK_BOT_TOKEN=你的Slack机器人Token", // 替换为你的Slack Bot Token "-e", "SLACK_TEAM_ID=你的Slack团队ID", // 替换为你的Slack团队ID "mcp/slack" // Slack MCP 服务器 Docker 镜像名称 ] }
注释:
- 'server_name': 服务器名称,可以自定义。
- 'command': 启动服务器的命令,这里使用 'sudo docker run' 运行 Docker 镜像。
- 'args': 命令参数列表。
- 'docker run -i --rm': 运行 Docker 容器,'-i' 表示交互模式,'--rm' 表示容器退出后自动删除。
- '-e "SLACK_BOT_TOKEN=..."': 设置 Slack Bot Token 环境变量传递给 Docker 容器中的 MCP 服务器。
- '-e "SLACK_TEAM_ID=..."': 设置 Slack Team ID 环境变量传递给 Docker 容器中的 MCP 服务器。
- '"mcp/slack"': 指定要运行的 Slack MCP 服务器 Docker 镜像。
2. GitHub 连接器 (GitHub Connector):
{ "server_name": "github_server", "command": "sudo", "args": ["docker", "run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN=你的GitHub个人访问令牌", // 替换为你的 GitHub Personal Access Token "mcp/github" // GitHub MCP 服务器 Docker 镜像名称 ] }
注释:
- 配置类似 Slack 连接器,主要区别在于环境变量和 Docker 镜像名称。
- '-e "GITHUB_PERSONAL_ACCESS_TOKEN=..."': 设置 GitHub Personal Access Token 环境变量。
- '"mcp/github"': 指定要运行的 GitHub MCP 服务器 Docker 镜像。
3. 本地格式化服务连接器 (Formatter Connector):
{ "server_name": "formatter_server", "command": "python", "args": ["-m", "mb_mcp.formatter_server"] // 运行本地 formatter_server.py 文件 }
注释:
- 'command': 直接使用 'python' 命令。
- 'args': 使用 '-m mb_mcp.formatter_server' 模块方式运行 'formatter_server.py' 文件,启动本地 MCP 服务器。
- 此配置不需要 Docker,直接运行 Python 代码。
注意:
- 以上配置示例中的 '你的Slack机器人Token', '你的Slack团队ID', '你的GitHub个人访问令牌' 等都需要替换为你自己的实际凭据。
- 实际使用时,你需要根据不同的服务连接器,参考 '*_connecter.py' 文件中的 'StdioServerParameters' 配置来确定正确的 'command' 和 'args'。
- 项目仓库中可能包含更多服务的 MCP 服务器 Docker 镜像 (例如 'mcp/gdrive', 'mcp/atlassian', 'mcp/postgres', 'mcp/brave-search'),你可以参考 Slack 和 GitHub 的配置方式进行配置。
基本使用方法
-
运行 Web 仪表板: 在项目根目录下运行以下命令启动 Flask Web 应用:
python -m mb_mcp.app然后访问 'http://localhost:5000',即可在 Web 界面上选择应用并提问。
-
通过 Python 代码使用连接器: 你可以参考 'mb_mcp' 目录下各个 '*_connecter.py' 文件的示例代码,例如 'slack_connecter.py' 的 'run_app' 函数,在你的 Python 代码中导入并调用这些函数,即可与相应的服务进行交互。
例如,使用 Slack 连接器查询频道更新:
import asyncio from mb_mcp.slack_connecter import run_app as run_slack_app async def main(): question = "Provide the recent updates in the channel in proper format: <channel_id>" # 替换为你的实际频道ID result = await run_slack_app(question) print(result['messages'][-1].content) if __name__ == "__main__": asyncio.run(main())替换 '<channel_id>' 为实际的 Slack 频道 ID,并确保 '.env' 文件中已配置正确的 Slack 凭据。
其他连接器 (如 'gdrive_connecter.py', 'github_connecter.py' 等) 的使用方法类似,只需导入相应的 'run_app' 函数并传入用户问题即可。
总结:
MB-MCP 提供了一个基于 MCP 协议的多服务集成框架,通过预构建的连接器和 MCP 服务器,简化了 LLM 应用与各种外部服务的交互。你可以通过 Web 仪表板或 Python 代码使用这些连接器,利用各种服务的功能来增强你的 LLM 应用。理解 MCP 服务器的配置方式是使用 MB-MCP 的关键。
信息
分类
AI与计算