MCP-FS 服务端(多后端文件系统 MCP 服务器)
使用说明(Markdown 格式)
-
项目简介
- 该仓库实现了一个基于 MCP 的后端管理与文件系统服务端,允许通过 MCP 客户端注册多个后端(如本地文件系统、内存后端、若干云存储等),并对外提供诸如列出后端、读取写入文件、创建目录、复制文件、获取元数据等工具。核心逻辑采用 OpenDAL 封装的后端操作,底层通过 MCP 协议进行工具化暴露与调用。
-
主要功能点
- 后端管理
- register_backend:注册一个新的后端,支持设置默认后端、读写权限、超时、重试等配置。
- list_backends / get_backend / get_backend_config:查询已注册的后端和配置信息。
- set_default_backend / remove_backend:设置或移除默认后端,支持强制移除。
- check_backend_health / get_backend_stats:健康状态和统计信息的查询。
- 文件系统操作(跨后端能力)
- list_files:列出指定后端路径下的文件与目录。
- read_file / write_file:在指定后端读取或写入文件内容。
- copy_file / rename_file / create_dir:在后端或跨后端进行复制、重命名和目录创建。
- stat_file / delete、exists 等辅助操作,用于获取元数据与存在性检查。
- 服务端实现要点
- 基于 MCP 的工具注册与执行(通过 mcp.tool 装饰器暴露工具),实现对后端集合的集中管理与调用。
- 使用 OpenDAL 的抽象来对接不同的存储后端,保持实现的扩展性与可替换性。
- 提供健康检查和简单的错误处理,以便在 MCP 客户端进行监控与容错处理。
- 后端管理
-
安装步骤
- 该服务端用 Python 实现,需要确保环境具备 Python 3.x 及相关依赖(如 fastmcp、opendal、OpenDAL 相关依赖等)。
- 将代码环境准备好后,按照仓库提供的入口方式启动 MCP 服务端(通常通过运行 mcps/mcp-fs/src/mcp_fs/cli.py 或等效入口脚本,使用 MCP 框架提供的 run 方法启动,传入 transport 选项如 stdio 或 http)。
- 启动后,服务端将对外暴露 MCP 工具集,供 MCP 客户端调用。
-
服务器配置(MCP 客户端连接所需的配置示例) 说明:MCP 客户端需要知道连接到 MCP 服务器的启动命令及参数,用于启动 mh(MCP Hub)并通过 config 文件连接到 MCP 服务器。以下为示意性配置,实际路径与环境需按你的部署调整。配置包含服务器名称、启动命令及参数等信息,用以引导 MCP 客户端建立连接。
- server_name: mcp-fs-demo
- command: mh
- args: ["serve", "-t", "stdio", "-c", "/path/to/mcp-fs/config.json"]
伪 JSON 示例(仅示意说明,不作为代码块展示): { "server_name": "mcp-fs-demo", "command": "mh", "args": ["serve", "-t", "stdio", "-c", "/path/to/mcp-fs/config.json"] }
说明
- server_name: MCP 服务器的逻辑名称,便于在客户端环境中标识目标服务器。
- command: 启动 MCP 服务器所依赖的可执行程序,此处以 mh 为示例(MCP Hub 客户端启动命令)。
- args: 启动命令的参数列表,包含传给 mh 的子命令与配置文件路径等信息。配置文件路径应指向服务端实际的配置文件(如后端注册信息等)。
-
基本使用方法
- 启动服务端:
- 运行入口脚本或通过 MCP 框架提供的入口命令启动服务端。
- 与 MCP 客户端协同:
- 使用 MCP 客户端工具查看可用工具(如 list_backends、read_file 等)。
- 调用工具执行相应操作,例如注册后端、读取文件、创建目录、跨后端拷贝等。
- 常见工作流:
- 注册一个本地文件系统后端并标记为默认后端。
- 使用 list_files 查看某一路径内容。
- 读取、写入、创建目录、复制文件以完成常规文件管理任务。
- 使用 health 与 stats 接口进行运行状态与资源监控。
- 启动服务端: