项目简介

本项目实现了一个基于 Model Context Protocol (MCP) 的服务器,旨在为语言模型 (LLM) 客户端提供安全、只读的文件系统访问能力。通过此服务器,LLM 可以获取指定目录下的文件列表、读取文件内容,并利用工具进行文件搜索和分析。

主要功能点

  • 资源管理: 将指定目录下的文件以 'file://' URI 的形式暴露为 MCP 资源,方便 LLM 客户端引用和访问。
  • 文件搜索: 提供文件内容搜索工具,允许 LLM 客户端根据关键词查找文件。
  • 安全访问: 具备完善的安全机制,包括路径遍历保护和 '.gitignore' 规则支持,确保只允许访问预设目录内的文件,并排除敏感或忽略的文件。
  • MIME 类型检测: 自动检测文件 MIME 类型,为 LLM 提供更丰富的上下文信息。
  • Prompt 模板: 内置文件分析 Prompt 模板,支持 LLM 对文件内容进行分析和总结。

安装步骤

  1. 安装 uv 包管理器 (如果尚未安装): 请参考 uv 官方文档安装 uv 包管理器。
  2. 使用 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')。

基本使用方法

  1. 启动服务器: 通常情况下,当 MCP 客户端启动并加载配置后,会自动启动 MCP 服务器。如果您需要手动启动服务器进行测试,可以使用 "服务器配置" 中 'command' 和 'args' 字段组合成的命令,在终端中运行。请务必将 '/path/to/your/directory' 替换为实际路径。
  2. 在 MCP 客户端中使用: 配置完成后,MCP 客户端即可连接到此文件系统服务器。客户端可以通过 MCP 协议请求服务器提供的资源 (文件) 和工具 (文件搜索等),从而实现对本地文件的访问和操作。具体使用方式取决于 MCP 客户端的功能和界面。

信息

分类

数据库与文件