brian - 基于 Model Context Protocol 的 MCP 服务器端实现

  • 简介与用途
    • 该仓库实现了一个完整的 MCP 服务器,允许 LLM 客户端通过 JSON-RPC 调用来读取资源、执行工具、获取并渲染提示/上下文模板等。核心逻辑围绕一个 SQLite 数据库构建,具备多项目(Knowledge Bases)管理、图谱/区域(Region)支持以及与 AI 策略模板的集成能力。
  • 主要功能点
    • MCP 协议核心能力
      • 提供资源列表、读取资源、工具列表与调用工具等能力,符合 MCP 的“资源、工具、提示模板/上下文”的基本职责。
      • 通过 stdio 通道与客户端通信,适配多种传输场景(本仓库以 stdio 为主实现,便于与 Goose 等 MCP 客户端在同一进程/管道中交互)。
    • 资源与工具
      • 资源:统计信息、知识图谱、最近项等资源,以及用于项详情的界面模板资源。
      • 工具:包含搜索、创建/更新知识项、获取项详情、区域/项目/上下文相关操作等工具,支持对知识库的丰富操作。
    • 数据存储与模型
      • 使用 SQLite 数据库,含完整的模式与迁移逻辑,支持多项目、区域、区域模板、标签等扩展结构。
      • 提供知识项、标签、连接、区域、区域模板、项目等数据模型,具备一定的 AI 行为模板支持(RegionProfile / PROFILE_TEMPLATES)。
    • Goose 集成与 AI 场景
      • 内置对 Goose 的 MCP 集成路径,允许从 Goose 直接调用知识管理能力,如搜索、区域管理、项目管理等。
    • 部署与扩展
      • 提供 MCP 服务入口、资源和工具的注册、以及对外暴露的 API 端点,便于后续扩展与自定义。
  • 安装与运行步骤
    • 依赖与环境
      • 需要 Python 3.8 及以上环境,安装所需依赖后可直接运行 MCP 服务器。
    • 运行服务器
      • 通过命令行在仓库根目录下执行以下命令启动 MCP 服务器(使用模块方式运行):
        • python -m brian_mcp.server
      • 服务器将通过标准输入/输出与 MCP 客户端(如 Goose)通信,作为后端上下文服务提供支持。
    • Goose 集成配置(选用,示例用途)
      • 将 Brian 的 MCP 服务作为 Goose 的上下文提供者,请在 Goose 的配置中添加对 brian_mcp.server 的启动命令与参数(详见下方“服务器配置”JSON 示例)。
  • 服务器配置(JSON 示例,面向 MCP 客户端) 说明:以下字段用于 MCP 客户端配置,用于描述如何启动并连接到该 MCP 服务器。非 MCP 客户端实现无需理解具体代码,只需按示例填入相应命令与参数即可。若环境变量或路径不同,请按实际环境调整。 { "server_name": "brian-knowledge", "command": "/usr/bin/python3", // Python 解释器路径,运行 MCP 服务器所需 "args": [ "-m", "brian_mcp.server" // 模块方式启动 Brian 的 MCP 服务器 ], "env": { "BRIAN_DB_PATH": "~/.brian/brian.db" // (可选) 指定数据库文件路径 } } 注释说明:
    • server_name: MCP 客户端用于标识该服务器的名称,方便管理与日志。
    • command: 运行 MCP 服务器所需的可执行程序,一般为 Python 解释器。
    • args: 传给解释器的参数,指定以模块方式执行 brian_mcp.server。
    • env: 运行时环境变量,可用于覆盖默认数据库路径等配置。
  • 基本使用方法
    • MCP 客户端需要配置服务器启动命令与参数(如上 JSON 示例),以建立与该 MCP 服务器的连接。
    • 向服务器发起的请求通常包括:列出资源、读取资源、列出工具、调用工具等,服务端将返回相应的 JSON-RPC 风格结果或通知。
    • 通过 Goose 等集成时,可以在对话中调用工具来检索知识、生成区域、查询项等,提升 LLM 的上下文获取能力与操作能力。

服务器信息