File Operations MCP Server

File Operations MCP Server

文件操作MCP Server通过流处理、修补、变更跟踪以及应用程序和备份的实时监控来增强文件管理。

smithery 徽章

这是一个提供增强文件操作能力的 MCP 服务器,支持流处理、修补和变更跟踪。

安装

自动安装(推荐)

通过 Smithery 为 Claude 安装:

npx -y @smithery/cli install @bsmi021/mcp-file-operations-server --client claude

手动安装

npm install
npm start

主要功能

  • 文件操作: 复制、读取、写入、移动、删除
  • 目录操作: 创建、删除、复制
  • 监控和跟踪: 监视文件变化、变更历史
  • 流处理: 高效处理大文件
  • 安全特性: 路径验证、输入清理

使用示例

基本文件操作

// 复制文件
await fileOperations.copyFile({
    source: 'source.txt',
    destination: 'destination.txt',
    overwrite: false
});

// 读取文件
await fileOperations.readFile({
    path: 'myfile.txt'
});

// 写入文件
await fileOperations.writeFile({
    path: 'output.txt',
    content: 'Hello world',
    overwrite: true
});

目录操作

// 创建目录
await fileOperations.makeDirectory({
    path: './new-directory'
});

// 复制目录(带进度报告)
const result = await fileOperations.copyDirectory({
    source: './source-dir',
    destination: './dest-dir',
    overwrite: false
});
console.log(result.progressToken); // 用于跟踪进度

监视变更

// 开始监视
await fileOperations.watchDirectory({
    path: './watched-dir',
    recursive: true
});

// 获取变更历史
const changes = await fileOperations.getChanges();

通过资源访问

// 访问文件内容
const resource = await mcp.readResource('file:///path/to/file.txt');

// 获取目录列表
const dirContents = await mcp.readResource('directory:///path/to/dir');

资源类型

  • file://{path}: 访问文件内容
  • metadata://{path}: 访问文件元数据
  • directory://{path}: 列出目录内容
  • file:///recent-changes: 最近文件系统变更列表

安全与限制

服务器实现了速率限制以防止滥用:

  • 工具: 每分钟100次请求
  • 资源: 每分钟200次请求
  • 监视操作: 每分钟20次操作

所有文件路径都经过验证以防止目录遍历攻击。

开发命令

npm run dev     # 开发模式(自动重载)
npm run build   # 构建项目
npm run lint    # 代码检查
npm test        # 运行测试

完整文档请参阅 Smithery 项目页面