关于 filesystem
FieldCure MCP Filesystem Server 向 AI 客户端提供受沙箱限制的本地文件操作和文档解析,适用于需要受控文件访问的场景。它还可通过 MCP roots 协议动态更新允许访问的目录。
主要功能
- 01读取、写入、搜索和管理文件
- 02将访问限制在允许的目录内
- 03通过 MCP roots 更新允许目录
- 04将支持的文档转换为 Markdown
- 05以 base64 处理二进制文件
- 06校验路径以防遍历和符号链接风险
适用场景
- 01让 AI 客户端读取指定文件夹中的文件
- 02搜索文件名或文件内容
- 03将支持的文档转换为 Markdown 文件
MCP 相关
该 MCP 服务通过 stdio 提供文件系统和文档转换工具。它支持 MCP roots 协议,客户端可在运行时替换允许访问的目录。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
FieldCure MCP Filesystem Server
一个安全的 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
要求
- .NET 8.0 Runtime 或更高版本
配置
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 时:
- 服务会请求更新后的 roots 列表。
- 允许的目录将被整体替换。
- CLI 参数用于指定初始沙盒。
- 空 roots 列表表示禁止所有文件访问。
安全模型
在执行任何文件系统操作之前,所有路径都会通过 IPathValidator 验证:
- 允许的目录定义沙盒边界。
.和..会通过Path.GetFullPath()进行规范化。- 符号链接必须解析到允许的目录内。
- 路径前缀匹配会考虑目录分隔符。
- 阻止 NTFS 替代数据流。
- 拒绝 Windows 保留名称。
- 允许目录的更新是线程安全的。
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 生态系统的一部分。
许可证
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。