MCP Servers

模型上下文协议服务器、框架、SDK 和模板的综合目录。

A
Aigroup Aliyunoss MCP

阿里云OSS MCP服务器 - 为阿里云对象存储服务提供的MCP (Model Context Protocol) 服务器

创建于 8/18/2025
更新于 4 months ago
Repository documentation and setup instructions

阿里云OSS MCP服务器

npm version Node.js CI codecov License: MIT

🚀 为阿里云OSS (Object Storage Service) 提供的MCP (Model Context Protocol) 服务器,支持完整的云存储操作功能。

✨ 特性

  • 🔌 完整的OSS功能: 支持文件上传、下载、删除、列表等全部操作
  • 📡 MCP协议支持: 基于stdio协议,与AI助手无缝集成
  • 高性能: 支持分片上传、并发操作和智能缓存
  • 🔧 易于配置: 环境变量配置,支持配置热重载
  • 🛡️ 安全可靠: 完善的错误处理、访问控制和审计日志
  • 🔍 可观测性: 健康检查、性能监控和结构化日志
  • 🧩 可扩展: 插件系统和中间件架构
  • 📦 开箱即用: 支持npx一键运行

🚀 快速开始

1. 安装

# 全局安装
npm install -g aigroup-aliyunoss-mcp

# 或者使用 npx 临时运行
npx aigroup-aliyunoss-mcp --help

2. 配置OSS凭据

创建 .env 文件或设置环境变量:

# 阿里云OSS配置
OSS_ACCESS_KEY_ID=your_access_key_id
OSS_ACCESS_KEY_SECRET=your_access_key_secret  
OSS_BUCKET=your_bucket_name
OSS_REGION=oss-cn-beijing

# 可选配置
OSS_SECURE=true
OSS_TIMEOUT=300
FILE_EXPIRY_HOURS=1

3. 添加到MCP配置

编辑MCP设置文件 (如 Claude Desktop):

{
  "mcpServers": {
    "aigroup-aliyunoss-mcp": {
      "command": "npx",
      "args": ["aigroup-aliyunoss-mcp", "--stdio"],
      "env": {
        "OSS_ACCESS_KEY_ID": "your_access_key_id",
        "OSS_ACCESS_KEY_SECRET": "your_access_key_secret",
        "OSS_BUCKET": "your_bucket_name", 
        "OSS_REGION": "oss-cn-beijing"
      }
    }
  }
}

4. 验证安装

# 健康检查
npx aigroup-aliyunoss-mcp --health

# 查看帮助
npx aigroup-aliyunoss-mcp --help

# 验证配置
npx aigroup-aliyunoss-mcp --validate-config

🔧 配置详解

环境变量

| 变量名 | 必需 | 默认值 | 说明 | |--------|------|--------|------| | OSS_ACCESS_KEY_ID | ✅ | - | 阿里云访问密钥ID | | OSS_ACCESS_KEY_SECRET | ✅ | - | 阿里云访问密钥Secret | | OSS_BUCKET | ✅ | - | OSS存储桶名称 | | OSS_REGION | ✅ | - | OSS地域 (如: oss-cn-beijing) | | OSS_SECURE | ❌ | true | 是否使用HTTPS | | OSS_TIMEOUT | ❌ | 300 | 请求超时时间(秒) | | FILE_EXPIRY_HOURS | ❌ | 1 | 临时链接有效期(小时) | | MCP_LOG_LEVEL | ❌ | info | 日志级别 (debug/info/warn/error) | | MCP_MAX_FILE_SIZE | ❌ | 100 | 最大文件大小(MB) | | MULTIPART_THRESHOLD | ❌ | 10 | 分片上传阈值(MB) |

获取阿里云OSS凭据

  1. 登录 阿里云控制台
  2. 创建或选择一个OSS存储桶
  3. RAM访问控制 中创建用户
  4. 为用户分配OSS相关权限
  5. 生成访问密钥对

📋 可用工具

| 工具名称 | 功能描述 | 主要参数 | |---------|---------|---------| | uploadFile | 上传文件到OSS | fileName, file, contentType | | downloadFile | 从OSS下载文件 | fileName, localPath | | deleteObject | 删除OSS文件 | fileName | | deleteMultipleObjects | 批量删除文件 | fileNames[] | | listObjects | 列出OSS文件 | prefix, maxKeys, marker | | getObjectUrl | 生成临时访问链接 | fileName, expires | | copyObject | 复制OSS文件 | source, target | | getObjectMeta | 获取文件元数据 | fileName | | putObjectACL | 设置文件权限 | fileName, acl | | getObjectACL | 获取文件权限 | fileName | | multipartUpload | 分片上传大文件 | fileName, filePath, partSize | | initMultipartUpload | 初始化分片上传 | fileName | | uploadPart | 上传文件分片 | fileName, uploadId, partNo, data | | completeMultipartUpload | 完成分片上传 | fileName, uploadId, parts | | abortMultipartUpload | 取消分片上传 | fileName, uploadId | | listUploads | 列出进行中的分片上传 | prefix, maxUploads |

💡 使用示例

基础文件操作

// 上传文件
{
  "tool": "uploadFile",
  "arguments": {
    "fileName": "documents/report.pdf",
    "file": "/local/path/to/report.pdf",
    "contentType": "application/pdf"
  }
}

// 生成临时下载链接
{
  "tool": "getObjectUrl", 
  "arguments": {
    "fileName": "documents/report.pdf",
    "expires": 3600
  }
}

// 列出文件
{
  "tool": "listObjects",
  "arguments": {
    "prefix": "documents/",
    "maxKeys": 50
  }
}

批量操作

// 批量删除文件
{
  "tool": "deleteMultipleObjects",
  "arguments": {
    "fileNames": [
      "temp/file1.txt",
      "temp/file2.txt", 
      "temp/file3.txt"
    ]
  }
}

分片上传大文件

// 自动分片上传
{
  "tool": "multipartUpload",
  "arguments": {
    "fileName": "videos/large-video.mp4",
    "filePath": "/local/path/to/large-video.mp4",
    "partSize": 5242880
  }
}

🔍 监控和诊断

健康检查

# 完整健康检查
npx aigroup-aliyunoss-mcp --health

# JSON格式输出
npx aigroup-aliyunoss-mcp --health --json

健康检查包括:

  • ✅ 配置验证
  • ✅ OSS连接测试
  • ✅ 内存使用监控
  • ✅ 依赖服务状态

日志记录

服务支持结构化JSON日志,输出到stderr:

{
  "timestamp": "2025-08-18T12:00:00.000Z",
  "level": "info",
  "component": "UploadTool", 
  "message": "文件上传成功",
  "fileName": "test.jpg",
  "size": 102400,
  "duration": 1250,
  "traceId": "abc123def456"
}

性能监控

  • 响应时间: 每个工具调用的耗时统计
  • 吞吐量: 文件传输速率监控
  • 错误率: 操作失败率统计
  • 资源使用: 内存和CPU使用率

🛠️ 开发和自定义

本地开发

# 克隆项目
git clone https://github.com/your-org/aigroup-aliyunoss-mcp.git
cd aigroup-aliyunoss-mcp

# 安装依赖
npm install

# 配置环境
cp .env.example .env
# 编辑 .env 文件

# 开发模式运行
npm run dev

插件开发

创建自定义插件扩展功能:

// plugins/my-plugin/index.ts
import { Plugin, PluginContext } from 'aigroup-aliyunoss-mcp';

export default class MyPlugin implements Plugin {
  metadata = {
    name: 'my-plugin',
    version: '1.0.0',
    description: '自定义插件',
    author: 'Your Name'
  };

  async onLoad(context: PluginContext) {
    context.logger.info('插件加载成功');
  }

  getTools() {
    return [{
      name: 'myCustomTool',
      description: '自定义工具',
      inputSchema: { /* zod schema */ },
      handler: async (args, context) => {
        // 工具逻辑
        return { success: true };
      }
    }];
  }
}

中间件开发

// 自定义中间件
const customMiddleware: MiddlewareDefinition = {
  name: 'custom-middleware',
  priority: 500,
  handler: async (context, next) => {
    // 前置处理
    console.log(`调用工具: ${context.toolName}`);
    
    await next();
    
    // 后置处理
    console.log(`工具执行完成`);
  }
};

🐛 故障排除

常见问题

1. OSS连接失败

错误: OSS_CONNECTION_ERROR

解决方案:

  • 检查网络连接
  • 验证OSS凭据是否正确
  • 确认存储桶名称和地域设置
  • 检查防火墙和代理设置

2. 权限不足

错误: OSS_PERMISSION_ERROR

解决方案:

  • 检查RAM用户权限设置
  • 确认存储桶访问权限
  • 验证访问密钥是否有效

3. 文件上传失败

错误: FILE_UPLOAD_FAILED

解决方案:

  • 检查文件路径是否正确
  • 验证文件大小是否超出限制
  • 检查文件类型是否被允许
  • 增加超时时间配置

4. 配置无效

错误: CONFIG_INVALID

解决方案:

  • 运行 npx aigroup-aliyunoss-mcp --validate-config
  • 检查必需的环境变量
  • 验证配置文件格式

调试模式

# 启用调试日志
MCP_LOG_LEVEL=debug npx aigroup-aliyunoss-mcp --stdio

# 查看详细错误信息
npx aigroup-aliyunoss-mcp --health --verbose

获取支持

🤝 贡献

欢迎贡献代码!请阅读 贡献指南 了解详情。

开发工作流

  1. Fork 项目仓库
  2. 创建功能分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'feat: 添加新功能')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 创建 Pull Request

代码规范

  • 使用 TypeScript 严格模式
  • 遵循 ESLint 和 Prettier 规则
  • 编写单元测试覆盖新功能
  • 更新相关文档

📄 许可证

本项目使用 MIT 许可证

🙏 致谢


Made with ❤️ by the aigroup-aliyunoss-mcp team

Star History Chart

快速设置
此服务器的安装指南

安装包 (如果需要)

npx @modelcontextprotocol/server-aigroup-aliyunoss-mcp

Cursor 配置 (mcp.json)

{ "mcpServers": { "jackdark425-aigroup-aliyunoss-mcp": { "command": "npx", "args": [ "jackdark425-aigroup-aliyunoss-mcp" ] } } }