# 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 community