Borg MCP 服务器实现集
使用说明
项目简介
- 该仓库实现了一组基于 MCP(Model Context Protocol)的服务器端程序,围绕 LLM 客户端提供的上下文服务,包括资源/文档的管理、工具的注册与执行,以及对提示模板(Prompts)的渲染与渲染模式的定义。
- MCP 服务端通过 JSON-RPC 进行通信,提供标准的“工具列表(tools/list)”和“调用工具(tools/call)”等请求处理入口,且在多种实现中对接了不同的外部接口与数据源(CourtListener、EDGAR、UK/EU 法规、OpenStates、LexisNexis、Shovels 等等),实现了对外部能力的代理与聚合。
主要功能点
- MCP 核心接口实现
- 提供工具清单(tools/list)与工具调用(tools/call)等 JSON-RPC 接口,符合 MCP 服务器行为模型。
- 通过协议服务器实现对外提供的 Tools 的注册、查询、执行,以及返回结构化的响应。
- 多提供者 MCP 实现
- lexis-mcp、lawborg-mcp、borg-mcp、shovels-mcp、plaid-mcp 等子项目,覆盖法律研究、法律诉讼分析、文档管理、金融账户等多种能力的接入。
- 各实现以 StdioServerTransport 作为传输,直接在命令行/脚本环境中运行,方便与 LLM 客户端的集成。
- 安全与配置
- 对外部提供方的 API KEY/ Tokens 进行按需开启与使用,支持无密钥的免费能力(如 CourtListener、EDGAR、Federal Register 等)或 BYOK 模式的受保护能力。 通过 env 变量控制服务能力开关与密钥注入,提供较为清晰的安全边界。
- 服务可运行性
- 给出完整的 MCP 服务端实现文件,具备启动逻辑、请求处理、工具执行、以及输出格式化响应。
- 代码结构清晰,具有独立的服务实现文件(如 sidecar/lexis-mcp/server.js、sidecar/lawborg-mcp/server.js、sidecar/borg-mcp/server.js 等),可直接运行或嵌入到更大系统中。
安装与运行(概览)
- 需要运行环境:Node.js/Bun 等脚本执行环境(部分脚本使用 bun 启动),以及可选的外部权限/密钥(依赖的提供方如 LexisNexis、OpenStates、CourtListener 等)。
- 启动方法一般为直接执行 MCP 服务端脚本,例如:
- 运行 lexis-mcp/server.js 启动 LexisNexis提供者的 MCP 服务
- 运行 lawborg-mcp/server.js 启动 Law/Legal 相关提供者的 MCP 服务
- 运行 borg-mcp/server.js 启动 Borg 的文档检索与任务管理相关 MCP 服务
- 运行 shovels-mcp/server.js 启动 Shovels 的建筑许可/承包商相关 MCP 服务
- 配置与密钥
- 某些提供者需要设置环境变量(如 LEXISNEXIS_API_KEY、REGULATIONS_GOV_API_KEY、COURTLISTENER_TOKEN、OPENSTATES_API_KEY 等)以开启相应能力。
- MCP 客户端需要的配置信息(serverName、command、args)请参考下方示例配置。
启动与集成要点
- MCP 客户端对接:通过 JSON-RPC 与 MCP 服务器通信,执行“读取资源”、“调用工具”、“获取 Prompt”等能力。不同实现对接的外部能力可能不同,需按提供者文档配置密钥与访问参数。
- 传输协议:使用 StdioServerTransport,能够在本地进程间以标准输入输出方式进行通信,便于在容器/本地环境中集成。
- 部署场景:适合将 LLM 与外部能力解耦,将资源/工具/提示的能力集中在 MCP 服务器端进行封装,降低 LLM 的外部依赖与安全风险。
基本使用方法(简要)
- 选择需要的 MCP 服务器实现(如 lexis-mcp、lawborg-mcp、borg-mcp),根据需求启动对应的服务。
- 配置密钥与访问权限(按各提供者要求设置环境变量)。
- 使用 MCP 客户端建立连接,调用工具、查询资源、获取对应的提示模板等能力。
- 将 MCP 服务与 LLM 端对接后,可实现统一的上下文服务能力,提升对话质量与可控性。
服务器配置(示例,JSON 格式,按仓库信息生成准确配置) { "servers": [ { "server_name": "lexis-mcp", "command": "bun", "args": ["run", "sidecar/lexis-mcp/server.js"], "notes": "LexisNexis 提供者。需要 LEXISNEXIS_API_KEY 环境变量。" }, { "server_name": "lawborg-mcp", "command": "bun", "args": ["run", "sidecar/lawborg-mcp/server.js"], "notes": "法律/法规相关 MCP 服务。BYOK/公有能力混合提供。" }, { "server_name": "borg-mcp", "command": "bun", "args": ["run", "sidecar/borg-mcp/server.js"], "notes": "Borg 文档检索与任务管理相关 MCP 服务,含 BorgSearch、Borg 资源与任务接口。" }, { "server_name": "shovels-mcp", "command": "bun", "args": ["run", "sidecar/shovels-mcp/server.js"], "notes": "Shovels 构件云 MCP 服务,需 SHOVELS_API_KEY。" } ] } 说明
- server_name:MCP 服务器的名称,用于客户端识别和连接。
- command:启动命令,此处以 bun 为示例(仓库中为 Bun 脚本执行方式,亦可改为 node、pnpm 等);
- args:启动命令的参数列表,用于执行相应的 MCP 服务端脚本路径;
- notes:简要说明该服务器的能力、需要的 API 密钥或配置要点。
3-5 个关键词 模型上下文协议, 后端服务, JSON-RPC, LLM 集成, 工具执行
分类ID 6