Cloudrevemcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Cloudrevemcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
基于 MCP(Model Context Protocol)的 Cloudreve 工具服务端(Python),供 Cursor 等 MCP 客户端调用。推荐流程:登入网盘 → 解析抖音/哔哩哔哩链接或搜索网易云音乐 → 下载视频/歌曲 → 上传到网盘(可返回直链)。使用 uv / uvx 启动。
CloudreveMCP/
├── run.py # 根目录启动脚本:uv run python run.py
├── pyproject.toml
├── README.md
├── .gitignore
└── src/
└── mcp_cloudreve/
├── __init__.py
├── __main__.py # python -m mcp_cloudreve
├── main.py # 入口逻辑,mcp.run(sse)
├── server.py # FastMCP 与工具注册
├── cloudreve.py # Cloudreve API 客户端
├── douyin.py # 抖音分享链接解析与无水印下载
├── bilibili.py # 哔哩哔哩 WBI 签名、DASH/durl 下载([参考](https://github.com/bei123/astrbot_plugin_so_vits_svc/blob/master/bilibili_api.py))
└── netease.py # 网易云音乐搜索、eapi 加密、获取播放链接与下载([参考](https://github.com/bei123/astrbot_plugin_so_vits_svc/blob/master/netease_api.py))需已安装 uv(pip install uv 或见官网)。
在项目根目录执行(任选其一):
# 方式一:根目录启动脚本(推荐)
uv run python run.py
# 方式二:命令行入口
uv run mcp-cloudreve
# 方式三:以模块方式运行
uv run python -m mcp_cloudreve或使用 uvx(从 PyPI 拉取并运行,无需先 clone 本仓库时可用):
uvx mcp-cloudrevePORT、HOST 修改。http://localhost:3001/sse 建立 SSE 流;POST http://localhost:3001/messages?session_id=xxx 发送请求。平台 SSE 模板中的 url 填 http://localhost:3001/sse。| 变量 | 说明 |
|---|---|
PORT | 服务端口,默认 3001 |
HOST | 监听地址,默认 0.0.0.0 |
CLOUDREVE_BASE_URL | Cloudreve API 根地址,默认 https://cloudreve.2000gallery.art/api/v4 |
上传大文件若出现 413 Request Entity Too Large: 分块大小由 Cloudreve 创建会话时返回的 chunk_size 决定,客户端必须按该大小上传每个分块(不能改小),否则会报 Invalid Content-Length。413 表示请求体超过了 Cloudreve 或反向代理(如 Nginx)的请求体上限,需要由服务端/运维调大限制,本 MCP 无法绕过。
http、server 或 location 中)增加或修改:client_max_body_size 200m;(或更大,需 ≥ 单块大小),然后 nginx -s reload。若平台要求填写「SSE」类型、并给出类似下面的模板,按下面方式填写即可:
{
"transport": "sse",
"url": "http://localhost:3001/sse",
"headers": {},
"timeout": 5,
"sse_read_timeout": 300
}http://localhost:3001/sse(端口与启动时一致,默认 3001)。"sse"。{} 即可;如需鉴权再按平台要求加。服务端行为:
url(即 /sse)→ 建立 SSE 流,返回会话 ID。/messages?session_id=xxx → 发送 JSON-RPC(会话 ID 由 GET 阶段得到)。Ctrl+,),搜索 MCP。~/.cursor/mcp.json 或项目内 .cursor/mcp.json):{
"mcpServers": {
"cloudreve": {
"url": "http://localhost:3001/sse"
}
}
}uv run mcp-cloudreve 在本地跑起来(默认 http://localhost:3001)。MCP 推荐流程(抖音/哔哩哔哩视频进网盘):
cloudreve_login(邮箱、密码;若站点开验证码需先 cloudreve_get_captcha),拿到 access_token 与 refresh_token。cloudreve_list_storage_policies(access_token),取要用的策略 id 作为上传时的 policy_id。cloudreve_upload_douyin_video(access_token, douyin_share_link, policy_id, ...)。流程:解析抖音分享链接 → 下载无水印视频到临时文件 → 创建/确认文件夹 → 上传 → 删临时文件 → 返回直链。cloudreve_upload_bilibili_video(access_token, bilibili_share_link, policy_id, ..., cookie=...)。流程:解析 BV 号 → 获取 WBI 签名与播放地址(DASH 或 durl)→ 下载到临时文件(DASH 会合并音视频,多段会合并)→ 创建/确认文件夹 → 上传 → 删临时文件 → 返回直链。建议传 B 站 cookie:未登录时画质通常只有 360p/480p,传入登录后的 cookie 可获取 1080p 等更高画质;需要登录才能看的视频也必须传 cookie。需本机已安装 ffmpeg(DASH 音视频合并、多段合并)。cloudreve_upload_netease_song(access_token, keyword_or_song_id, policy_id, ...)。MCP 流程:根据关键词或歌曲 ID 搜索/获取歌曲 → 获取最佳可用音质链接(无损/极高/标准)→ 下载到临时文件 → 将封面图(JPG)嵌入音频元数据(MP3 ID3 / FLAC picture) → 创建/确认文件夹 → 上传 → 删临时文件 → 返回直链。可选传 netease_cookie 以获取更高音质(如无损);返回中含 cover_url 供展示。其他常用能力:
cloudreve_refresh_token(refresh_token),或在需要 token 的工具中传入 refresh_token,接口返回 401 时会自动刷新并重试。cloudreve_upload_file(本地路径或 Base64 + 目标 URI + policy_id),上传完成后会自动尝试获取直链。cloudreve_create_direct_links(传入文件 URI 列表)为已有文件创建直链。cloudreve_create_folder(access_token, folder_uri),如 cloudreve://my/douyin 或 cloudreve://douyin(会自动补为 cloudreve://my/douyin)。cloudreve_get_captcha — 获取登录验证码(仅站点开启验证码时需要)cloudreve_login — 密码登录,返回 access_token、refresh_tokencloudreve_refresh_token — 使用 refresh_token 刷新,返回新的 access_token 与 refresh_token(API 文档)cloudreve_list_storage_policies — 获取当前用户可用的存储策略列表(上传时 policy_id 填返回的 id)(API 文档)cloudreve_create_folder — 在网盘创建文件夹(如 cloudreve://my/douyin),祖先目录不存在会自动创建(API 文档)cloudreve_create_upload_session — 创建上传会话(可传 refresh_token 以自动刷新)cloudreve_upload_file_chunk — 上传单个分块(可传 refresh_token 以自动刷新)cloudreve_upload_file — 上传整个文件(支持本地路径或 Base64),上传后自动获取直链(可传 refresh_token 以自动刷新)cloudreve_create_direct_links — 为指定文件 URI 创建直链(可传 refresh_token 以自动刷新)cloudreve_upload_douyin_video — 从抖音分享链接解析无水印视频、下载并上传到网盘,返回直链(可传 folder_uri、refresh_token、可选 target_uri)cloudreve_upload_bilibili_video — 从哔哩哔哩链接解析 BV、下载视频(DASH/durl,需 ffmpeg)并上传到网盘,返回直链;建议传 `cookie` 以获取高画质(1080p)(可传 folder_uri、refresh_token、可选 target_uri)cloudreve_upload_netease_song — MCP 流程:关键词/歌曲 ID → 获取最佳音质链接 → 下载 → 封面图嵌入音频元数据 → 上传网盘 → 返回直链;可选传 netease_cookie 以获取更高音质(可传 folder_uri、refresh_token、可选 target_uri)echo / get_time — 示例工具本服务使用 SSE(Server-Sent Events)传输:
http://localhost:3001/sse → 建立 SSE 流,服务端返回会话 ID(在 SSE 事件中)。http://localhost:3001/messages?session_id=<id> → 发送 JSON-RPC 请求(Python MCP SDK 使用 session_id 查询参数)。适合使用平台提供的「SSE」模板、只需填一个 url 的场景;url 填 http://localhost:3001/sse 即可。
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.