关于 MCP Filesystem
MCP Filesystem 是一个 Go 编写的 MCP 服务,用于向 MCP 客户端提供工作区文件。它为每个未被忽略的文件创建资源,并发送文件变更通知。
主要功能
- 01为每个工作区文件创建资源
- 02遵循 .gitignore 规则
- 03通知客户端文件变更
- 04识别 MIME 类型和文本编码
适用场景
- 01通过 MCP 客户端浏览仓库文件
- 02跟踪工作区文件的新增、修改和删除
MCP 相关
它将每个未被忽略的工作区文件作为 MCP 资源提供,并在文件新增、修改或删除时发送通知。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP Filesystem
一个模型上下文协议(MCP)服务,为工作目录中的每个文件提供资源,并发送变更通知。
状态
⚠️ 预 Beta 质量 ⚠️
“在我的机器上能用。”欢迎反馈问题 ❤️
功能
- 资源:为工作区中的每个文件创建一个 MCP 资源
- Gitignore 支持:遵循
.gitignore规则 - 变更通知:检测文件变更、新增和删除
- MIME 类型检测和编码处理:识别文件类型并处理各种文本编码
设置
安装 Go:按照 https://golang.org/doc/install 上的说明操作
获取或更新此服务:
go install github.com/isaacphi/mcp-filesystem@latest
将以下内容添加到客户端配置中(Claude Desktop 的配置文件位于 ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"filesystem": {
"command": "mcp-filesystem",
"args": ["--workspace", "/path/to/your/repository"]
}
}
}
将 /path/to/your/repository 替换为项目目录的绝对路径。
用法
客户端将能够以 MCP 资源的形式访问和引用仓库中所有未被忽略的文件。每个文件都会注册为单独的资源,并进行相应的 MIME 类型检测。
客户端要求
客户端需要支持以下 MCP 功能:
- 资源列表:列出并访问服务提供的资源
- 变更通知:支持接收
notifications/resources/list_changed事件 - 资源内容访问:能够请求并呈现具有相应 MIME 类型的资源内容
关于
本项目使用:
- mark3labs/mcp-go 进行 MCP 通信
- fsnotify 监控文件系统事件
- go-gitignore 解析
.gitignore文件
开发
克隆仓库:
git clone https://github.com/isaacphi/mcp-filesystem.git
cd mcp-filesystem
安装依赖:
go mod download
构建:
go build
配置客户端以使用本地构建版本:
{
"mcpServers": {
"filesystem": {
"command": "/full/path/to/your/mcp-filesystem/mcp-filesystem",
"args": ["--workspace", "/path/to/repository"],
"env": {
"DEBUG": "1"
}
}
}
}
反馈
提交问题时,请尽可能提供详细信息。
设置 DEBUG 环境变量以启用详细日志记录:
"env": {
"DEBUG": "1"
}
我计划添加的功能
- 为工作区中的每个文件提供资源
- 支持 .gitignore
- 变更通知
- 标准化 MCP 协议的使用,以支持更多客户端(Claude Desktop)
- 支持配置行号
- 资源更新订阅
- 其他忽略模式(除
.gitignore之外) - 针对大量文件变更的防抖通知
-
info、create、edit和delete工具
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。