cindyloo/dropbox-mcp-server
If you are the rightful owner of dropbox-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A Model Context Protocol (MCP) server that provides read access to Dropbox files with advanced search and content extraction capabilities.
Dropbox MCP Server
A Model Context Protocol (MCP) server that provides read access to Dropbox files with advanced search and content extraction capabilities.
Features
- File Listing: Browse files and folders in your Dropbox
- File Reading: Read content from various file types (PDF, DOCX, TXT, code files)
- Search: Search for files by name across your Dropbox
- Content Search: Search for specific text within files
- File Info: Get detailed metadata about files
- Smart Text Extraction: Automatically extracts text from PDFs and DOCX files
Supported File Types
- PDF - Text extraction with PyPDF2
- DOCX/DOC - Document text extraction
- Text files - TXT, MD, PY, JS, HTML, CSS, JSON, CSV
Installation
Prerequisites
- Python 3.10 or higher
- A Dropbox account and access token
Get a Dropbox Access Token
- Go to the Dropbox App Console
- Click "Create app"
- Choose "Scoped access" and "Full Dropbox" access
- Name your app
- Go to the "Permissions" tab and enable:
files.metadata.read
files.content.read
- Go to the "Settings" tab and generate an access token
Install Dependencies
pip install -e .
Or install manually:
pip install mcp dropbox pydantic PyPDF2 python-docx
Configuration
Set your Dropbox access token as an environment variable:
export DROPBOX_ACCESS_TOKEN="your_access_token_here"
For Claude Desktop
Add to your claude_desktop_config.json
:
{
"mcpServers": {
"dropbox": {
"command": "python",
"args": ["/path/to/your/dropbox_server.py"],
"env": {
"DROPBOX_ACCESS_TOKEN": "your_access_token_here"
}
}
}
}
For Smithery
The server will automatically use the DROPBOX_ACCESS_TOKEN
environment variable when deployed.
Available Tools
list_files
List files and folders in a Dropbox directory.
Parameters:
folder_path
(optional): Path to folder (empty for root)max_files
(optional): Maximum items to return (default: 20)
search_files
Search for files by name.
Parameters:
query
: Search queryfile_types
(optional): File types to search ("all", "pdf", "docx", "txt", or comma-separated)max_results
(optional): Maximum results (default: 10)
read_file
Read the full content of a file.
Parameters:
file_path
: Full path to the filemax_length
(optional): Maximum characters to return (default: 5000, 0 for unlimited)
get_file_info
Get detailed metadata about a file.
Parameters:
file_path
: Full path to the file
search_file_content
Search for text within specific files.
Parameters:
file_paths
: List of file paths to searchquery
: Text to search forcontext_chars
(optional): Characters of context around matches (default: 100)
Usage Examples
List files in root directory
list_files()
Search for PDF files
search_files(query="invoice", file_types="pdf", max_results=5)
Read a specific file
read_file(file_path="/documents/report.pdf")
Search within files
search_file_content(
file_paths=["/documents/file1.txt", "/documents/file2.pdf"],
query="important keyword"
)
Development
Running Locally
python dropbox_server.py
Testing
Make sure your DROPBOX_ACCESS_TOKEN
is set, then run the server and test with an MCP client.
Security Notes
- Keep your Dropbox access token secure and never commit it to version control
- Use environment variables or secure secret management
- The server only provides read access to Dropbox files
- Consider using app-scoped tokens with minimal permissions
License
MIT License - feel free to use and modify as needed.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Support
For issues and questions, please open an issue on GitHub.