README
🚀 MCP 文件系统协议服务器
MCP 文件系统协议服务器是一个能为每个工作目录提供文件资源,并及时发送文件更改通知的模型上下文协议 (MCP) 服务器。它极大地提升了文件管理与监控的效率,为开发者带来便利。
🚀 快速开始
状态
⚠️ 预 Beta 质量 ⚠️
“在我的机器上运行正常”。欢迎提出问题 ❤️
✨ 主要特性
- 资源创建:为工作区中的每个文件创建一个 MCP 资源。
- .gitignore 支持:严格遵循 .gitignore 规则,精准过滤文件。
- 更改通知:实时检测文件的更改、添加和删除操作,让您及时掌握文件动态。
- MIME 类型识别与编码处理:准确识别文件类型,并能处理多种文本编码。
📦 安装指南
安装 Go
按照 https://golang.org/doc/install 的说明进行操作。
获取或更新此服务器
go install github.com/isaacphi/mcp-filesystem@latest
客户端配置
将以下内容添加到客户端配置文件(位于 ~/Library/Application Support/Claude/claude_desktop_config.json 对于 Claude Desktop):
{
"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"
}
计划中的功能
- [x] 工作区中每个文件的资源
- [x] .gitignore 支持
- [x] 更改通知
- [ ] 标准化 MCP 协议以支持更多客户端(Claude Desktop)
- [ ] 可配置的支持行号
- [ ] 资源更新订阅
- [ ] 额外的忽略模式(超出 .gitignore 之外)
- [ ] 延迟通知以处理高频率文件更改
- [ ]
info,create,edit和delete工具
Scan to join WeChat group