dropbox-mcp
This server exposes Dropbox APIs to LLM agents as MCP tools, focused on file recovery, discovery, and single-file operations.
Restore deleted files:
dropbox_restore(latest revision),dropbox_restore_batch(multiple files), anddropbox_restore_revision(specific revision ID).Download cloud-only files:
dropbox_downloadforces a file from Dropbox servers into the local Dropbox folder, bypassing Smart Sync.Upload, move, and delete files:
dropbox_upload(single file, add/overwrite, ≤150 MB),dropbox_move(server-side move/rename with optional autorename), anddropbox_delete(to trash, recoverable ~30 days).Search and discover content:
dropbox_searchfinds files by name or content;dropbox_list_deletedlists recoverable deleted files in a folder.Inspect file metadata and history:
dropbox_file_inforeturns size, modified time, revision, and content hash;dropbox_list_revisionslists up to 100 past revisions with rev IDs and sizes.
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 v2
(@modelcontextprotocol/server) and the official dropbox npm SDK.
Supports the 2026-07-28 protocol revision (informally "MCP 2.0"): stateless
per-request metadata, server/discover capability negotiation, and no session-scoped
initialize handshake. Legacy 2025-era MCP clients continue to work on the same stdio
transport.
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
Bun 1.4 or newer (package manager and script runner)
Node.js 24 or newer (MCP server runtime — the shipped
bundle/index.mjsanddist/index.jsare launched withnode)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
bun install
bun 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
Bun is the package manager and script driver; Node remains the long-lived MCP
runtime (the Claude Code plugin entry still uses node …/bundle/index.mjs).
bun run typecheck # tsc --noEmit
bun run test # vitest run (full suite)
bun run build # emit dist/
bun run bundle # rebuild bundle/index.mjs (plugin artifact)The test suite covers config loading, every output formatter, the tool handlers
(both read-only and mutating), protocol negotiation, 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
11 tool updates
v0.3.1- First observed
dropbox_delete - First observed
dropbox_download - First observed
dropbox_file_info - First observed
dropbox_list_deleted - First observed
dropbox_list_revisions - First observed
dropbox_move - First observed
dropbox_restore - First observed
dropbox_restore_batch - First observed
dropbox_restore_revision - First observed
dropbox_search - First observed
dropbox_upload
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
Dropbox MCP Pack — wraps the Dropbox API v2
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Search, browse, and read your Dropbox files. Find documents by name or content, list folders, and…
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