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 端点,便于后续扩展与自定义。
- MCP 协议核心能力
- 安装与运行步骤
- 依赖与环境
- 需要 Python 3.8 及以上环境,安装所需依赖后可直接运行 MCP 服务器。
- 运行服务器
- 通过命令行在仓库根目录下执行以下命令启动 MCP 服务器(使用模块方式运行):
- python -m brian_mcp.server
- 服务器将通过标准输入/输出与 MCP 客户端(如 Goose)通信,作为后端上下文服务提供支持。
- 通过命令行在仓库根目录下执行以下命令启动 MCP 服务器(使用模块方式运行):
- 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 的上下文获取能力与操作能力。