Proton Drive MCP
# Proton Drive MCP
A Model Context Protocol (MCP) server that enables AI assistants like Claude Desktop, Cursor, and other MCP-compatible clients to interact with your Proton Drive files.
<a href="https://glama.ai/mcp/servers/@anyrxo/proton-drive-mcp">
<img width="380" height="200" src="https://glama.ai/mcp/servers/@anyrxo/proton-drive-mcp/badge" alt="Proton Drive MCP server" />
</a>
## โจ Features
- ๐ **List files and folders** in your Proton Drive
- ๐ **Read file contents** directly
- โ๏ธ **Create and write files** to Proton Drive
- ๐๏ธ **Delete files and folders**
- ๐ **Create new folders**
- ๐ **Cross-platform support** (Windows, macOS, Linux)
- ๐ **Secure** - Works through local filesystem, no credentials needed
- ๐ **Easy to install** - Just npm install and configure
## ๐ Prerequisites
- Node.js 16 or higher
- Proton Drive desktop app installed and synced
- Claude Desktop, Cursor, or any MCP-compatible client
## ๐ Quick Start
### 1. Install from npm (Recommended)
```bash
npm install -g proton-drive-mcp
```
### 2. Or install from source
```bash
git clone https://github.com/anyrxo/proton-drive-mcp.git
cd proton-drive-mcp
npm install
npm run build
```
## โ๏ธ Configuration
### Finding your Proton Drive path
The MCP will try to auto-detect your Proton Drive location, but you can also set it manually:
- **macOS**: `~/Library/CloudStorage/ProtonDrive-[email]-folder`
- **Windows**: `C:\Users\[username]\Proton Drive`
- **Linux**: `~/ProtonDrive`
### Claude Desktop
Add to your Claude Desktop config:
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"proton-drive": {
"command": "node",
"args": ["path/to/proton-drive-mcp/dist/index.js"]
}
}
}
```
### Cursor
Add to your Cursor settings:
```json
{
"mcp.servers": {
"proton-drive": {
"command": "node",
"args": ["path/to/proton-drive-mcp/dist/index.js"]
}
}
}
```
### Custom Proton Drive Path
If your Proton Drive is in a non-standard location:
```json
{
"mcpServers": {
"proton-drive": {
"command": "node",
"args": ["path/to/proton-drive-mcp/dist/index.js"],
"env": {
"PROTON_DRIVE_PATH": "/custom/path/to/ProtonDrive"
}
}
}
}
```
## ๐ฏ Usage Examples
Once configured, you can ask your AI assistant:
- "List all files in my Proton Drive"
- "Create a new file called notes.txt with some content"
- "Read the contents of Documents/report.pdf"
- "Create a new folder called Projects"
- "Delete the file old-notes.txt"
## ๐ ๏ธ Available Tools
The MCP provides these tools:
| Tool | Description |
|------|-------------|
| `check_mount` | Verify Proton Drive is accessible |
| `list_files` | List contents of a directory |
| `read_file` | Read file contents |
| `write_file` | Create or overwrite files |
| `delete_file` | Remove files or folders |
| `create_folder` | Create new directories |
## ๐งช Testing
Test if the MCP is working:
```bash
# Check if Proton Drive is detected
npm run test:connection
# Run all tests
npm test
```
## ๐ง Troubleshooting
### Proton Drive not found
1. Make sure Proton Drive desktop app is running
2. Check if your files are synced
3. Set `PROTON_DRIVE_PATH` environment variable manually
### Permission errors
- Ensure the MCP has read/write access to your Proton Drive folder
- On macOS, you may need to grant permissions in System Preferences
### Tool not showing in Claude/Cursor
1. Restart your AI client after configuration
2. Check the logs for any error messages
3. Verify the path to the MCP is correct
## ๐ Development
```bash
# Install dependencies
npm install
# Run in development mode
npm run dev
# Build for production
npm run build
# Run tests
npm test
```
## ๐ค Contributing
Contributions are welcome! Please:
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests if applicable
5. Submit a pull request
## ๐ License
MIT License - see [LICENSE](LICENSE) file
## ๐ Security
- All operations are performed locally on your filesystem
- No data is sent to external servers
- Proton's end-to-end encryption is preserved
- Path validation prevents directory traversal attacks
## ๐ Known Issues
- Large files (>10MB) may take time to read
- Binary files are not supported for reading (yet)
- Some special characters in filenames may cause issues
## ๐ฎ Support
- Issues: [GitHub Issues](https://github.com/anyrxo/proton-drive-mcp/issues)
- Discussions: [GitHub Discussions](https://github.com/anyrxo/proton-drive-mcp/discussions)
---
Made with โค๏ธ for the Proton Drive communityTDQS
Scored across 7 tools
Each tool has a clearly distinct purpose with no ambiguity: check_mount verifies accessibility, create_folder creates folders, delete_file deletes items, get_file_info retrieves metadata, list_files lists contents, read_file reads text files, and write_file writes files. The actions (check, create, delete, get, list, read, write) and targets (mount, folder, file) are well-defined and non-overlapping.
All tools follow a consistent verb_noun pattern using snake_case, such as check_mount, create_folder, delete_file, get_file_info, list_files, read_file, and write_file. The naming is predictable and readable throughout the set, with no deviations in style or convention.
With 7 tools, the count is well-scoped for a Proton Drive file management server, covering essential operations without bloat. Each tool earns its place by addressing core needs like mounting, CRUD operations, and file listing, making the set efficient and focused.
The tool set provides strong coverage for basic file operations, including create, read, update (via write_file), delete, and list, along with mount checking and metadata retrieval. A minor gap exists in update operations for folders (e.g., rename or move), but agents can work around this using delete and create, and core workflows are well-supported.