项目简介
这是一个非官方的、作为概念验证(POC)的文件系统MCP服务器实现,旨在演示 MCP 服务器的功能。它基于对 Claude (Anthropic) 演示的非公开实现的逆向工程和端口,仅供学习和演示目的,不应在生产环境中使用。
主要功能点
- 文件系统访问控制:通过配置允许访问的目录列表,限制 LLM 客户端只能访问指定范围内的文件系统,保障安全性。
- 文件读写操作:支持读取文件内容、写入文件内容、创建目录、列出目录内容、移动/重命名文件和目录、搜索文件、获取文件元数据以及追加文件内容等操作。
- MCP 协议支持:实现了 MCP 协议的核心功能,可以作为 MCP 服务器与支持 MCP 协议的 LLM 客户端(如 Claude Desktop)进行交互。
- Prompt 模板:提供了一个简单的 Prompt 模板,用于演示文件系统服务器的功能。
- 工具注册:注册了一系列文件系统操作工具,供 LLM 客户端调用。
安装步骤
-
安装 UVX (可选,推荐使用 uv 进行包管理): 如果还没有安装 uvx,请先安装 uvx。uv 是一个快速的 Python 包安装和虚拟环境管理工具,可以显著提升安装速度。
# 参考 uvx 安装文档安装 uvx -
创建和激活虚拟环境: 使用 uv 创建并进入虚拟环境。
uv venv .venv\Scripts\activate # Windows source .venv/bin/activate # macOS/Linux -
安装项目依赖: 使用 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' 中指定的目录及其子目录,服务器会进行严格的路径验证,防止越权访问。
基本使用方法
-
启动 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 会根据配置文件自动启动。
-
在 MCP 客户端中使用: 以 Claude Desktop 为例,启动 Claude Desktop 应用程序。
-
访问集成:
- 点击 Claude Desktop 界面中的 纸夹图标 (附件图标)。
- 在弹出的菜单中,选择 MCP 集成菜单 (通常图标是两个连接的电源插头)。
- 您配置的文件系统服务器 (例如,名称为 "myFiles" 的集成) 应该会显示在集成列表中。
-
使用文件系统功能: 选择您的文件系统集成后,您就可以在 Claude Desktop 中使用与文件系统相关的 Prompt 或功能,例如:
- 使用预定义的 Prompt 模板 "fs-demo" 来体验文件系统操作。
- 在 Prompt 中指示 Claude 使用 "read_file", "write_file" 等工具来访问和操作文件。
安全提示: 请务必仔细配置允许访问的目录,避免将敏感或不希望被 LLM 客户端访问的目录添加到允许列表中。
信息
分类
数据库与文件