A Model Context Protocol (MCP) server implementation for Dropbox integration, written in Go. This server allows AI assistants like Claude to interact with Dropbox through a standardized protocol.
- OAuth 2.0 Authentication: Secure authentication with Dropbox using browser-based OAuth flow
- File Operations: List, search, download, upload, move, copy, and delete files
- Folder Management: Create folders and navigate directory structures
- Sharing: Create, list, and revoke shared links
- Version Control: View file revision history and restore previous versions
- Large File Support: Automatic chunked upload for files over 150MB
- A Dropbox account
- Claude Desktop application
- Go 1.21 or higher (only for building from source)
brew tap ngs/tap
brew install dropbox-mcp-servergo install go.ngs.io/dropbox-mcp-server@latestDownload the latest release for your platform from the releases page.
# Example for macOS (Apple Silicon)
curl -L https://github.com/ngs/dropbox-mcp-server/releases/latest/download/dropbox-mcp-server_darwin_arm64.tar.gz | tar xz
sudo mv dropbox-mcp-server /usr/local/bin/
# Example for macOS (Intel)
curl -L https://github.com/ngs/dropbox-mcp-server/releases/latest/download/dropbox-mcp-server_darwin_amd64.tar.gz | tar xz
sudo mv dropbox-mcp-server /usr/local/bin/
# Example for Linux (x86_64)
curl -L https://github.com/ngs/dropbox-mcp-server/releases/latest/download/dropbox-mcp-server_linux_amd64.tar.gz | tar xz
sudo mv dropbox-mcp-server /usr/local/bin/git clone https://github.com/ngs/dropbox-mcp-server.git
cd dropbox-mcp-server
go build -o dropbox-mcp-serverIMPORTANT: Each user must create their own Dropbox App. Never share or embed CLIENT_SECRET in binaries. See SECURITY.md for details.
- Go to Dropbox App Console
- Click "Create app"
- Choose configuration:
- Choose an API: Select "Scoped access"
- Choose the type of access: Select "Full Dropbox" or "App folder" based on your needs
- Name your app: Enter a unique name for your app
- After creation, go to the app's settings page
- Under "OAuth 2", add redirect URI:
http://localhost:8080/callback - Note down your App key (Client ID) and App secret (Client Secret)
- In the "Permissions" tab, ensure the following scopes are selected:
files.content.read- View content of your Dropbox files and foldersfiles.content.write- Edit content of your Dropbox files and foldersfiles.metadata.read- View information about your Dropbox files and foldersfiles.metadata.write- View and edit information about your Dropbox files and folderssharing.read- View your shared files and folderssharing.write- Create and modify your shared files and folders
If you have Claude MCP CLI installed, you can register the server with a single command:
# Basic registration (replace with YOUR OWN App credentials)
claude mcp add dropbox dropbox-mcp-server \
--env DROPBOX_CLIENT_ID=your_own_app_key \
--env DROPBOX_CLIENT_SECRET=your_own_app_secret
# With custom binary path
claude mcp add dropbox /path/to/dropbox-mcp-server \
--env DROPBOX_CLIENT_ID=your_own_app_key \
--env DROPBOX_CLIENT_SECRET=your_own_app_secretAdd the following to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"dropbox": {
"command": "dropbox-mcp-server",
"env": {
"DROPBOX_CLIENT_ID": "your_app_key_here",
"DROPBOX_CLIENT_SECRET": "your_app_secret_here"
}
}
}
}Note:
- If you installed via Homebrew or placed the binary in
/usr/local/bin, you can use just"command": "dropbox-mcp-server" - If you built from source or downloaded to a custom location, use the full path:
"command": "/path/to/dropbox-mcp-server"
After configuration, restart Claude Desktop and verify the server is connected:
# List registered MCP servers (if using Claude MCP CLI)
claude mcp list
# Remove a server if needed
claude mcp remove dropboxWhen you first use the Dropbox MCP server in Claude:
- Use the
dropbox_authtool to authenticate - Your browser will open to Dropbox's authorization page
- Log in and authorize the app
- You'll be redirected to a success page
- The authentication token will be saved to
~/.dropbox-mcp-server/config.json
dropbox_auth- Authenticate with Dropboxdropbox_check_auth- Check authentication status
dropbox_list- List files and foldersdropbox_search- Search for filesdropbox_get_metadata- Get file/folder metadatadropbox_download- Download file contentdropbox_upload- Upload a filedropbox_create_folder- Create a new folderdropbox_move- Move or rename files/foldersdropbox_copy- Copy files/foldersdropbox_delete- Delete files/folders
dropbox_create_shared_link- Create a shared linkdropbox_list_shared_links- List existing shared linksdropbox_revoke_shared_link- Revoke a shared link
dropbox_get_revisions- Get file revision historydropbox_restore_file- Restore a file to a previous version
"Please authenticate with Dropbox"
"List all files in my Dropbox root folder"
"Search for PDF files containing 'invoice'"
"Upload this text to /Documents/notes.txt"
"Create a shared link for /Photos/vacation.jpg"
"Show me the revision history of /Documents/report.docx"
The server stores configuration in ~/.dropbox-mcp-server/config.json:
{
"client_id": "your_client_id",
"client_secret": "your_client_secret",
"access_token": "your_access_token",
"refresh_token": "your_refresh_token",
"expires_at": "2024-01-01T00:00:00Z"
}Tokens are automatically refreshed when they expire.
- The configuration file contains sensitive tokens and is stored with 0600 permissions
- Client credentials can be provided via environment variables instead of config file
- OAuth flow uses state parameter to prevent CSRF attacks
- All API calls use HTTPS
- Ensure redirect URI is correctly configured in Dropbox App Console
- Check that client ID and secret are correct
- Try deleting
~/.dropbox-mcp-server/config.jsonand re-authenticating
- Verify your Dropbox app has the required scopes enabled
- Check file paths are correct (use forward slashes, start with /)
- Ensure you have internet connectivity
- Check if Dropbox API is accessible from your network
- Review stderr output for detailed error messages
go mod download
go build -o dropbox-mcp-servergo test ./...dropbox-mcp-server/
├── main.go # MCP server implementation
├── go.mod # Go module definition
├── internal/
│ ├── auth/ # OAuth authentication
│ ├── config/ # Configuration management
│ ├── dropbox/ # Dropbox API client
│ └── handlers/ # MCP tool handlers
├── mcp.json # MCP server metadata
└── README.md # This file
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License - see LICENSE file for details
For issues and questions, please open an issue on GitHub.