使用说明

项目简介

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 客户端构建文件操作相关的交互。

安装步骤

  1. 安装 Rust 环境:如果您的机器上没有 Rust 环境,请先安装 Rust 工具链。您可以访问 https://www.rust-lang.org/tools/install 按照官方指引进行安装。
  2. 克隆仓库
    git clone https://github.com/FellowTraveler/rs_filesystem.git
    cd rs_filesystem
  3. 编译项目
    cargo build --release
    编译成功后,可执行文件位于 'target/release/rs_filesystem'。

服务器配置

要将 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' 文件。

基本使用方法

  1. 启动 Claude Desktop 客户端。
  2. Claude Desktop 客户端会根据配置文件启动 rs_filesystem MCP 服务器。
  3. 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 处理。

信息

分类

数据库与文件