使用说明
MCP。文件系统
全面 模型上下文协议(MCP)服务器 它通过标准化工具提供强大的文件系统操作。该服务器使AI助手和其他MCP客户端能够安全有效地与文件系统交互。
特性
文件操作
- 读/写文件:从文件中读取内容或使用自定义内容创建新文件
- 附加内容:在不覆盖的情况下向现有文件添加内容
- 删除文件:从文件系统中删除文件
- 复制文件:将文件复制到新位置
- 移动/重命名文件:重新定位或重命名文件
目录操作
- 创建目录:使用自动父目录创建新目录
- 删除目录:使用可选的递归删除功能删除目录
- 列出目录内容:使用筛选选项浏览文件和文件夹
高级搜索功能
- 文件名搜索:使用通配符支持按名称模式查找文件
- 内容搜索:跨目录搜索文件中的文本
- 正则表达式搜索:使用正则表达式进行高级模式匹配
- 递归搜索:搜索子目录
文件信息和实用程序
- 文件元数据:获取有关文件和目录的详细信息
- 路径验证:检查文件或目录是否存在
- 目录大小:计算包括子目录在内的目录的总大小
- 工作目录:获取并设置当前工作目录
技术栈
- .NET 8.0:建立在最新的基础上。NET平台
- C#12.0:使用现代C#语言功能
- 模型上下文协议:实现MCP服务器规范
- JSON序列化:结构化响应,便于集成
- Docker支持:已准备好进行集装箱化部署
安装
先决条件
- .NET 8.0 SDK或更高版本
- 兼容的MCP客户端(Claude Desktop、带MCP扩展的VS Code等)
从源头构建
git clone https://github.com/jihadkhawaja/MCP.FileSystem.git
cd MCP.FileSystem
dotnet build
运行服务器
dotnet run --project MCP.FileSystem
Docker部署
docker build -t mcp-filesystem .
docker run -it mcp-filesystem
用法
MCP客户端配置
克劳德桌面
添加到您的Claude Desktop配置中:
{
"mcpServers": {
"MCP.FileSystem": {
"command": "dotnet",
"args": ["run", "--project", "path/to/MCP.FileSystem.csproj"]
}
}
}
带有MCP扩展的VS代码
在MCP设置中配置:
"servers": {
"MCP.FileSystem": {
"type": "stdio",
"command": "dotnet",
"args": [
"run",
"--project",
"path/to/MCP.FileSystem.csproj"
]
}
}
可用工具
文件操作
| 工具 | 说明 | 参数 |
|---|---|---|
ReadFile |
从文件中读取内容 | filePath |
WriteFile |
将内容写入文件 | filePath, content, overwrite? |
AppendToFile |
将内容附加到文件 | filePath, content |
DeleteFile |
删除文件 | filePath |
CopyFile |
复制文件 | sourcePath, destinationPath, overwrite? |
MoveFile |
移动/重命名文件 | sourcePath, destinationPath, overwrite? |
目录操作
| 工具 | 说明 | 参数 |
|---|---|---|
CreateDirectory |
创建目录 | directoryPath |
DeleteDirectory |
删除目录 | directoryPath, recursive? |
ListDirectory |
列出目录内容 | directoryPath, searchPattern?, includeSubdirectories? |
搜索操作
| 工具 | 说明 | 参数 |
|---|---|---|
SearchFiles |
按模式搜索文件 | directoryPath, searchPattern?, includeSubdirectories?, maxResults? |
SearchInFiles |
在文件中搜索文本 | directoryPath, searchText, filePattern?, includeSubdirectories?, caseSensitive?, maxResults? |
SearchInFilesRegex |
使用正则表达式模式搜索 | directoryPath, regexPattern, filePattern?, includeSubdirectories?, caseSensitive?, maxResults? |
信息和实用程序
| 工具 | 说明 | 参数 |
|---|---|---|
GetFileInfo |
获取文件/目录元数据 | path |
PathExists |
检查路径是否存在 | path |
GetCurrentDirectory |
获取当前工作目录 | - |
SetCurrentDirectory |
设置当前工作目录 | path |
GetDirectorySize |
计算目录大小 | directoryPath |
示例响应
所有工具都返回结构化的JSON响应:
成功响应
{
"success": true,
"message": "File written successfully",
"path": "/path/to/file.txt",
"size": 1024
}
错误响应
{
"error": "File not found",
"path": "/path/to/nonexistent.txt"
}
搜索结果
{
"success": true,
"searchPath": "/search/directory",
"matches": [
{
"file": "/path/to/match.txt",
"fileName": "match.txt",
"lineNumber": 42,
"line": "Found matching content here",
"matchPosition": 6
}
],
"count": 1,
"truncated": false
}
安全考虑
- 路径验证:所有文件路径都经过验证,以防止目录遍历攻击
- 错误处理:全面的错误处理可防止信息泄露
- 尊重许可:操作尊重文件系统权限
- 沙箱:考虑在容器化环境中运行以提高安全性
贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
依赖项
Microsoft.Extensions.Hosting(9.0.7)-应用程序托管框架ModelContextProtocol(0.3.0-preview.2)-MCP服务器实现Microsoft.VisualStudio.Azure.Containers.Tools.Targets(1.22.1)-Docker支持
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
更新日志
v1.0.0
- 具有全面文件系统操作的初始版本
- 支持文件和目录操作
- 支持正则表达式的高级搜索功能
- Docker部署支持
- 完成MCP服务器的实施
支持
如有疑问、问题或意见,请访问 GitHub存储库 或者打开一个问题。
备注:此MCP服务器提供强大的文件系统访问。确保您了解安全影响,并在具有适当访问控制的适当环境中运行它。
