mcpField
F
filesystem

filesystem

本地服务
github.com/fieldcure文件与存储122 周前更新

关于 filesystem

FieldCure MCP Filesystem Server 向 AI 客户端提供受沙箱限制的本地文件操作和文档解析,适用于需要受控文件访问的场景。它还可通过 MCP roots 协议动态更新允许访问的目录。

主要功能

  1. 01读取、写入、搜索和管理文件
  2. 02将访问限制在允许的目录内
  3. 03通过 MCP roots 更新允许目录
  4. 04将支持的文档转换为 Markdown
  5. 05以 base64 处理二进制文件
  6. 06校验路径以防遍历和符号链接风险

适用场景

  1. 01让 AI 客户端读取指定文件夹中的文件
  2. 02搜索文件名或文件内容
  3. 03将支持的文档转换为 Markdown 文件

MCP 相关

该 MCP 服务通过 stdio 提供文件系统和文档转换工具。它支持 MCP roots 协议,客户端可在运行时替换允许访问的目录。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
nugetFieldCure.Mcp.Filesystem1.1.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

FieldCure MCP Filesystem Server

NuGet License: MIT

一个安全的 Model Context Protocol (MCP) 服务,可向 AI 客户端提供本地文件系统操作。使用 C# 和官方 MCP C# SDK 构建。

功能

  • 17 种文件系统工具:读取、写入、追加、删除、搜索、复制、移动、转换为 Markdown 等
  • 沙盒访问:所有操作仅限于明确允许的目录
  • MCP roots 协议:客户端可在运行时更改允许的目录,无需重启服务
  • 强化安全性:防止路径遍历、解析符号链接、阻止 NTFS ADS、拒绝 Windows 保留名称
  • 原子写入:采用先写入临时文件再重命名的模式,防止数据损坏
  • 二进制检测:二进制文件自动以 base64 返回,文本文件则以 UTF-8 返回
  • 内置文档解析:可直接读取支持的文档格式,并在磁盘上转换为 Markdown
  • Stdio 传输:通过 stdin/stdout 上的 JSON-RPC 实现标准 MCP 子进程模式

安装

dotnet tool
dotnet tool install -g FieldCure.Mcp.Filesystem
从源代码安装
git clone https://github.com/fieldcure/fieldcure-mcp-filesystem.git
cd fieldcure-mcp-filesystem
dotnet build

要求

配置

Claude Desktop
{
  "mcpServers": {
    "filesystem": {
      "command": "fieldcure-mcp-filesystem",
      "args": [
        "C:\\Users\\me\\Documents",
        "C:\\Projects"
      ]
    }
  }
}
VS Code
{
  "servers": {
    "filesystem": {
      "command": "fieldcure-mcp-filesystem",
      "args": [
        "${workspaceFolder}"
      ]
    }
  }
}

工具

文件操作
工具说明
read_file读取文件内容(文本以 UTF-8 编码,二进制以 base64 编码)
read_multiple_files一次读取多个文件,并逐个处理错误
read_file_lines读取指定范围的行
convert_to_markdown将一个受支持的文档文件转换为磁盘上的 Markdown 文件
convert_directory_to_markdown将目录中的多个受支持文档文件批量转换为 Markdown 文件
write_file以原子写入方式创建或覆盖文件
append_file在文件末尾追加内容,并自动添加换行符
modify_file查找并替换文本(纯文本或正则表达式)
copy_file复制文件或递归复制目录
move_file移动或重命名文件或目录
delete_file删除文件或目录
目录操作
工具说明
list_directory列出目录内容,并显示类型标记、大小和日期
create_directory递归创建目录
directory_tree按层级显示目录树,可配置深度
搜索与信息
工具说明
search_files按 glob 模式查找文件
search_within_files搜索多个文件中的文本内容,并显示行号
get_file_info获取文件或目录的元数据

MCP Roots 协议

该服务支持 MCP roots 协议,可在运行时更改目录。客户端更改 roots 时:

  1. 服务会请求更新后的 roots 列表。
  2. 允许的目录将被整体替换。
  3. CLI 参数用于指定初始沙盒。
  4. 空 roots 列表表示禁止所有文件访问。

安全模型

在执行任何文件系统操作之前,所有路径都会通过 IPathValidator 验证:

  1. 允许的目录定义沙盒边界。
  2. . 和 .. 会通过 Path.GetFullPath() 进行规范化。
  3. 符号链接必须解析到允许的目录内。
  4. 路径前缀匹配会考虑目录分隔符。
  5. 阻止 NTFS 替代数据流。
  6. 拒绝 Windows 保留名称。
  7. 允许目录的更新是线程安全的。

Markdown 转换工具使用相同的沙盒规则验证源路径和输出路径。它们会将转换后的 Markdown 直接写入磁盘,而不是通过 MCP 返回完整文档文本;与先调用 read_file 再调用 write_file 相比,这通常更节省 token。

项目结构

src/FieldCure.Mcp.Filesystem/
|- Program.cs
|- Security/
|  |- IPathValidator.cs
|  \- PathValidator.cs
|- Tools/
|  |- FileOperationTools.cs
|  |- DirectoryTools.cs
|  \- SearchTools.cs
\- Utilities/
   |- EncodingDetector.cs
   \- FileSize.cs

开发

dotnet build
dotnet test
dotnet pack src/FieldCure.Mcp.Filesystem -c Release

限制

已支持暂不支持
文本文件读写(UTF-8)自动检测非 UTF-8 编码
二进制文件检测 + base64超大文件(>100 MB)的流式处理
原子写入文件监视 / 更改通知
Glob 模式搜索全文索引
正则表达式查找和替换多文件事务性写入
符号链接解析跨平台创建符号链接
MCP roots 协议HTTP 传输
提取文档文本 / 将 DocumentParsers 支持的格式转换为 Markdown扫描文档的 OCR

另请参阅

属于 AssistStudio 生态系统的一部分。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。