Dropbox MCP Server
Provides read access to Dropbox files with capabilities for browsing directories, reading various file types (PDF, DOCX, TXT, code files), searching files by name, searching text content within files, and extracting metadata from files stored in Dropbox.
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., "@Dropbox MCP Serversearch for my latest invoice PDFs"
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.
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
Related MCP server: docx-mcp-server
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.readfiles.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-docxConfiguration
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.pyTesting
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.
Available Tools
5 toolsget_file_infoCInspect
Get detailed information about a specific file.
Args: file_path: Full path to the file in Dropbox
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | |
| path | Yes | |
| size | Yes | |
| modified | Yes | |
| is_folder | Yes | |
| content_preview | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves 'detailed information' but doesn't specify what that includes (e.g., metadata, permissions, size), whether it requires authentication, has rate limits, or how errors are handled. This leaves significant gaps for a tool that likely interacts with external systems.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences: one stating the purpose and another explaining the parameter. It's front-loaded with the core functionality, though the parameter explanation could be integrated more smoothly rather than as a separate 'Args:' section.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter) and the presence of an output schema (which handles return values), the description is minimally adequate. However, it lacks context on behavioral aspects like error handling or system interactions, and with no annotations, it doesn't fully compensate for the schema's 0% description coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal semantics beyond the input schema: it clarifies that 'file_path' is a 'Full path to the file in Dropbox', which provides context not in the schema (which has 0% description coverage). However, it doesn't elaborate on path format, constraints, or examples, leaving the schema to define the parameter type without richer guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Get detailed information about a specific file' with a specific verb ('Get') and resource ('file'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'list_files' or 'read_file' beyond the general concept of retrieving information rather than listing or reading content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'list_files', 'read_file', or 'search_files'. It mentions the 'file_path' parameter but doesn't clarify use cases, prerequisites, or exclusions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_filesBInspect
List files and folders in a Dropbox directory.
Args: folder_path: Path to the folder (empty string for root) max_files: Maximum number of items to return
| Name | Required | Description | Default |
|---|---|---|---|
| folder_path | No | ||
| max_files | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool lists files and folders, implying a read-only operation, but does not disclose any behavioral traits such as permissions needed, rate limits, pagination, or what happens with invalid paths. For a tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with a clear purpose statement followed by concise parameter explanations. Every sentence earns its place, and there is no wasted text, making it efficient and well-structured for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no annotations, but with an output schema), the description is partially complete. It covers the purpose and parameters but lacks behavioral details and usage guidelines. The presence of an output schema means the description need not explain return values, but other gaps (e.g., no sibling differentiation) keep it at a baseline adequacy level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful semantics beyond the input schema, which has 0% description coverage. It explains that 'folder_path' is the 'Path to the folder (empty string for root)' and 'max_files' is the 'Maximum number of items to return,' providing context not present in the schema. With two parameters and low schema coverage, this compensation is effective, though not exhaustive (e.g., no format details for paths).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'List files and folders in a Dropbox directory.' It specifies the verb ('List') and resource ('files and folders in a Dropbox directory'), making the action and target explicit. However, it does not distinguish this tool from its siblings (e.g., search_files or get_file_info), which reduces the score from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions the parameters but does not specify contexts for usage, exclusions, or comparisons with sibling tools like search_files or get_file_info. This lack of explicit when/when-not/alternatives guidance results in a low score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_fileAInspect
Read and return the full content of a file.
Args: file_path: Full path to the file in Dropbox max_length: Maximum characters to return (0 for no limit)
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| max_length | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool reads and returns file content, which implies a read-only operation, but doesn't mention permissions needed, rate limits, file size limitations, or error conditions. The description adds basic context but lacks important behavioral details for a file access tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly structured with a clear purpose statement followed by parameter explanations. Every sentence earns its place: the first sentence states the core functionality, and the parameter descriptions are essential for understanding usage. No wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (file reading with truncation), no annotations, and the existence of an output schema (which handles return value documentation), the description is reasonably complete. It covers the purpose and parameters well, though it could benefit from more behavioral context about limitations or error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate for the schema's lack of parameter documentation. It provides meaningful explanations for both parameters: 'file_path' as 'Full path to the file in Dropbox' and 'max_length' as 'Maximum characters to return (0 for no limit)', which adds substantial value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Read and return the full content') and the resource ('a file'), distinguishing it from siblings like get_file_info (metadata), list_files (directory listing), and search_file_content/search_files (search operations). The verb+resource combination is precise and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for reading file content, but doesn't explicitly state when to use this tool versus alternatives like get_file_info (for metadata) or search_file_content (for searching within files). It provides clear context for reading full content, but lacks explicit exclusions or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_file_contentCInspect
Search for text within specific files.
Args: file_paths: List of file paths to search in query: Text to search for context_chars: Number of characters of context around matches
| Name | Required | Description | Default |
|---|---|---|---|
| context_chars | No | ||
| file_paths | Yes | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions what the tool does but lacks details on permissions, rate limits, error handling, or output format. For a search operation with no annotation coverage, this is a significant gap in transparency about how the tool behaves beyond basic functionality.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with a clear purpose statement followed by parameter details in a structured format. Every sentence adds value, though it could be slightly more concise by integrating parameter explanations more seamlessly. Overall, it's efficient with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no annotations, but with an output schema), the description is partially complete. It covers the basic purpose and parameters but lacks usage guidelines, behavioral details, and differentiation from siblings. The output schema existence reduces the need to explain return values, but other gaps remain, making it adequate but with clear room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It lists parameters with brief explanations ('List of file paths to search in', 'Text to search for', 'Number of characters of context around matches'), adding some meaning beyond the schema's property names. However, it doesn't specify formats (e.g., file path syntax), constraints, or examples, leaving gaps in understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search for text within specific files.' This is a specific verb ('search') with resource ('text within specific files'), making it understandable. However, it doesn't explicitly differentiate from sibling tools like 'search_files' (which might search file names/metadata vs. content), leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'search_files', 'get_file_info', 'list_files', and 'read_file', there's no indication of how this tool differs in use cases, prerequisites, or exclusions. This lack of context makes it hard for an agent to choose appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_filesBInspect
Search for files in Dropbox by name or content.
Args: query: Search query (searches file names and content) file_types: File types to search ("all", "pdf", "docx", "txt", or comma-separated list) max_results: Maximum number of results to return
| Name | Required | Description | Default |
|---|---|---|---|
| file_types | No | all | |
| max_results | No | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool searches for files but does not cover critical aspects like authentication requirements, rate limits, pagination behavior, or error handling. For a search tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear purpose statement, followed by a structured 'Args' section that efficiently lists parameters. Each sentence adds value without redundancy, though it could be slightly more concise by integrating the parameter explanations into the main text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no annotations, but with an output schema), the description is adequate but incomplete. It covers basic functionality and parameters but lacks behavioral details (e.g., search scope, result format hints). The presence of an output schema reduces the need to explain return values, but more context on usage and limitations would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context beyond the input schema, which has 0% schema description coverage. It explains that 'query' searches file names and content, 'file_types' accepts specific values or a comma-separated list, and 'max_results' limits returned results. This compensates well for the lack of schema descriptions, though it could detail format constraints (e.g., query syntax).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for files in Dropbox by name or content, providing a specific verb ('search') and resource ('files in Dropbox'). However, it does not explicitly differentiate from sibling tools like 'search_file_content' or 'list_files', which may have overlapping functionality, leaving some ambiguity about when to choose this tool over others.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'list_files' or 'search_file_content'. It mentions searching by name or content but does not specify scenarios, prerequisites, or exclusions, leaving the agent to infer usage from context without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
v1.0.0- First observed
get_file_info - First observed
list_files - First observed
read_file - First observed
search_file_content - First observed
search_files
TDQS
Most tools have distinct purposes, but 'search_file_content' and 'search_files' could cause confusion as both involve searching. 'search_file_content' searches within specific files for text, while 'search_files' searches across files by name or content, but the naming similarity might lead to misselection without careful reading of descriptions.
All tool names follow a consistent verb_noun pattern (e.g., get_file_info, list_files, read_file, search_file_content, search_files). The naming is uniform and predictable, making it easy for agents to understand the action and target resource.
With 5 tools, the count is reasonable for a Dropbox file management server, covering core operations like listing, reading, and searching. However, it feels slightly thin as it lacks tools for creating, updating, or deleting files, which are common in file management domains.
The tool set covers basic read and search operations well, but there are notable gaps in CRUD coverage. For a Dropbox server, missing tools for uploading, updating, moving, or deleting files could lead to agent failures when trying to perform full file lifecycle management, limiting its utility for broader workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Search and reason over your Obsidian-style Markdown vault, right from ChatGPT.
Securely search and manage workspace context files for AI agents and teams.
Ingest, manage, and retrieve documents for RAG-powered AI applications
Dropbox MCP Pack — wraps the Dropbox API v2
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables Dropbox file operations such as listing, searching, downloading, and creating folders via the Dropbox API v2 through MCP.16MIT
- FlicenseAqualityDmaintenanceEnables natural language interaction with local .docx files, allowing users to find, read, search, and summarize Word documents using friendly names and location hints.53-
- AlicenseNot gradedqualityDmaintenanceProvides read-only access to Google Docs and Google Sheets, enabling users to read document content, spreadsheet data, and list/search accessible files through natural language.97MIT
- AlicenseAqualityCmaintenanceProvides LLMs with secure, read-only access to local documentation by scanning directories, extracting content from PDF, DOCX, Markdown, and text files, and performing keyword searches.315MIT
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/cindyloo/dropbox-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server