使用说明
dbx mcp服务器
一种模型上下文协议(MCP)服务器,提供与Dropbox的集成,允许MCP兼容的客户端通过一组强大的工具与Dropbox进行交互。
重要免责声明: 此项目不隶属于Dropbox,也不由Dropbox背书或赞助。它是一个独立的集成,与Dropbox的公共API一起工作。
目录
快速开始
- 克隆存储库
- 跑
npm install安装依赖项 - 跑
npm run build建设项目 - 在以下网址注册Dropbox应用程序 Dropbox应用程序控制台:
- 选择“范围化访问”API
- 选择您的应用程序所需的访问类型
- 命名您的应用程序并单击“创建应用程序”
- 在“权限”下,选择所需的权限:
files.metadata.readfiles.content.readfiles.content.writesharing.writeaccount_info.read
- 添加
http://localhost:3000/callback作为您的重定向URI - 记下你的应用密钥和应用秘密
- 运行安装脚本:
npm run setup - 配置您的MCP客户端以使用服务器
安装
-
克隆存储库
git clone https://github.com/your-username/dbx-mcp-server.git cd dbx-mcp-server -
安装依赖项并构建
npm install npm run build -
运行安装脚本
npm run setup -
添加到MCP设置
将以下内容添加到MCP设置文件中:
{ "mcpServers": { "dbx": { "command": "node", "args": ["/path/to/dbx-mcp-server/build/index.js"] } } }
认证
服务器使用OAuth 2.0和PKCE与Dropbox进行安全身份验证。
环境变量
必修的:
DROPBOX_APP_KEY:Dropbox应用程序的密钥DROPBOX_APP_SECRET:Dropbox应用程序的秘密DROPBOX_REDIRECT_URIOAuth 重定向 URITOKEN_ENCRYPTION_KEY:用于令牌加密的32+字符密钥
可选:
TOKEN_REFRESH_THRESHOLD_MINUTES:到期前几分钟刷新令牌(默认值:5)MAX_TOKEN_REFRESH_RETRIES:刷新尝试的最大次数(默认值:3)TOKEN_REFRESH_RETRY_DELAY_MS:刷新尝试之间的延迟(毫秒)(默认值:1000)
可用工具
文件操作
list_files:列出目录中的文件upload_file:上传文件download_file:下载文件safe_delete_item:使用回收站支持安全删除create_folder:创建新文件夹copy_item:复制文件或文件夹move_item:移动或重命名文件/文件夹
元数据和搜索
get_file_metadata:获取文件/文件夹元数据search_file_db:搜索文件和文件夹get_sharing_link:创建共享链接get_file_content:获取文件内容
账户操作
get_account_info:获取帐户信息
使用示例
// List files in root directory
await mcp.useTool("dbx-mcp-server", "list_files", { path: "" });
// Upload a file
await mcp.useTool("dbx-mcp-server", "upload_file", {
path: "/test.txt",
content: Buffer.from("Hello World").toString("base64"),
});
// Search for files
await mcp.useTool("dbx-mcp-server", "search_file_db", {
query: "report",
path: "/Documents",
max_results: 10,
});
测试
运行测试套件:
npm test
测试验证所有操作,包括身份验证、文件操作和错误处理。
测试结构
测试套件分为几个模块:
- Dropbox运营:基本文件操作测试(上传、下载、列表等)
- 账户操作:访问帐户信息的测试
- 搜索和删除:使用回收站支持进行搜索功能和安全删除测试
- 资源系统:MCP资源系统集成测试
处理测试数据
测试使用基于时间戳动态生成的文件和文件夹名称来避免冲突。测试执行后,测试数据会自动清理。
运行特定测试
要运行特定的测试文件或测试组,请执行以下操作:
npm test -- tests/dropbox/search-delete.test.ts # Run specific test file
npm test -- -t "should search for files" # Run tests matching description
故障排除测试
如果测试因时间或身份验证问题而失败:
- 检查中的模拟实现
tests/setup.ts符合您的测试期望 - 确保测试助手配置正确
- 对于Jest作用域错误,避免在模拟工厂函数中引用导入的变量
发展
内置:
- TypeScript
- 模型上下文协议SDK
- Dropbox SDK v10.34.0
- Dropbox API v2
许可证
MIT许可证
版权所有(c)2025 MCP服务器贡献者
特此免费向任何获得副本的人授予许可 本软件和相关文档文件(“软件”),以处理 在软件中不受限制,包括但不限于权利 使用、复制、修改、合并、发布、分发、再许可和/或销售 软件的副本,并允许软件的接收者 根据以下条件提供:
上述版权声明和本许可声明应包含在所有 软件的副本或实质性部分。
软件按“原样”提供,不提供任何形式的明示或明示担保 隐含的,包括但不限于适销性保证, 适用于特定目的且不造成伤害。在任何情况下 作者或版权持有人对任何索赔、损害赔偿或其他 因以下原因产生的责任,无论是在合同、侵权或其他诉讼中, 出于或与软件、使用或其他交易有关 软件。