项目简介

这是一个非官方的、作为概念验证(POC)的文件系统MCP服务器实现,旨在演示 MCP 服务器的功能。它基于对 Claude (Anthropic) 演示的非公开实现的逆向工程和端口,仅供学习和演示目的,不应在生产环境中使用。

主要功能点

  • 文件系统访问控制:通过配置允许访问的目录列表,限制 LLM 客户端只能访问指定范围内的文件系统,保障安全性。
  • 文件读写操作:支持读取文件内容、写入文件内容、创建目录、列出目录内容、移动/重命名文件和目录、搜索文件、获取文件元数据以及追加文件内容等操作。
  • MCP 协议支持:实现了 MCP 协议的核心功能,可以作为 MCP 服务器与支持 MCP 协议的 LLM 客户端(如 Claude Desktop)进行交互。
  • Prompt 模板:提供了一个简单的 Prompt 模板,用于演示文件系统服务器的功能。
  • 工具注册:注册了一系列文件系统操作工具,供 LLM 客户端调用。

安装步骤

  1. 安装 UVX (可选,推荐使用 uv 进行包管理): 如果还没有安装 uvx,请先安装 uvx。uv 是一个快速的 Python 包安装和虚拟环境管理工具,可以显著提升安装速度。

    # 参考 uvx 安装文档安装 uvx
  2. 创建和激活虚拟环境: 使用 uv 创建并进入虚拟环境。

    uv venv
    .venv\Scripts\activate  # Windows
    source .venv/bin/activate # macOS/Linux
  3. 安装项目依赖: 使用 uv 安装当前目录下的可编辑包。

    uv pip install -e .

服务器配置

要将此 MCP 服务器与 MCP 客户端(例如 Claude Desktop)配合使用,您需要配置客户端以连接到此服务器。以下是 Claude Desktop 的 'claude_desktop_config.json' 配置文件示例,展示了如何配置文件系统 MCP 服务器。

{
  "mcpServers": {
    "myFiles": {
      "command": "mcp-server-filesystem",
      "args": [
        "D:/"  // 将 "D:/" 替换为您想要允许访问的根目录,可以添加多个目录
      ]
    }
  }
}

配置参数说明:

  • '"myFiles"': 服务器名称,可以自定义,在 Claude Desktop 中会显示为集成名称。
  • '"command": "mcp-server-filesystem"': 启动服务器的命令。安装成功后,'mcp-server-filesystem' 命令会被添加到您的 Python 环境的 Scripts 目录(Windows)或 bin 目录 (macOS/Linux) 中。
  • '"args": [...]' : 传递给服务器的参数列表。对于此文件系统服务器,'args' 数组用于指定允许访问的目录。请将 '"D:/"' 替换为您实际想要允许 LLM 客户端访问的目录路径。您可以添加多个目录路径,例如:'["D:/", "C:/Users/YourUsername/Documents", "~/Desktop"]'。

注意:

  • 确保配置的目录路径是您希望 LLM 客户端能够访问的,并仔细检查路径的正确性。
  • 客户端只能访问 'args' 中指定的目录及其子目录,服务器会进行严格的路径验证,防止越权访问。

基本使用方法

  1. 启动 MCP 服务器: 在配置好 'claude_desktop_config.json' 文件后,确保您的 MCP 服务器已启动。通常情况下,Claude Desktop 会在启动时自动尝试连接配置的 MCP 服务器。如果需要手动启动,您可以在命令行中执行 'mcp-server-filesystem <allowed-directory> [additional-directories...]',例如: 'mcp-server-filesystem D:/ C:/Users/YourUsername/Documents'。 但通常不需要手动启动,Claude Desktop 会根据配置文件自动启动。

  2. 在 MCP 客户端中使用: 以 Claude Desktop 为例,启动 Claude Desktop 应用程序。

  3. 访问集成:

    • 点击 Claude Desktop 界面中的 纸夹图标 (附件图标)。
    • 在弹出的菜单中,选择 MCP 集成菜单 (通常图标是两个连接的电源插头)。
    • 您配置的文件系统服务器 (例如,名称为 "myFiles" 的集成) 应该会显示在集成列表中。
  4. 使用文件系统功能: 选择您的文件系统集成后,您就可以在 Claude Desktop 中使用与文件系统相关的 Prompt 或功能,例如:

    • 使用预定义的 Prompt 模板 "fs-demo" 来体验文件系统操作。
    • 在 Prompt 中指示 Claude 使用 "read_file", "write_file" 等工具来访问和操作文件。

安全提示: 请务必仔细配置允许访问的目录,避免将敏感或不希望被 LLM 客户端访问的目录添加到允许列表中。

信息

分类

数据库与文件