CloudreveMCP

CloudreveMCP

MCP server integrating Cloudreve with downloaders for Douyin, Bilibili, and Netease, enabling login, parsing links, downloading, and uploading to cloud storage with direct links.

Category
访问服务器

README

Cloudreve MCP Server

基于 MCP(Model Context Protocol)的 Cloudreve 工具服务端(Python),供 Cursor 等 MCP 客户端调用。推荐流程:登入网盘 → 解析抖音/哔哩哔哩链接或搜索网易云音乐 → 下载视频/歌曲 → 上传到网盘(可返回直链)。使用 uv / uvx 启动。

项目结构(src 布局)

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))

一、启动服务

需已安装 uvpip install uv 或见官网)。

在项目根目录执行(任选其一):

# 方式一:根目录启动脚本(推荐)
uv run python run.py

# 方式二:命令行入口
uv run mcp-cloudreve

# 方式三:以模块方式运行
uv run python -m mcp_cloudreve

或使用 uvx(从 PyPI 拉取并运行,无需先 clone 本仓库时可用):

uvx mcp-cloudreve
  • 默认监听 3001 端口(避免与部分环境 8000 冲突);可通过环境变量 PORTHOST 修改。
  • SSE 端点:GET http://localhost:3001/sse 建立 SSE 流;POST http://localhost:3001/messages?session_id=xxx 发送请求。平台 SSE 模板中的 urlhttp://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 无法绕过。

  • 若你自建 Cloudreve 且前面有 Nginx:在 Nginx 配置里(httpserverlocation 中)增加或修改:client_max_body_size 200m;(或更大,需 ≥ 单块大小),然后 nginx -s reload
  • 若使用他人提供的 Cloudreve(如 cloudreve.2000gallery.art):需联系站点管理员提高 API 或反向代理的请求体上限;或改用你自己能改 Nginx/配置的 Cloudreve 实例。

二、在平台中使用(含 SSE 模板)

1. 平台给的 SSE 模板

若平台要求填写「SSE」类型、并给出类似下面的模板,按下面方式填写即可:

{
  "transport": "sse",
  "url": "http://localhost:3001/sse",
  "headers": {},
  "timeout": 5,
  "sse_read_timeout": 300
}
  • url:填 http://localhost:3001/sse(端口与启动时一致,默认 3001)。
  • transport:保持 "sse"
  • headers:一般留空 {} 即可;如需鉴权再按平台要求加。
  • timeout / sse_read_timeout:可按平台建议保留或适当调大。

服务端行为:

  • GET 你填的 url(即 /sse)→ 建立 SSE 流,返回会话 ID。
  • POST/messages?session_id=xxx → 发送 JSON-RPC(会话 ID 由 GET 阶段得到)。

2. 在 Cursor 中使用

  1. 打开 Cursor 设置:File → Preferences → Cursor Settings(或 Ctrl+,),搜索 MCP
  2. MCP Servers 里添加本服务,例如在配置文件中加入(具体路径以 Cursor 文档为准,可能是 ~/.cursor/mcp.json 或项目内 .cursor/mcp.json):
{
  "mcpServers": {
    "cloudreve": {
      "url": "http://localhost:3001/sse"
    }
  }
}
  1. 确保本仓库里的服务已用 uv run mcp-cloudreve 在本地跑起来(默认 http://localhost:3001)。
  2. 重启 Cursor 或重新加载 MCP,使新配置生效。

3. 使用方式

MCP 推荐流程(抖音/哔哩哔哩视频进网盘):

  1. 登入网盘:调用 cloudreve_login(邮箱、密码;若站点开验证码需先 cloudreve_get_captcha),拿到 access_tokenrefresh_token
  2. (可选)查存储策略:调用 cloudreve_list_storage_policies(access_token),取要用的策略 id 作为上传时的 policy_id
  3. 抖音链接 → 网盘cloudreve_upload_douyin_video(access_token, douyin_share_link, policy_id, ...)。流程:解析抖音分享链接 → 下载无水印视频到临时文件 → 创建/确认文件夹 → 上传 → 删临时文件 → 返回直链。
  4. 哔哩哔哩链接 → 网盘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 音视频合并、多段合并)。
  5. 网易云音乐 → 网盘cloudreve_upload_netease_song(access_token, keyword_or_song_id, policy_id, ...)MCP 流程:根据关键词或歌曲 ID 搜索/获取歌曲 → 获取最佳可用音质链接(无损/极高/标准)→ 下载到临时文件 → 将封面图(JPG)嵌入音频元数据(MP3 ID3 / FLAC picture) → 创建/确认文件夹 → 上传 → 删临时文件 → 返回直链。可选传 netease_cookie 以获取更高音质(如无损);返回中含 cover_url 供展示。

其他常用能力:

  • 刷新令牌:access_token 过期时可调用 cloudreve_refresh_token(refresh_token),或在需要 token 的工具中传入 refresh_token,接口返回 401 时会自动刷新并重试。

  • 上传本地/Base64 文件cloudreve_upload_file(本地路径或 Base64 + 目标 URI + policy_id),上传完成后会自动尝试获取直链。

  • 直链cloudreve_create_direct_links(传入文件 URI 列表)为已有文件创建直链。

  • 创建文件夹cloudreve_create_folder(access_token, folder_uri),如 cloudreve://my/douyincloudreve://douyin(会自动补为 cloudreve://my/douyin)。

  • 工具列表(均在「先登录」前提下使用除验证码外的接口):

    • cloudreve_get_captcha — 获取登录验证码(仅站点开启验证码时需要)
    • cloudreve_login — 密码登录,返回 access_tokenrefresh_token
    • cloudreve_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_urirefresh_token、可选 target_uri
    • cloudreve_upload_bilibili_video — 从哔哩哔哩链接解析 BV、下载视频(DASH/durl,需 ffmpeg)并上传到网盘,返回直链;建议传 cookie 以获取高画质(1080p)(可传 folder_urirefresh_token、可选 target_uri
    • cloudreve_upload_netease_songMCP 流程:关键词/歌曲 ID → 获取最佳音质链接 → 下载 → 封面图嵌入音频元数据 → 上传网盘 → 返回直链;可选传 netease_cookie 以获取更高音质(可传 folder_urirefresh_token、可选 target_uri
    • echo / get_time — 示例工具

三、协议说明

本服务使用 SSE(Server-Sent Events)传输:

  • GET http://localhost:3001/sse → 建立 SSE 流,服务端返回会话 ID(在 SSE 事件中)。
  • POST http://localhost:3001/messages?session_id=<id> → 发送 JSON-RPC 请求(Python MCP SDK 使用 session_id 查询参数)。

适合使用平台提供的「SSE」模板、只需填一个 url 的场景;urlhttp://localhost:3001/sse 即可。

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选