使用说明
项目简介
rs_filesystem 是一个使用 Rust 编写的 MCP (Model Context Protocol) 服务器,旨在为大型语言模型 (LLM) 客户端提供文件系统访问能力。通过实现 MCP 协议,rs_filesystem 能够以标准化的方式与 LLM 客户端通信,提供资源管理、工具执行和 Prompt 模板等核心功能。
主要功能点
- 资源 (Resources) 管理:
- 提供 '/api/allowed_directories' 资源,客户端可以获取服务器允许访问的目录列表,增强安全性。
- 工具 (Tools) 注册和执行:
- 实现了多种文件系统操作工具,如:
- 'read_file': 读取文件内容
- 'list_directory': 列出目录内容
- 'file_edit': 编辑文件内容
- 'move_or_rename': 移动或重命名文件/目录
- 'get_file_info': 获取文件信息
- 'create_directory': 创建目录
- 'overwrite_file': 覆盖文件内容
- 'grep_search': 在文件中搜索文本
- 提供了 'get_current_time_in_city' 和 'get_local_time' 等时间相关的工具作为示例。
- 实现了多种文件系统操作工具,如:
- Prompt 模板 (Prompts) 定义:
- 内置了多个与文件操作相关的 Prompt 模板,例如 'read_file', 'file_edit', 'list_directory' 等,方便 LLM 客户端构建文件操作相关的交互。
安装步骤
- 安装 Rust 环境:如果您的机器上没有 Rust 环境,请先安装 Rust 工具链。您可以访问 https://www.rust-lang.org/tools/install 按照官方指引进行安装。
- 克隆仓库:
git clone https://github.com/FellowTraveler/rs_filesystem.git cd rs_filesystem - 编译项目:
编译成功后,可执行文件位于 'target/release/rs_filesystem'。cargo build --release
服务器配置
要将 rs_filesystem 配置为 Claude Desktop 的 MCP 服务器,您需要编辑 Claude Desktop 的配置文件 'claude_desktop_config.json'。
配置文件路径: Claude Desktop -> 'Settings' -> 'Developer' -> 'Edit Config'
在 'claude_desktop_config.json' 文件的 'mcpServers' 节点下添加如下配置:
{ "mcpServers": { "rs_filesystem": { "command": "/path/to/rs_filesystem/target/release/rs_filesystem", // 替换为 rs_filesystem 可执行文件的实际路径 "args": [ "--mcp" // 启用 MCP 服务器模式 ], "env": { "MCP_RS_FILESYSTEM_ALLOWED_DIRECTORIES": "/path/number/one:/path/number/two" // 设置允许访问的目录,使用冒号分隔多个目录,请替换为实际允许访问的目录路径 } } } }
配置参数说明:
- 'server name': 'rs_filesystem' (服务器名称,在 Claude Desktop 配置文件中自定义)
- 'command': '/path/to/rs_filesystem/target/release/rs_filesystem' (rs_filesystem 服务器可执行文件的绝对路径)
- 'args': '["--mcp"]' (启动参数,'--mcp' 参数表示以 MCP 服务器模式启动)
- 'env': 环境变量配置
- 'MCP_RS_FILESYSTEM_ALLOWED_DIRECTORIES': '/path/number/one:/path/number/two' (重要:设置允许 MCP 服务器访问的文件目录。请将 '/path/number/one:/path/number/two' 替换为您希望允许 LLM 客户端通过 rs_filesystem 服务器访问的实际目录路径。务必配置此项以限制文件系统访问范围,保障安全。可以使用冒号 ':' 分隔多个允许访问的目录。)
注意:
- 请将 '/path/to/rs_filesystem/target/release/rs_filesystem' 替换为 'rs_filesystem' 可执行文件的实际路径。
- 务必设置 'MCP_RS_FILESYSTEM_ALLOWED_DIRECTORIES' 环境变量,并指定允许访问的目录,以限制文件系统操作范围,增强安全性。
- 如果需要查看 MCP 服务器日志,可以使用命令 'tail -n 20 -f ~/Library/Logs/Claude/rs_filesystem.logs.jsonl' (macOS) 或查看 Claude Desktop 日志目录下的 'rs_filesystem.logs.jsonl' 文件。
基本使用方法
- 启动 Claude Desktop 客户端。
- Claude Desktop 客户端会根据配置文件启动 rs_filesystem MCP 服务器。
- LLM 客户端可以通过 MCP 协议与 rs_filesystem 服务器进行交互,例如:
- 列出可用的工具:客户端可以请求 'tools/list' 方法,获取 rs_filesystem 提供的文件系统工具列表。
- 调用工具:客户端可以使用 'tools/call' 方法,并指定工具名称和参数来执行文件系统操作,例如读取文件内容、列出目录等。
- 获取 Prompt 模板:客户端可以请求 'prompts/list' 或 'prompts/get' 方法,获取预定义的 Prompt 模板,用于指导 LLM 进行文件操作相关的交互。
示例:使用 Claude Desktop 调用 'read_file' 工具 在 Claude Desktop 中,您可以指示 Claude 使用 'rs_filesystem' 服务器提供的 'read_file' 工具来读取指定文件的内容。 Claude Desktop 会根据工具定义和您的指令,构建 MCP 请求并发送给 'rs_filesystem' 服务器。服务器执行 'read_file' 工具后,会将文件内容作为 JSON-RPC 响应返回给 Claude Desktop,Claude Desktop 再将文件内容呈现给用户或用于后续的 LLM 处理。
信息
分类
数据库与文件