thirdbrain mcp openai agent

使用说明

项目简介

ThirdBrAIn MCP OpenAI Agent 是一个代理服务,它作为 OpenAI 兼容的语言模型和 Model Context Protocol (MCP) 服务器之间的桥梁。该 Agent 允许 OpenAI 等模型利用 MCP 服务器提供的工具和资源,从而扩展其在数据访问、外部功能调用等方面的能力。通过集成 MCP 服务器,该 Agent 可以为 LLM 提供更丰富的上下文信息和更强大的功能执行能力。

主要功能点

  • MCP 服务器集成: 能够连接和管理多种 MCP 服务器,例如 Memory, Compute, Fetch 等,从而利用这些服务器提供的资源和工具。
  • OpenAI 工具桥接: 将 MCP 服务器提供的工具转化为 OpenAI 模型可以理解和调用的函数形式,使得模型能够通过函数调用来使用这些工具。
  • 动态服务器配置: 支持通过聊天命令动态添加、删除、启用和禁用 MCP 服务器的配置,方便灵活地管理和调整工具集。
  • 会话管理: 通过 Supabase 数据库存储和管理对话历史,为 Agent 提供上下文记忆能力。
  • API 鉴权: 提供 API 密钥 (Bearer Token) 鉴权机制,保障服务安全。
  • Slash 命令管理: 内置一系列 Slash 命令,用于在聊天交互中直接管理 MCP 服务器配置和查看可用功能。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/cbruyndoncx/thirdbrain-mcp-openai-agent
    cd thirdbrain-mcp-openai-agent
  2. 安装 Python 3.12 及依赖: 确保您的系统已安装 Python 3.12 或更高版本,并使用 pip 安装项目依赖。
    pip install -r requirements.txt
  3. 配置 Supabase: 在项目根目录下,复制 '.env.example' 文件并重命名为 '.env',然后编辑 '.env' 文件,填入您的 Supabase 项目 URL 和 Service Key。
    mv .env.example .env
    # 编辑 .env 文件,填入 SUPABASE_URL 和 SUPABASE_SERVICE_KEY
  4. 配置 OpenAI 或 DeepSeek API Key (可选): 如果您计划使用 OpenAI 或 DeepSeek 模型,请在 '.env' 文件中配置相应的 API 密钥和模型信息。如果您使用 Ollama 等本地模型,则可能无需 API Key。根据 '.env' 文件中的 'SELECTED' 变量选择配置 OpenAI 或 DeepSeek 的相关参数。
    # 编辑 .env 文件,根据 SELECTED 变量配置 OpenAI 或 DEEPSEEK 的 URL, API_KEY, MODEL
  5. 配置 API Bearer Token: 为了保护 API 接口,请在 '.env' 文件中设置 'API_BEARER_TOKEN' 环境变量,用于 API 请求的身份验证。
    # 编辑 .env 文件,设置 API_BEARER_TOKEN
  6. 配置 MCP 服务器: 编辑 'mcp_config.json' 文件,配置您希望 Agent 连接的 MCP 服务器信息。您可以配置多个服务器,例如 Memory, Compute, Fetch 等。

服务器配置

MCP 客户端需要配置 MCP 服务器的启动命令及其参数,以便建立连接。在 'mcp_config.json' 文件中,您可以配置多个 MCP 服务器。以下是一个示例配置,展示了如何配置名为 "memory" 和 "compute" 的 MCP 服务器:

{
  "mcpServers": {
    "memory": {  // 服务器名称:memory
      "command": "docker",  // 启动命令:docker
      "args": ["run", "-i", "--rm", "mcp/memory"],  // 命令参数:运行 mcp/memory docker 镜像
      "env": {},  // 环境变量(可选,此处为空)
      "enable": true // 是否启用该服务器,true 为启用,false 为禁用
    },
    "compute": {  // 服务器名称:compute
      "command": "docker",  // 启动命令:docker
      "args": ["run", "-i", "--rm", "mcp/compute"],  // 命令参数:运行 mcp/compute docker 镜像
      "env": {},  // 环境变量(可选,此处为空)
      "enable": false // 是否启用该服务器,false 为禁用
    }
  }
}

配置参数说明:

  • 'server name': MCP 服务器的名称,用于在客户端中引用。
  • 'command': 启动 MCP 服务器的可执行命令,例如 'docker', 'uvx', 'python3' 等。
  • 'args': 命令的参数列表,用于配置如何启动 MCP 服务器,例如 Docker 镜像名、端口号、配置文件路径等。
  • 'env': 环境变量,用于传递额外的配置信息给 MCP 服务器(可选)。
  • 'enable': 布尔值,指示该 MCP 服务器是否启用。客户端只会连接和使用启用的服务器。

基本使用方法

  1. 启动 Agent 服务: 在项目根目录下,运行以下命令启动 Agent 服务。
    uvicorn thirdbrain-mcp-openai-agent:app --host 0.0.0.0 --port 8001
  2. 验证服务运行: 您可以通过浏览器访问 'http://localhost:8001/api/thirdbrain-hello' 检查 Agent 服务是否成功启动。
  3. 集成到 LLM 客户端: 将 Agent 服务作为 MCP 客户端集成到 oTTomator 或其他支持 MCP 协议的 LLM 客户端中。客户端可以通过 API 向 Agent 服务发送用户查询。
  4. 使用 Slash 命令: 在聊天界面中,您可以使用 Slash 命令管理 MCP 服务器配置,例如:
    • '/list': 列出所有已配置的 MCP 服务器及其启用状态。
    • '/functions <server-name>': 列出指定 MCP 服务器提供的所有功能(工具)。
    • '/addMcpServer <JSON 配置>': 添加新的 MCP 服务器配置。
    • '/disable <server1, server2, ...>': 禁用指定的 MCP 服务器。
    • '/enable <server1, server2, ...>': 启用指定的 MCP 服务器。
    • '/dropMcpServer <server-name>': 删除指定的 MCP 服务器配置。

示例 Slash 命令

  • 添加 Fetch MCP 服务器:
    /addMcpServer { "fetch": { "command": "docker", "args": ["run", "-i", "--rm", "mcp/fetch"] } }
  • 添加 AIDD MCP 服务器:
    /addMcpServer { "aidd-ai-software-development-utilities": { "command": "uvx", "args": ["mcp-server-aidd"] } }

服务器信息