npm package: @iflow-mcp/ecs_mcp_server
Description: 360 AI 云盘 MCP
Author: @aicloud360
Latest version: 0.5.1

# 360 AI 云盘 MCP

360 AI 云盘的 Model Context Protocol 接入服务，让 AI 模型能够通过 MCP 协议直接操作云盘，提供完整的云盘文件管理能力。

## 📚 简介

本项目为 360 AI 云盘的 MCP（Model Context Protocol）服务实现，允许各类 AI 模型（如大语言模型）通过标准的 MCP 协议与 360 AI 云盘进行交互。通过这种方式，AI 模型可以帮助用户管理云盘文件，极大地提升了文件管理的智能化和便捷性。

## 🔧 配置方式（在 Cursor 中配置）

###  Stdio 接入方式

在 `~/.cursor/mcp.json` 文件中添加以下配置，连接 360 AI 云盘 MCP 服务：

```json
{
  "mcpServers": {
    "360-mcp-server-disk": {
      "command": "npx",
      "args": [
        "-y",
        "@aicloud360/mcp-server-disk"
      ],
      "env": {
        "API_KEY": "_xxxxxxxxx"
      }
    }
  }
}
```

### Streamable HTTP 接入方式

如果您希望通过HTTP方式接入，可以使用以下配置：

```json
{
  "mcpServers": {
    "mcp-server-disk-http": {
      "url": "https://mcp.yunpan.com/mcp?api_key=_xxxxxxxxx"
    }
  }
}
```

Streamable HTTP接入方式的特点：
- 无需安装 nodejs 环境
- 无需下载到本地运行
- 通过URL参数传递API_KEY进行认证
- 适合需要HTTP接口的集成场景

### SSE 接入方式

如果您希望通过SSE（Server-Sent Events）方式接入，可以使用以下配置：

```json
{
  "mcpServers": {
    "mcp-server-disk-sse": {
      "url": "https://mcp.yunpan.com/sse?api_key=_xxxxxxxxx"
    }
  }
}
```

SSE接入方式的特点：
- 基于HTTP长连接的服务器推送技术
- 实时性更强，适合需要即时响应的场景
- 单向通信，服务器向客户端推送数据
- 无需安装额外环境，浏览器原生支持
- 通过URL参数传递API_KEY进行认证

## 🔐 认证配置

使用 360 AI 云盘 MCP 服务需要以下认证信息：

- `API_KEY`：360AI云盘 API 密钥，格式为 "yunpan_" 开头的字符串

您可以通过以下方式获取API_KEY：
   - 参照 [快速接入](https://open.yunpan.360.cn/docs/mcp-server/preparation) MCP Server

### 360 AI 云盘开放平台优势

360 AI 云盘开放平台提供了多元化的产品能力和一站式文件服务：

- **账号一键关联**：无需重新注册账号，现有360 AI 云盘账号一键关联，实现"多平台，一账号"的无缝登录体验
- **支持 MCP 协议接入**：支持 Stdio/SSH/Streamable HTTP/SSE 协议，通过 MCP Client 轻松接入
- **丰富接口能力**：提供文件上传、下载、搜索、新建、重命名、移动、分享等 API，满足不同场景需求

访问 [360 AI 云盘开放平台官网](https://open.yunpan.360.cn) 获取更多详细信息和最新的开发文档。

## ✨ 功能概览

本 MCP 服务提供与 360AI 云盘交互的多种操作，包括：

- 📁 文件列表浏览 - 查看云盘目录内容
- 🔍 文件搜索 - 根据关键词搜索云盘文件
- ⬆️ 文件上传 - 将文件上传至 360 云盘
- ⬇️ 文件下载 - 获取云盘文件下载链接并支持直接下载
- 🎬 视频下载 - 通过URL下载视频到云盘，支持批量下载和实时进度监控
- 💾 文件保存 - 通过URL或文本内容保存文件到云盘
- 📂 目录创建 - 在云盘中创建新文件夹
- ✏️ 文件重命名 - 修改云盘文件或文件夹名称
- 🚚 文件移动 - 将文件移动到其他位置
- 🔗 文件分享 - 将指定文件生成分享链接
- 🔑 用户个人信息 - 获取用户信息

## 🛠️ 工具使用指南

当连接到 360 AI 云盘 MCP 服务后，可以使用以下工具与云盘交互：

### 文件上传 (file-upload-stdio) - 仅支持Stdio接入方式

将本地文件上传到 360 AI云盘指定路径。

**参数：**
- `filePaths`: 本地文件的完整路径（必填，可以是字符串数组包含多个文件）
- `uploadPath`: 上传到云盘的目标目录，默认为根目录 `/`

**示例：**
```json
{
  "filePaths": ["/Users/username/Documents/报告.docx", "/Users/username/Documents/数据.xlsx"],
  "uploadPath": "/工作文件"
}
```

**单文件上传示例：**
```json
{
  "filePaths": "/Users/username/Desktop/测试文档.pdf",
  "uploadPath": "/文档"
}
```

### 文件下载 (file-download-stdio) - 仅支持Stdio接入方式

获取云盘中指定文件的下载链接并支持直接下载文件。

**参数：**
- `nid`: 文件的唯一标识ID，可通过文件列表或搜索获取（必填）
- `auto`: 是否直接下载文件，默认为true
- `downloadDir`: 指定下载目录，必须有读写权限，默认为用户主目录下的.mcp-downloads文件夹

**仅获取下载链接示例：**
```json
{
  "nid": "12345678",
  "auto": false
}
```

**下载到指定目录示例：**
```json
{
  "nid": "12345678",
  "auto": true,
  "downloadDir": "/Users/username/Downloads"
}
```

### 文件列表查询 (file-list)

获取 360 AI云盘指定路径下的文件和文件夹列表。

**参数：**
- `path`: 要查询的路径，默认为根目录 `/`
- `page`: 页码，默认为 0
- `page_size`: 每页显示条数，默认为 50

**示例：**
```json
{
  "path": "/文档",
  "page": 1,
  "page_size": 20
}
```

### 文件搜索 (file-search)

根据关键词搜索 360 AI云盘文件。

**参数：**
- `key`: 搜索关键词（必填）
- `file_category`: 文件类型（-1:全部，0:其他，1:图片，2:文档，3:音乐，4:视频），默认为 -1
- `page`: 页码，默认为 1
- `page_size`: 每页显示条数，默认为 20

**示例：**
```json
{
  "key": "报告",
  "file_category": 2,
  "page": 1
}
```

### 文件保存 (file-save)

通过URL或文本内容保存文件到云盘。

**参数：**
- `url`: 文件下载地址（url或content必传1个）
- `content`: 文件内容，支持markdown格式（url或content必传1个）
- `upload_path`: 云盘存储路径，必须以/开头，默认为"/来自：mcp_server/"

**通过URL保存示例：**
```json
{
  "url": "https://example.com/sample.pdf",
  "upload_path": "/文档/下载/"
}
```

**通过文本内容保存示例：**
```json
{
  "content": "# 标题\n这是一段Markdown格式的文本内容",
  "upload_path": "/笔记/"
}
```

### 视频下载 (video-download)

通过URL下载视频到云盘，支持批量下载和实时进度监控。此操作可能需要较长时间，建议客户端设置更长的超时时间（建议300秒以上）。

**参数：**
- `urls`: 视频URL，多个URL使用英文竖线'|'分隔（必填）

**单视频下载示例：**
```json
{
  "urls": "https://example.com/video.mp4"
}
```

**批量视频下载示例：**
```json
{
  "urls": "https://example.com/video1.mp4|https://example.com/video2.mp4|https://example.com/video3.mp4"
}
```

**功能特点：**
- 🎯 **批量下载**：支持同时下载多个视频URL
- 📊 **实时进度**：提供详细的下载进度监控，包括任务状态分布
- 🔄 **自动轮询**：自动轮询任务状态直到完成，无需手动查询
- 📁 **云盘存储**：下载的视频直接保存到云盘，提供云盘文件链接
- ⚡ **状态跟踪**：实时跟踪任务状态（待开始/下载中/下载成功/上传成功/失败）
- 🔗 **便捷访问**：完成后提供云盘文件链接，方便直接访问

**返回结果说明：**
- 成功下载的视频会显示云盘文件路径、文件大小、访问链接等信息
- 失败的视频会显示具体的失败原因
- 支持结构化数据返回，便于程序处理

### 创建文件夹 (make-dir)

在 360 AI云盘中创建新文件夹。

**参数：**
- `fname`: 文件夹路径，例如：`/新文件夹/`（必填）

**示例：**
```json
{
  "fname": "/工作文件/项目A/"
}
```

### 文件分享 (file-share)

将指定文件生成分享链接。

**参数：**
- `paths`: 要分享的文件路径，多个文件路径用竖线(|)隔开（必填）

**示例：**
```json
{
  "paths": "/文档/报告.docx|/文档/数据.xlsx"
}
```

### 移动文件 (file-move)

移动 360 AI云盘中的文件或文件夹到新位置。

**参数：**
- `src_name`: 文件原路径，多个路径用竖线隔开（必填）
- `new_name`: 目标路径（必填）

**示例：**
```json
{
  "src_name": "/文档/报告.docx|/文档/数据.xlsx",
  "new_name": "/归档文件夹/"
}
```

### 重命名文件 (file-rename)

重命名 360AI 云盘中的文件或文件夹。

**参数：**
- `src_name`: 原路径名称，如：`/文件夹/旧文件名.txt`（必填）
- `new_name`: 新名称，如：`新文件名.txt`（必填）

**示例：**
```json
{
  "src_name": "/文档/草稿.docx",
  "new_name": "最终报告.docx"
}
```

### 用户个人信息 (user-info)

获取 360 AI云盘用户个人信息。

**参数：**
- 无


## 🧠 AI 应用场景

通过 360 AI 云盘 MCP 接入，AI 可以帮助用户实现以下场景：

- **智能文件整理**：AI 可以分析用户文件内容，并自动归类整理
- **文档智能检索**：使用自然语言描述查找云盘内的文档
- **自动文件备份**：根据用户习惯，提供智能备份建议
- **文件内容分析**：分析文档内容并提供摘要或见解
- **基于对话的文件操作**：用户可以通过对话方式管理云盘文件
- **文件上传及分享**：用户可以通过对话方式保存文件到云盘，并生成文件分享链接，方便把文件分享给他人
- **网络资源保存**：用户可以通过提供URL，让AI帮助将网络资源保存到云盘
- **文件内容创建与保存**：AI可以根据用户需求创建文档内容，并直接保存到云盘
- **云盘文件下载**：用户可以通过对话方式从云盘下载文件到本地
- **视频资源下载**：用户可以通过提供视频URL，让AI帮助将视频下载到云盘，支持批量下载和进度监控

## 🔑 关键词

- 360 AI 云盘
- mcp
- modelcontextprotocol
- ai助手
- 文件管理
- 视频下载
- 批量下载
- sse
- streamable http

## 📄 许可证

Apache-2.0