项目简介
本项目实现了一个基于 Model Context Protocol (MCP) 的服务器,旨在为语言模型 (LLM) 客户端提供安全、只读的文件系统访问能力。通过此服务器,LLM 可以获取指定目录下的文件列表、读取文件内容,并利用工具进行文件搜索和分析。
主要功能点
- 资源管理: 将指定目录下的文件以 'file://' URI 的形式暴露为 MCP 资源,方便 LLM 客户端引用和访问。
- 文件搜索: 提供文件内容搜索工具,允许 LLM 客户端根据关键词查找文件。
- 安全访问: 具备完善的安全机制,包括路径遍历保护和 '.gitignore' 规则支持,确保只允许访问预设目录内的文件,并排除敏感或忽略的文件。
- MIME 类型检测: 自动检测文件 MIME 类型,为 LLM 提供更丰富的上下文信息。
- Prompt 模板: 内置文件分析 Prompt 模板,支持 LLM 对文件内容进行分析和总结。
安装步骤
- 安装 uv 包管理器 (如果尚未安装): 请参考 uv 官方文档安装 uv 包管理器。
- 使用 uv 安装 'mcp-filesystem-python':
uv add mcp-filesystem-python
服务器配置 (MCP 客户端配置示例)
以下 JSON 配置示例展示了如何配置 MCP 客户端 (如 Claude Desktop) 以连接到此文件系统 MCP 服务器。您需要将此配置添加到 MCP 客户端的配置文件中。
{ "servers": [ { "name": "filesystem", // 服务器名称,必须与服务器声明的名称一致 "command": "uv", // 启动服务器的命令,这里使用 uv 包管理器 "args": [ // 命令参数 "run", // uv run 命令,用于运行 Python 脚本 "src/filesystem/server.py", // 服务器脚本的路径 "/path/to/your/directory" // **重要:** 替换为要共享的目录的绝对路径 ] } ] }
配置说明:
- 将 '/path/to/your/directory' 替换为您希望 MCP 服务器提供访问的实际目录的绝对路径。
- 路径分隔符:macOS/Linux 使用正斜杠 '/',Windows 路径在 JSON 配置中也应使用正斜杠 '/',但在作为参数传递给服务器脚本时,请确保路径格式与您的操作系统一致。
- 对于 Claude Desktop 等客户端,请将以上 JSON 配置添加到客户端指定的配置文件中 (例如,'claude_desktop_config.json')。
基本使用方法
- 启动服务器: 通常情况下,当 MCP 客户端启动并加载配置后,会自动启动 MCP 服务器。如果您需要手动启动服务器进行测试,可以使用 "服务器配置" 中 'command' 和 'args' 字段组合成的命令,在终端中运行。请务必将 '/path/to/your/directory' 替换为实际路径。
- 在 MCP 客户端中使用: 配置完成后,MCP 客户端即可连接到此文件系统服务器。客户端可以通过 MCP 协议请求服务器提供的资源 (文件) 和工具 (文件搜索等),从而实现对本地文件的访问和操作。具体使用方式取决于 MCP 客户端的功能和界面。
信息
分类
数据库与文件