Agent Backend MCP 服务器
使用说明(Markdown 格式)
-
项目简介
- 该仓库实现了一个支持 MCP 的服务端框架,能够基于不同类型后端暴露统一的资源访问、工具执行及上下文相关能力,供大型语言模型(LLM)等客户端以 JSON-RPC 形式进行交互。
-
主要功能点
- 资源管理:对本地文件系统、内存存储等资源进行读取、写入、列举、分目录管理等操作。
- 工具注册与执行:自动注册并暴露对文件系统等操作的工具,若后端具备执行能力(exec),还会暴露执行工具以执行外部命令。
- MCP 服务器:实现 MCP 服务器端,处理 MCP 请求、响应并向客户端暴露工具集合、资源接口等。
- 传输多样性:支持本地stdio 传输(子进程通信)与 HTTP/StreamableHTTP 传输(远程 MCP 服务)。
- 作用域与多租户:提供作用域(scoped)后台,确保路径分层、边界保护与权限控制。
- 安全性与稳定性:内置路径边界校验、命令安全性检查、对危险操作的阻断与处理回调机制。
-
安装步骤
- 需要 Node.js/TypeScript 构建环境,执行仓库根目录下的构建与依赖安装流程(参考项目的 Makefile/构建脚本)。
- 运行 MCP 服务器可以通过 CLI 命令启动(agent-backend CLI),也可以在应用中通过后端类直接实例化并获取 MCP 服务。
-
服务器配置(MCP 客户端需要的配置信息注释,客户端本身不需要)
- 说明:MCP 客户端需要配置一个服务器描述信息以建立连接。本示例给出两个常见场景的配置信息(JSON 格式):
- 场景 A:本地_stdio/MCP 服务器
- serverName: "local-filesystem"
- command: "agent-backend"
- args: ["daemon", "--rootDir", "/var/workspace", "--local-only"]
- 注释:使用本地子进程方式启动 MCP 服务器,对应 LocalFilesystemBackend 的 MCP 服务。根目录为 /var/workspace,启用本地 stdio 传输。
- 场景 B:本地 MCP 服务器通过 HTTP(远程传输)
- serverName: "remote-filesystem"
- command: "agent-backend"
- args: ["daemon", "--rootDir", "/var/workspace", "--mcp-port", "3001"]
- 注释:通过 HTTP 传输暴露 MCP 服务,端口默认 3001;若需要安全控制可配置 mcp-auth-token。
- 场景 C:内存后端 MCP 服务器
- serverName: "memory"
- command: "agent-backend"
- args: ["daemon", "--backend", "memory", "--rootDir", "/memory"]
- 注释:适用于内存后端的快速 MCP 测试场景,通常用于单机开发与快速集成。
-
基本使用方法
- 启动 MCP 服务器后,LLM 客户端通过 MCP 客户端接口连接,获取工具集合(tools),并按需要调用工具读取资源、执行命令、读取/写入数据等。
- 若想在应用中集成,请通过后端类实例化对应的 LocalFilesystemBackend、RemoteFilesystemBackend 或 MemoryBackend,随后创建并暴露 MCP 服务给客户端使用。
- 服务器端还支持作用域、日志、以及对危险操作的保护,确保多租户环境的安全性。
-
额外信息
- MCP 服务在代码中通过对后端能力的检测来注册工具集合:始终注册文件系统相关工具,若后端具备执行能力则再注册执行工具。
- 服务器实现包含多种传输协议支持、跨进程通信、以及对错误/边界情况的处理逻辑。