使用说明

项目简介

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服务器的实现方式。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/bigmb/mb_mcp.git
    cd mb_mcp
  2. 安装 Python 包: 确保已安装 Python 3.8 或更高版本。在项目根目录下运行:

    pip install -e .
  3. 配置环境变量: 复制 '.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 的配置方式进行配置。

基本使用方法

  1. 运行 Web 仪表板: 在项目根目录下运行以下命令启动 Flask Web 应用:

    python -m mb_mcp.app

    然后访问 'http://localhost:5000',即可在 Web 界面上选择应用并提问。

  2. 通过 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与计算