Cloudreve MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Cloudreve MCP Serverlist files in /Documents/Projects"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Cloudreve v4 MCP
Standalone Model Context Protocol server for Cloudreve v4. It authenticates with a registered OAuth application (authorization code + PKCE), then exposes file and local-cache tools over stdio for Cursor and other MCP clients.
Not published on npm — run it with npx from GitHub (github:SanderCokart/cloudreve-mcp).
Features
OAuth authorize / status / logout with secure local token storage
File tools: list, resolve id, properties, download URL, download, upload, create directory, rename, move, copy, delete, source URL, share URL
Local cache helpers: list, write text, presign, download-to-cache, upload-from-cache
Cloudreve v4 File URIs (
cloudreve://my/...) with friendly/pathinputs
Related MCP server: nutstore-mcp
Prerequisites
Node.js 20+
A Cloudreve v4 site (this MCP uses
/api/v4/...)An OAuth app created in Cloudreve admin
Register an OAuth app
In Cloudreve admin → OAuth applications, create an app with:
Field | Value |
App name | e.g. |
Client secret | Generate and store securely |
Redirect URI |
|
Scopes | At least |
Copy the Client ID and Client Secret. Do not commit them to git or share them publicly.
offline_accessis required to receive a refresh token.
Cursor MCP setup
Add to ~/.cursor/mcp.json (Windows: %USERPROFILE%\.cursor\mcp.json):
{
"mcpServers": {
"cloudreve": {
"command": "npx",
"args": [
"-y",
"github:SanderCokart/cloudreve-mcp"
],
"env": {
"CLOUDREVE_BASE_URL": "https://cloud.example.com",
"CLOUDREVE_CLIENT_ID": "YOUR_CLIENT_ID",
"CLOUDREVE_CLIENT_SECRET": "YOUR_CLIENT_SECRET",
"CLOUDREVE_REDIRECT_URI": "http://127.0.0.1:53682/callback",
"CLOUDREVE_SCOPES": "openid profile offline_access Files.Read Files.Write Shares.Read Shares.Write"
}
}
}
}Replace https://cloud.example.com and the OAuth placeholders with your own values. Endpoint overrides are optional; they are derived from CLOUDREVE_BASE_URL when omitted.
Reload MCP servers / restart Cursor, then call the authorize tool once. A browser window opens; after you approve, tokens are saved locally and other tools work.
Run from the terminal
npx -y github:SanderCokart/cloudreve-mcpSet the same environment variables as in the Cursor env block before running.
Prefer
github:SanderCokart/cloudreve-mcpover the GitHub.tar.gzarchive URL. The archive install skips the package build on some platforms (notably Windows), so thecloudreve-mcpbinary is missing.
Environment
Variable | Required | Description |
| Yes | Your Cloudreve site, e.g. |
| Yes | OAuth Client ID |
| Yes | OAuth Client Secret |
| No | Authorization endpoint (default: |
| No | Token endpoint (default: |
| No | Refresh endpoint (default: |
| No | User-info endpoint (default: |
| No | Default |
| No | Space-separated scopes (see defaults above) |
| No | Local download root |
| No | Local cache root |
| No | Path to tokens JSON (mode 0600) |
Tokens are stored under the platform config dir by default:
Windows:
%APPDATA%/cloudreve-mcp/tokens.jsonmacOS:
~/Library/Application Support/cloudreve-mcp/tokens.jsonLinux:
~/.config/cloudreve-mcp/tokens.json
First-run flow
sequenceDiagram
participant Cursor
participant MCP as CloudreveMCP
participant Browser
participant Cloudreve
Cursor->>MCP: authorize
MCP->>Browser: open /session/authorize (PKCE)
Browser->>Cloudreve: user login + consent
Cloudreve->>MCP: redirect code to localhost callback
MCP->>Cloudreve: POST /api/v4/session/oauth/token
Cloudreve->>MCP: access_token + refresh_token
MCP->>MCP: persist tokens (0600)
Cursor->>MCP: list_files / download_file / ...
MCP->>Cloudreve: Bearer access_token on /api/v4/*Install from source (contributors)
git clone https://github.com/SanderCokart/cloudreve-mcp.git
cd cloudreve-mcp
npm install
npm run buildFor local Cursor config, point command at node and args at the built dist/index.js, and set the same env block as above.
Copy .env.example for a local checklist of variables (do not commit a filled .env).
Tool notes
Paths may be
/docs/a.mdor fullcloudreve://my/docs/a.mdupload_file.remote_pathmust include the filenamedownload_file.local_pathis relative toCLOUDREVE_DOWNLOAD_ROOTand cannot escape itUpload supports local / relay policies fully; OneDrive and generic pre-signed chunk uploads are best-effort
Cache tools operate only under
CLOUDREVE_CACHE_ROOT
Development
npm run typecheck
npm test
npm run devLicense
Apache-2.0
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SanderCokart/cloudreve-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server