Skip to main content
Glama
danielsimonjr

dropbox-mcp

dropbox-mcp

一个 MCP (Model Context Protocol) 服务器,将 Dropbox API 作为工具暴露给 LLM 代理。基于 FastMCP 和 dropbox-sdk-python 构建。

重点:针对现有 Dropbox 账户的恢复与发现 — 恢复已删除文件、列出修订版本、搜索内容以及强制下载仅云端文件。该服务器与 Dropbox 服务器端 API 通信,而非本地同步文件夹,因此它可以查看并恢复本地同步已删除的文件。


工具

所有工具名称均以 dropbox_ 为前缀,以避免与其他 MCP 服务器冲突。

工具

行为

只读

dropbox_restore

恢复已删除文件的最新服务器端修订版本。

否

dropbox_restore_batch

一次调用恢复多个文件;报告每个路径的结果。

否

dropbox_restore_revision

恢复特定的修订 ID(例如,已知的良好早期版本)。

否

dropbox_download

强制将文件从 Dropbox 下载到本地同步文件夹,绕过智能同步的仅云端状态。

否

dropbox_search

在整个账户中按文件名或内容搜索。返回路径、大小、修改日期。

是

dropbox_list_deleted

列出文件夹中已删除的条目(可选递归)。作为恢复工作流的输入。

是

dropbox_file_info

返回路径的大小、修改时间、修订 ID 和内容哈希。

是

dropbox_list_revisions

列出文件的最多 100 个修订版本,包含修订 ID、大小和修改时间。

是

只读工具可以安全地自由调用。四个恢复/下载工具会改变 Dropbox 服务器或本地磁盘的状态。


Related MCP server: Dropbox MCP Server

安装

先决条件

  • Python 3.10 或更高版本

  • 一个 Dropbox 账户和一个 Dropbox 应用,具有 files.content.read、files.content.write 和 files.metadata.read 权限范围

安装

git clone https://github.com/danielsimonjr/dropbox-mcp.git
cd dropbox-mcp
pip install -e .

或者,仅安装依赖项:

pip install -r requirements.txt

身份验证

服务器在启动时从 ~/.claude/channels/dropbox/.env 加载凭据。创建该文件并粘贴以下模板,然后填入您的值:

mkdir -p ~/.claude/channels/dropbox
touch ~/.claude/channels/dropbox/.env

模板:

# --- 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\Dropbox

支持两种身份验证模式,按顺序尝试:

  1. OAuth 2 刷新令牌(推荐): 设置 DROPBOX_REFRESH_TOKEN、DROPBOX_APP_KEY 和 DROPBOX_APP_SECRET。访问令牌会自动刷新,因此凭据不会过期。

  2. 旧版长期访问令牌(回退): 仅设置 DROPBOX_ACCESS_TOKEN。从应用控制台获取更简单,但对于较新的应用,令牌会在几小时后过期。


运行服务器

直接运行(用于测试)

python server.py

服务器通过 stdio 通信,因此没有交互式输出 — 它等待 stdin 上的 MCP 协议消息。

使用 MCP Inspector

npx @modelcontextprotocol/inspector python server.py

这将打开一个浏览器 UI,您可以在其中列出工具并手动调用它们。

注册到 Claude Code

在您的 ~/.claude/.mcp.json 中添加一个条目:

{
  "mcpServers": {
    "dropbox": {
      "command": "python",
      "args": [
        "-X", "utf8",
        "C:\\path\\to\\dropbox-mcp\\server.py"
      ]
    }
  }
}

建议在 Windows 上使用 -X utf8 标志,这样结果中的非 ASCII 路径就不会导致默认的 cp1252 编码出错。

重启 Claude Code 以使注册生效。


示例

恢复意外删除的文件:

Agent: dropbox_restore(path="/Projects/report-final.docx")
Result: Restored: /Projects/report-final.docx (rev: abc123, size: 45678 bytes)

在不知道确切位置的情况下查找文件:

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
      ...

回滚到特定的早期修订版本:

Agent: dropbox_list_revisions(path="/report.docx", limit=5)
Agent: dropbox_restore_revision(path="/report.docx", rev="0123abc")

安全说明

  • .env 文件包含长期凭据 — 请将其排除在版本控制之外(默认的 .gitignore 已经排除了 .env 文件)。

  • 从用户的角度来看,恢复和下载工具不是幂等的:它们会改变 Dropbox 状态或覆盖本地文件。代理在调用它们之前应确认意图,尤其是 dropbox_restore_batch。

  • 服务器不绑定任何网络端口 — 通信仅通过 stdio 进行,因此 MCP 层本身没有入站攻击面。唯一的出站连接是通过 HTTPS 连接到 api.dropbox.com。

  • 日志发送到 stderr,从不发送到 stdout(stdout 保留用于 MCP 协议帧)。


开发

# Syntax check
python -m py_compile server.py

# Quick smoke test (lists registered tools)
npx @modelcontextprotocol/inspector python server.py

对于工具界面的更改,请在同一次提交中更新此 README 和 CHANGELOG.md。


许可证

MIT — 请参阅 LICENSE。

Available Tools

11 tools
dropbox_deleteA
Destructive

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesDropbox path of the file or folder to delete

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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_downloadA
Destructive

Force-download a file from Dropbox servers to the local Dropbox folder. Useful when Smart Sync keeps files cloud-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesDropbox path of the file to download

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_infoB
Read-only

Get metadata for a file on Dropbox servers: size, modified date, revision, content hash.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesDropbox path

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_deletedA
Read-only

List recently deleted files in a Dropbox folder. Shows files that can be restored.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesDropbox folder path
recursiveNoRecurse into subfolders (default false)

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_revisionsA
Read-only

List all available revisions of a file. Useful for finding older versions to restore.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesDropbox path of the file
limitNoMaximum revisions, capped at 100 (default 10)

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_moveA
Destructive

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
to_pathYesNew Dropbox path
from_pathYesCurrent Dropbox path
autorenameNoIf destination exists, auto-rename instead of failing (default false)

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_restoreA
Destructive

Restore a deleted file from Dropbox's server-side history. Finds the most recent revision and restores it.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesDropbox path of the file to restore

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_batchA
Destructive

Restore multiple deleted files from Dropbox history.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsYesDropbox paths to restore

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_revisionB
Destructive

Restore a specific revision of a file by revision ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
revYesRevision ID to restore to
pathYesDropbox path of the file

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_uploadA
Destructive

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoadd = fail if destination exists (default); overwrite = replace it
pathYesDropbox destination path, e.g. /Misc/report.pdf
local_pathNoLocal source file path (default: <local Dropbox folder>/<path>)

TDQS

A5/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

  1. 11 tool updatesv0.3.1
    • First observeddropbox_delete
    • First observeddropbox_download
    • First observeddropbox_file_info
    • First observeddropbox_list_deleted
    • First observeddropbox_list_revisions
    • First observeddropbox_move
    • First observeddropbox_restore
    • First observeddropbox_restore_batch
    • First observeddropbox_restore_revision
    • First observeddropbox_search
    • First observeddropbox_upload

TDQS

A3.9/5.0

Scored across 11 tools

Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    This 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/mcp
    1
    MIT
  • F
    license
    A
    quality
    Not graded
    maintenance
    A 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
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables Dropbox file operations such as listing, searching, downloading, and creating folders via the Dropbox API v2 through MCP.
    232 npm
    MIT