t

tx-cos-mcp

@156554395/tx-cos-mcp
0 Stars 173 次浏览 156554395 更新于 2026-08-23

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "tx-cos-mcp": {
      "args": [
        "y",
        "tx-cos-mcp@latest"
      ],
      "command": "npx",
      "env": {
        "COS_BUCKET": "your-bucket",
        "COS_DOMAIN": "your-custom-domain.com",
        "COS_REGION": "your-region",
        "COS_SECRET_ID": "your-secret-id",
        "COS_SECRET_KEY": "your-secret-key"
      },
      "transportType": "stdio"
    }
  }
}

服务介绍

腾讯云 COS MCP 服务器

一个基于 Node.js 的 Model Context Protocol (MCP)服务器为 Claude DesktopCursor 和 Windsurf 等 IDE 提供腾讯云对象存储(COS)功能

功能特性

  • 文件上传 - 支持单文件和批量文件上传到腾讯云 COS
  • 大文件上传 - 自动分片上传支持断点续传和进度监控
  • 并发控制 - 智能重试机制和可配置并发限制
  • 资源清理 - 自动清理临时文件防止磁盘空间泄漏
  • 文件管理 - 复制移动重命名文件操作
  • 文件夹操作 - 创建删除文件夹支持递归操作
  • 临时 URL - 生成带签名的临时访问链接支持自定义过期时间
  • 对象管理 - 列出存储桶中的对象支持前缀过滤和文件夹视图
  • 批量删除 - 支持单个和批量删除 COS 中的对象
  • 统计分析 - 文件夹统计信息包括大小数量类型分布
  • MCP 兼容 - 完全兼容 Model Context Protocol 规范

快速开始

快速上手: 查看 快速参考指南 了解所有工具的基本用法

详细文档: 查看 工具使用说明 获取完整的API文档和示例

本地调试

# 克隆项目
git clone https://github.com/156554395/tx-cos-mcp.git
cd tx-cos-mcp

# 安装依赖
pnpm install

# 配置环境变量
export COS_SECRET_ID=your-secret-id
export COS_SECRET_KEY=your-secret-key
export COS_REGION=your-region
export COS_BUCKET=your-bucket
export COS_DOMAIN=your-custom-domain.com

# 启动调试服务器
pnpm inspector

环境配置

服务器通过环境变量读取腾讯云 COS 配置

作为 MCP 服务器使用推荐

在 MCP 兼容编辑器中配置

{
  "command": "npx",
  "args": ["-y", "tx-cos-mcp@latest"],
  "env": {
    "COS_SECRET_ID": "your-secret-id",
    "COS_SECRET_KEY": "your-secret-key",
    "COS_REGION": "your-region",
    "COS_BUCKET": "your-bucket",
    "COS_DOMAIN": "your-custom-domain.com"
  },
  "transportType": "stdio"
}

环境变量说明

变量名 必需 说明 示例
COS_SECRET_ID 腾讯云 Secret ID AKIDxxx...
COS_SECRET_KEY 腾讯云 Secret Key xxx...
COS_REGION COS 地域 ap-beijing, ap-shanghai
COS_BUCKET 存储桶名称 my-bucket-1234567890
COS_DOMAIN 自定义域名 cdn.example.com

MCP 工具列表

1. upload_file - 单文件上传

{
  "file_path": "/path/to/local/file.jpg",    // 必需本地文件路径
  "object_key": "images/file.jpg",           // 可选COS中的对象键
  "custom_domain": "cdn.example.com"        // 可选自定义域名
}

2. upload_multiple - 批量文件上传

{
  "files": [
    {
      "file_path": "/path/to/file1.jpg",
      "object_key": "images/file1.jpg"       // 可选
    },
    {
      "file_path": "/path/to/file2.png"      // 使用文件名作为对象键
    }
  ]
}

3. get_signed_url - 获取临时访问 URL

{
  "object_key": "images/file.jpg",          // 必需COS对象键
  "expire_time": 3600                       // 可选过期时间(秒)默认1小时
}

4. list_objects - 列出存储桶对象

{
  "prefix": "images/"                       // 可选对象键前缀过滤
}

5. delete_object - 删除对象

{
  "object_key": "images/file.jpg"           // 必需要删除的对象键
}

6. copy_object - 复制对象

{
  "source_key": "images/file.jpg",          // 必需源对象键
  "target_key": "backup/file.jpg",          // 必需目标对象键
  "target_bucket": "other-bucket"           // 可选目标存储桶
}

7. move_object - 移动对象

{
  "source_key": "temp/file.jpg",            // 必需源对象键
  "target_key": "images/file.jpg",          // 必需目标对象键
  "target_bucket": "other-bucket"           // 可选目标存储桶
}

8. rename_object - 重命名对象

{
  "old_key": "images/old_name.jpg",         // 必需原对象键
  "new_key": "images/new_name.jpg"          // 必需新对象键
}

9. delete_multiple - 批量删除对象

{
  "object_keys": [                          // 必需对象键数组
    "images/file1.jpg",
    "images/file2.jpg",
    "temp/file3.png"
  ]
}

10. create_folder - 创建文件夹

{
  "folder_path": "images/thumbnails"        // 必需文件夹路径
}

11. delete_folder - 删除文件夹

{
  "folder_path": "temp/",                   // 必需文件夹路径
  "recursive": true                         // 可选是否递归删除默认false
}

12. list_folders - 列出文件夹和文件

{
  "prefix": "images/"                       // 可选路径前缀默认根目录
}

13. get_folder_stats - 获取文件夹统计

{
  "folder_path": "images/"                  // 可选文件夹路径为空则统计整个存储桶
}

14. upload_large_file - 大文件分片上传

{
  "file_path": "/path/to/large/video.mp4",    // 必需本地大文件路径
  "object_key": "videos/video.mp4",           // 可选COS中的对象键
  "custom_domain": "cdn.example.com",        // 可选自定义域名
  "chunk_size": 2097152,                     // 可选分片大小(字节)默认1MB
  "concurrency": 5,                          // 可选并发上传数默认3最大10
  "force_slice": true                        // 可选强制使用分片上传
}

15. get_upload_progress - 获取上传进度

{
  "session_id": "abc123def456"               // 可选特定会话ID不提供则返回所有
}

16. clear_upload_progress - 清理上传进度

{
  "session_id": "abc123def456"               // 必需要清理的会话ID
}

17. manage_temp_files - 管理临时文件

{
  "action": "cleanup",                       // 必需'stats'(统计) 或 'cleanup'(清理)
  "type": "progress",                        // 可选'progress'/'cache'/'uploads'/'all'
  "older_than_days": 7                       // 可选清理多少天前的文件默认7天
}

IDE 集成配置

使用本地运行集成

{
  "mcpServers": {
    "tx-cos-mcp": {
      "command": "node",
      "args": ["your-absolute-path/tx-cos-mcp/index.js"],
      "env": {
        "COS_SECRET_ID": "your-secret-id",
        "COS_SECRET_KEY": "your-secret-key",
        "COS_REGION": "your-region",
        "COS_BUCKET": "your-bucket",
        "COS_DOMAIN": "your-custom-domain.com"
      }
    }
  }
}

已发布到 npm 集成

{
  "mcpServers": {
    "tx-cos-mcp": {
      "command": "npx",
      "args": ["y", "tx-cos-mcp@latest"],
      "env": {
        "COS_SECRET_ID": "your-secret-id",
        "COS_SECRET_KEY": "your-secret-key",
        "COS_REGION": "your-region",
        "COS_BUCKET": "your-bucket",
        "COS_DOMAIN": "your-custom-domain.com"
      },
      "transportType": "stdio"
    }
  }
}

Claude code 中集成

在配置中添加 MCP 服务器配置使用相同的 JSON 格式

Cursor IDE

在设置中添加 MCP 服务器配置使用相同的 JSON 格式

Windsurf IDE

参考官方文档配置 MCP 服务器使用上述配置参数

常用命令

# 查看版本
npx tx-cos-mcp --version

# 测试配置
COS_SECRET_ID=xxx COS_SECRET_KEY=xxx COS_REGION=your-region COS_BUCKET=test npx tx-cos-mcp

# 开发模式
npm run dev

# 运行测试
npm run test              # 基础功能测试
npm run test:mcp          # MCP协议合规性测试
npm run test:temp         # 临时目录管理测试
npm run test:cleanup      # 临时文件清理测试
npm run test:path         # 文件路径验证测试

# 发布到npm (维护者)
npm run publish:npm

测试

项目包含完整的测试套件确保功能的可靠性

测试文件

  • test/test.js - 基础功能测试
  • test/test-mcp.js - MCP协议合规性测试
  • test/test-temp.js - 临时目录管理测试
  • test/test-cleanup.js - 临时文件清理测试
  • test/test-path-validation.js - 文件路径验证测试

运行测试

# 运行所有测试
npm test

# 单独测试
npm run test:mcp          # 测试MCP协议功能
npm run test:temp         # 测试临时目录管理
npm run test:cleanup      # 测试临时文件清理
npm run test:path         # 测试文件路径验证

测试覆盖

  • COS服务基础功能验证
  • MCP协议标准输出合规性
  • 临时目录结构和管理
  • 上传完成后资源清理
  • 断点续传进度管理
  • 异常情况资源回收
  • 文件路径清理和中文支持

开发指南

项目结构

tx-cos-mcp/
 index.js              # MCP服务器主入口
 src/
    cosService.js     # COS SDK封装服务
    config.js         # 配置管理
    uploadProgress.js # 上传进度管理
    tempManager.js    # 临时文件管理
 test/                 # 测试文件目录
    test.js           # 基础功能测试
    test-mcp.js       # MCP协议合规性测试
    test-temp.js      # 临时目录管理测试
    test-cleanup.js   # 临时文件清理测试
 config-examples/      # 配置示例
 package.json          # 项目配置
 README.md            # 项目文档

核心依赖

  • @modelcontextprotocol/sdk - MCP 协议实现
  • cos-nodejs-sdk-v5 - 腾讯云 COS 官方 SDK

贡献指南

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/new-feature)
  3. 提交更改 (git commit -am 'Add new feature')
  4. 推送分支 (git push origin feature/new-feature)
  5. 创建 Pull Request

许可证

MIT License - 查看LICENSE文件了解详情

支持与反馈

相关 MCP 服务