dropbox-mcp
Provides tools for interacting with Dropbox API, enabling file recovery, revision management, search, download, and metadata retrieval.
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-mcprestore the file /Projects/report-final.docx I accidentally deleted"
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
An MCP (Model Context Protocol) server that exposes the Dropbox API as tools for
LLM agents. Built on the TypeScript MCP SDK
and the official dropbox npm SDK.
Focus: recovery and discovery on an existing Dropbox account — restoring deleted files, listing revisions, searching content, and force-downloading cloud-only files. The server talks to the Dropbox server-side API, not the local sync folder, so it can see and restore files that local sync has already deleted.
Tools
All tool names are prefixed dropbox_ to avoid collisions with other MCP servers.
Tool | Behavior | Read-only |
| Restore the most recent server-side revision of a deleted file. | No |
| Restore multiple files in one call; reports per-path result. | No |
| Restore a specific revision ID (e.g., a known-good earlier version). | No |
| Force-download a file from Dropbox to the local sync folder, bypassing Smart Sync cloud-only state. | No |
| Upload a single local file to Dropbox. Source defaults to the local-folder mirror of the destination path; | No |
| Move or rename a file/folder server-side (no download). | No |
| Delete a file or folder (goes to trash; recoverable via | No |
| Search by filename or content across the account. Returns path, size, modified date. | Yes |
| List deleted entries in a folder (optionally recursive). Input for restore workflows. | Yes |
| Return size, modified time, revision ID, and content hash for a path. | Yes |
| List up to 100 revisions of a file with rev ID, size, and modified time. | Yes |
Atomic single-file ops vs. bulk sync: these tools are for one-file or interactive operations. For syncing or sorting whole folders (10s–1000s of files), use the companion dropbox skill's dbx_sync.py (bulk, move-aware, plan→review→execute). The split: this server is the atomic + recovery layer; the skill is the orchestration layer.
Related MCP server: Dropbox MCP Server
Installation
Prerequisites
Node.js 24 or newer
A Dropbox account and a Dropbox app with
files.content.read,files.content.write, andfiles.metadata.readscopes
Install
git clone https://github.com/danielsimonjr/dropbox-mcp.git
cd dropbox-mcp
npm install
npm run buildThe build emits dist/index.js, which is the entry point used below.
Authentication
The server loads credentials from ~/.claude/channels/dropbox/.env on startup,
with process.env taking precedence over the file (so the MCP host can override
via .mcp.json env). Create the file and paste in the template below, then
fill in your values:
mkdir -p ~/.claude/channels/dropbox
touch ~/.claude/channels/dropbox/.envTemplate:
# --- Option A: OAuth 2 refresh token (recommended) ---
# Create an app at https://www.dropbox.com/developers/apps, enable the scopes
# files.content.read, files.content.write, files.metadata.read, then run the
# OAuth flow once to obtain a refresh token.
DROPBOX_REFRESH_TOKEN=
DROPBOX_APP_KEY=
DROPBOX_APP_SECRET=
# --- Option B: Long-lived access token (fallback) ---
# Leave blank if you are using Option A above.
DROPBOX_ACCESS_TOKEN=
# --- Optional ---
# Local Dropbox sync folder. Used by dropbox_download to write files.
# Defaults to ~/Dropbox if unset.
# DROPBOX_LOCAL_PATH=C:\Users\you\DropboxTwo auth modes are supported, tried in order:
OAuth 2 refresh token (recommended): set
DROPBOX_REFRESH_TOKEN,DROPBOX_APP_KEY, andDROPBOX_APP_SECRET. Access tokens are refreshed automatically, so credentials do not expire.Legacy long-lived access token (fallback): set
DROPBOX_ACCESS_TOKENonly. Simpler to obtain, but tokens expire after a few hours for newer apps.
Running the server
Directly (for testing)
node dist/index.jsThe server communicates over stdio, so there is no interactive output — it waits
for MCP protocol messages on stdin. On connect it logs "dropbox-mcp: connected on stdio" to stderr.
With the MCP Inspector
npx @modelcontextprotocol/inspector node dist/index.jsRegistering with Claude Code
Add an entry to your .mcp.json:
{
"mcpServers": {
"dropbox-mcp": {
"type": "stdio",
"command": "node",
"args": ["C:/path/to/dropbox-mcp/dist/index.js"]
}
}
}Restart Claude Code (or run /reload-plugins) for the registration to take effect.
Examples
Restore a file deleted by accident:
Agent: dropbox_restore(path="/Projects/report-final.docx")
Result: Restored: /Projects/report-final.docx (rev: abc123, size: 45678 bytes)Find a file without knowing its exact location:
Agent: dropbox_search(query="RSP consciousness paper", max_results=5)
Result: Found 3 results for 'RSP consciousness paper':
1.25 MB 2026-02-18 /Misc/Philosophy/Beyond the Bat/paper.pdf
0.31 MB 2026-02-10 /Misc/Philosophy/Beyond the Bat/drafts/outline.md
...Roll back to a specific earlier revision:
Agent: dropbox_list_revisions(path="/report.docx", limit=5)
Agent: dropbox_restore_revision(path="/report.docx", rev="0123abc")Upload, move, and delete a single file:
Agent: dropbox_upload(path="/Misc/notes.md", mode="overwrite")
Result: Uploaded: /Misc/notes.md (2048 bytes, mode: overwrite)
Agent: dropbox_move(from_path="/Misc/notes.md", to_path="/Misc/Archive/notes.md")
Result: Moved: /Misc/notes.md -> /Misc/Archive/notes.md
Agent: dropbox_delete(path="/Misc/Archive/old-draft.md")
Result: Deleted: /Misc/Archive/old-draft.md (recoverable via dropbox_restore for ~30 days)Security notes
The
.envfile holds long-lived credentials — keep it out of version control (the default.gitignorealready excludes.envfiles).Mutating tools (restore, download, upload, move, delete) change Dropbox or local state. Agents should confirm intent before invoking them — especially
dropbox_deleteon a folder (removes all contents) anddropbox_restore_batch. Deletes go to Dropbox trash and are recoverable viadropbox_restorefor ~30 days.The server binds to no network ports — communication is stdio only. The only outbound connection is to
api.dropbox.comover HTTPS.Logs go to stderr, never stdout (stdout is reserved for MCP protocol frames).
Development
npm run typecheck # tsc --noEmit
npm test # vitest run (full suite)
npm run build # emit dist/The test suite covers config loading, every output formatter, the 8 tool handlers
(both read-only and mutating), and a smoke test asserting TOOLS↔HANDLERS symmetry.
For changes to the tool surface, update both this README and CHANGELOG.md in the
same commit.
License
MIT — see LICENSE.
Available Tools
11 toolsdropbox_deleteADestructive
Delete a file or folder on Dropbox. The item moves to Dropbox trash and is recoverable via dropbox_restore for ~30 days (longer on some plans). Deleting a folder removes all of its contents. Confirm intent before deleting folders.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Dropbox path of the file or folder to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description adds important behavioral details: the item is recoverable for ~30 days, deleting a folder removes all contents, and intent should be confirmed for folders. No contradictions with annotations.
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 three sentences, each providing essential information without redundancy. Key action is front-loaded, followed by recovery details and a usage warning. Every sentence adds value.
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?
For a simple delete tool with one parameter and no output schema, the description is sufficiently complete. It covers the action, safety/recovery behavior, special folder behavior, and a usage recommendation. No major gaps are present.
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 input schema already provides a description for the single parameter 'path' ('Dropbox path of the file or folder to delete'). The tool description does not add additional meaning or formatting details beyond what the schema contains. With 100% schema coverage, a score of 3 is appropriate.
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 action ('Delete a file or folder') and the resource ('on Dropbox'), which distinguishes it from sibling tools like dropbox_restore, dropbox_move, etc. The verb and object are specific 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 explains that items move to trash and are recoverable via dropbox_restore for ~30 days, providing context for when to use this tool. It also warns about folder deletion removing all contents and advises confirming intent before deleting folders, which helps an agent decide when to use this versus alternative actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dropbox_downloadADestructive
Force-download a file from Dropbox servers to the local Dropbox folder. Useful when Smart Sync keeps files cloud-only.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Dropbox path of the file to download |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation already marks destructiveHint as true. The description adds context by using 'force-download' and mentioning cloud-only files, implying overwriting of local copies. It does not contradict annotations and provides useful behavioral context beyond the structured field.
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 two sentences long with zero waste. The first sentence defines the action and outcome; the second provides a concrete usage scenario. Every sentence earns its place.
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?
For a simple tool with one parameter and no output schema, the description covers purpose and a key use case. It does not explain error handling or behavior when the file doesn't exist locally, but given the tool's straightforward nature and annotation coverage, it is largely sufficient.
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 single parameter 'path' is fully described in the input schema ('Dropbox path of the file to download'). The description adds no additional meaning or constraints beyond the schema. With 100% schema coverage, a score of 3 is appropriate.
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 action (force-download), the resource (a file from Dropbox servers), and the target (local Dropbox folder). It provides a specific verb and distinguishes this tool from siblings by emphasizing local storage and cloud-only scenarios.
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 mentions a specific use case ('when Smart Sync keeps files cloud-only'), which is helpful. However, it does not explicitly state when not to use the tool or provide alternatives among sibling tools (e.g., dropbox_restore for version recovery). This leaves some ambiguity for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dropbox_file_infoBRead-only
Get metadata for a file on Dropbox servers: size, modified date, revision, content hash.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Dropbox path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description adds minimal behavioral insight beyond restating that it is a read operation. It does not disclose any side effects, authentication needs, or rate limits. Without annotations, this would be insufficient, but here the description relies heavily on the annotation.
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 a single, front-loaded sentence that conveys all essential information without fluff. Every word is informative.
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 simplicity (one parameter, read-only), the description covers the purpose and key output fields. However, it lacks details on error handling (e.g., file not found) and does not fully specify the return format since there is no output schema. Still sufficient for basic use.
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 coverage is 100%, so the schema already describes the 'path' parameter. The description does not add meaning beyond the schema (e.g., path format or examples). Baseline is 3, and no additional semantics are provided.
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 action ('Get metadata'), the resource ('a file on Dropbox servers'), and details the specific metadata fields (size, modified date, revision, content hash). This distinguishes it from sibling tools like dropbox_delete or dropbox_download which perform different operations.
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?
No explicit guidance is provided on when to use this tool over alternatives. While the purpose is clear, the description does not mention prerequisites, file existence requirements, or when not to use it (e.g., for listing files, use dropbox_list_deleted or dropbox_search).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dropbox_list_deletedARead-only
List recently deleted files in a Dropbox folder. Shows files that can be restored.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Dropbox folder path | |
| recursive | No | Recurse into subfolders (default false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation already declares readOnlyHint=true, and the description ('List recently deleted files') is consistent. The description adds no extra behavioral context beyond what annotations provide, such as what happens if path is invalid or whether the list is limited by time.
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?
Two sentences, no redundant words, front-loaded with the tool's purpose. Every sentence adds value.
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 simplicity (2 parameters, no output schema, read-only annotations), the description is sufficiently complete. It explains what the tool does and the nature of the output (restorable files). No additional context is needed for this straightforward operation.
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 100% for both parameters ('path' and 'recursive'). The description does not add additional meaning beyond the schema, so baseline score of 3 is appropriate.
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 lists recently deleted files in a Dropbox folder and shows files that can be restored. It uses specific verb 'list' and resource 'recently deleted files', and the sibling tools like dropbox_restore and dropbox_list_revisions are distinct in purpose.
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 before restoring deleted files ('Shows files that can be restored'), but lacks explicit when-to-use, when-not-to-use, or alternative tool guidance. It does not mention siblings like dropbox_restore or dropbox_list_revisions for comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dropbox_list_revisionsARead-only
List all available revisions of a file. Useful for finding older versions to restore.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Dropbox path of the file | |
| limit | No | Maximum revisions, capped at 100 (default 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description doesn't need to reiterate. The description adds minimal behavioral context beyond the annotations, such as the purpose for restoring.
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?
Two sentences, front-loaded with the main purpose, no wasted words. The description is appropriately sized for the tool's simplicity.
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?
The tool has a simple structure with clear parameters and annotations. No output schema exists, but the description could briefly mention output type (revision list). However, given the context, it is sufficiently complete for effective use.
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 100% for both parameters, so the description adds no extra meaning beyond what the schema provides. The description's mention of 'all available revisions' aligns with the path parameter but doesn't elaborate on limit.
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 'List all available revisions of a file' with specific verb and resource, and distinguishes from siblings like restore_revision by noting it's useful for finding older versions to restore.
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 context ('useful for finding older versions to restore') and the sibling list offers alternatives, but it does not explicitly state when not to use the tool or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dropbox_moveADestructive
Move or rename a file or folder on Dropbox server-side (no download/re-upload). Use for cross-folder relocation or renaming. Set autorename=true to auto-rename instead of failing when the destination already exists.
| Name | Required | Description | Default |
|---|---|---|---|
| to_path | Yes | New Dropbox path | |
| from_path | Yes | Current Dropbox path | |
| autorename | No | If destination exists, auto-rename instead of failing (default false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true. The description adds that the operation is server-side (no download/re-upload), which is useful. It does not detail permissions or failure modes beyond existing destination, but overall it discloses the key behavioral trait of mutation.
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 two sentences with no wasted words. It front-loads the core action and immediately provides the key usage detail about server-side and autorename. Highly efficient.
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 3 parameters with 100% schema coverage, no output schema (acceptable for a mutating tool), and annotations present, the description covers the essential information: what it does, when to use, and important parameter behavior. It is complete enough for an agent to select and invoke correctly.
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 100%, so the schema already documents all three parameters. The description reinforces the autorename parameter's behavior (auto-rename vs. fail), which adds marginal value over the schema's description. Baseline 3 is appropriate.
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 moves or renames a file or folder server-side, with specific verb 'move/rename' and resource 'file/folder'. It distinguishes from sibling tools like dropbox_delete, dropbox_download, etc. The scope 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 says to use for cross-folder relocation or renaming, which is clear context. It also mentions the autorename option. However, it does not explicitly state when not to use or name alternatives among siblings, but the purpose is distinct enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dropbox_restoreADestructive
Restore a deleted file from Dropbox's server-side history. Finds the most recent revision and restores it.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Dropbox path of the file to restore |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, indicating a state change. The description confirms the restore operation but adds no additional behavioral context, such as side effects on other files or permissions needed.
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?
Extremely concise: two sentences that front-load the purpose with no wasted words. Efficient and to the point.
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?
For a simple one-parameter tool with no output schema, the description is largely complete. It could mention whether the path must be absolute or if it works on folders, but the current level is adequate.
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 value beyond the schema by clarifying that the path refers to a deleted file and that the tool restores the most recent revision. Schema coverage is 100%, but the description enhances 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 action 'restore' and the resource 'deleted file from Dropbox's server-side history', and mentions it finds the most recent revision, distinguishing it from siblings like dropbox_restore_revision and dropbox_restore_batch.
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?
No guidance is provided on when to use this tool versus alternatives such as dropbox_list_deleted or dropbox_restore_batch. There is no mention of prerequisites, limitations, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dropbox_restore_batchADestructive
Restore multiple deleted files from Dropbox history.
| Name | Required | Description | Default |
|---|---|---|---|
| paths | Yes | Dropbox paths to restore |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The destructiveHint annotation already marks this as destructive. The description adds no further behavioral context (e.g., irreversibility, permission requirements, partial success handling). Given the annotation, a score of 3 is appropriate.
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 a single, efficient sentence with no redundant text. It conveys the core purpose without 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?
Despite no output schema, the tool is simple (one parameter) and the description, combined with annotations and schema, covers the essential behavior. It could mention batch size limits or result format, but it's largely complete for a basic batch restore operation.
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 coverage is 100% for the single parameter 'paths', which is already described as 'Dropbox paths to restore'. The description does not add additional meaning beyond what the schema provides, so baseline 3 is used.
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 action ('Restore'), the resource ('multiple deleted files'), and the context ('from Dropbox history'). It effectively distinguishes this batch tool from siblings like dropbox_restore (single file) and dropbox_restore_revision (specific revision).
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?
No guidance on when to use this tool versus alternatives. For example, it doesn't indicate that this is for batch restoration while dropbox_restore handles single files, nor does it mention prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dropbox_restore_revisionBDestructive
Restore a specific revision of a file by revision ID.
| Name | Required | Description | Default |
|---|---|---|---|
| rev | Yes | Revision ID to restore to | |
| path | Yes | Dropbox path of the file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, so the description adds little. It does not disclose side effects such as overwriting the current file, permission requirements, or whether a new revision is created.
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?
A single, front-loaded sentence with no superfluous words. Every word is necessary and directly conveys the tool's purpose.
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?
For a simple two-parameter tool with no output schema, the description is minimally adequate. It lacks context on the outcome (e.g., file overwritten) and does not relate to sibling tools, but it covers the core function.
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 coverage is 100% with clear parameter descriptions. The tool description adds no extra meaning beyond the schema, so it meets the baseline for high-coverage tools.
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 action (restore) and the resource (a specific revision of a file), and specifies the key input (revision ID). However, it does not distinguish this tool from similar siblings like dropbox_restore or dropbox_restore_batch.
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?
No guidance on when to use this tool versus alternatives. It does not mention prerequisites like first listing revisions with dropbox_list_revisions, nor does it explain when to choose this over dropbox_restore or dropbox_restore_batch.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dropbox_searchARead-only
Search for files on Dropbox by name or content. Returns results with path, size, and modified date.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Folder to scope the search to (default: whole account) | |
| query | Yes | Search query | |
| max_results | No | Maximum results, capped at 100 (default 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
ReadOnlyHint annotation already indicates no destructive behavior. Description adds that results include path, size, and modified date, enhancing transparency about output.
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?
Two short sentences, no filler, front-loaded with purpose. Every word adds value.
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?
Covers purpose, scope, and return fields. Lacks details like sorting or wildcards, but sufficient for a search tool with no output schema and simple parameters.
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 coverage is 100% with descriptions for each parameter. The tool description rephrases 'query' as 'by name or content' and adds default/cap info for max_results, but adds limited new meaning beyond the 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 states 'Search for files on Dropbox by name or content' with clear verb and resource, distinguishing it from sibling tools like dropbox_delete or dropbox_download.
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?
No explicit when-to-use or when-not-to-use guidance, but the purpose implies usage for file searches. Could mention alternatives like dropbox_file_info for single file details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dropbox_uploadADestructive
Upload a local file to Dropbox (single file, atomic). Source defaults to the local Dropbox-folder mirror of path; pass local_path to upload an arbitrary local file. Mode 'add' (default) fails if the destination exists; 'overwrite' replaces it. Files larger than 150 MB are rejected (Dropbox requires a chunked upload session for those — use the desktop client). For bulk uploads of many files, use the dropbox skill's dbx_sync.py instead.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | add = fail if destination exists (default); overwrite = replace it | |
| path | Yes | Dropbox destination path, e.g. /Misc/report.pdf | |
| local_path | No | Local source file path (default: <local Dropbox folder>/<path>) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint: true, and description expands on behavioral details: atomic upload, default local path behavior, mode options (add fails if exists, overwrite replaces), and a clear size limit (150 MB rejected). No contradictions.
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?
Four sentences cover purpose, defaults, modes, constraints, and alternatives. Each sentence adds value; no fluff. Front-loaded with core purpose.
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 3 parameters, no output schema, and annotations present, the description is fully complete. It covers all essential usage details: what it does, how to use parameters, constraints (size limit), error scenarios (mode conflict), and alternatives for other cases.
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 coverage 100%. Description adds context beyond schema: explains default for local_path (derived from path), clarifies mode behavior, and notes file size constraint. This helps the agent understand parameter relationships and constraints.
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 'Upload a local file to Dropbox (single file, atomic).' It specifies the verb (upload), resource (local file to Dropbox), and key characteristics (single file, atomic), distinguishing it from siblings like dropbox_download and dropbox_move.
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?
Provides explicit guidance on when to use this tool (single file upload) and when not to (files >150 MB, bulk uploads). Names alternative tools: 'use the desktop client' for chunked uploads and 'dbx_sync.py' for bulk uploads. Also explains the mode parameter (add vs overwrite) with expectations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose: delete, download, file info, listing deleted files/revisions, move, restore (deleted, batch, specific revision), search, and upload. No two tools overlap in functionality, and descriptions clarify any potential confusion between restore variants.
Most tools follow a consistent 'dropbox_verb_noun' pattern (e.g., dropbox_delete, dropbox_search). The minor exception is 'dropbox_file_info' which uses a noun-noun form instead of verb-noun, but overall the pattern is clear and predictable.
With 11 tools, the server is well-scoped for a file management service like Dropbox. It covers essential operations (CRUD, search, version history, restoration) without being bloated or insufficient.
The tool set covers core file operations: upload, download, delete, move, search, and version/restoration. Minor gaps exist, such as no explicit folder creation or sharing tools, but these are acceptable for a basic file management interface.
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
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
MCP server for Nylas — read email, calendars, events and contacts, and send email or create events.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceThis read-only MCP Server allows you to connect to Dropbox data from Claude Desktop through CData JDBC Drivers. Free (beta) read/write servers available at https://www.cdata.com/solutions/mcp1MIT
- FlicenseAqualityNot gradedmaintenanceA local MCP server that enables Claude to manage Dropbox accounts through tools for file manipulation, searching, and sharing. It supports operations such as listing folders, moving files, creating shared links, and monitoring storage usage via natural language commands.10
- AlicenseNot gradedqualityCmaintenanceEnables Dropbox file operations such as listing, searching, downloading, and creating folders via the Dropbox API v2 through MCP.16MIT
- AlicenseNot gradedqualityCmaintenanceMCP server enabling file operations (list, search, read, rename, move) on Google Drive and OneDrive.MIT
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/danielsimonjr/dropbox-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server