Dropbox集成服务器

一个模型上下文协议(MCP)服务器,提供与Dropbox的集成,允许MCP兼容客户端通过一套强大的工具与Dropbox交互。

  • by Albiemark
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 albiemark/dbx-mcp-server

使用说明

dbx mcp服务器

一种模型上下文协议(MCP)服务器,提供与Dropbox的集成,允许MCP兼容的客户端通过一组强大的工具与Dropbox进行交互。

重要免责声明: 此项目不隶属于Dropbox,也不由Dropbox背书或赞助。它是一个独立的集成,与Dropbox的公共API一起工作。

目录

快速开始

  1. 克隆存储库
  2. 跑 npm install 安装依赖项
  3. 跑 npm run build 建设项目
  4. 在以下网址注册Dropbox应用程序 Dropbox应用程序控制台:
    • 选择“范围化访问”API
    • 选择您的应用程序所需的访问类型
    • 命名您的应用程序并单击“创建应用程序”
    • 在“权限”下,选择所需的权限:
      • files.metadata.read
      • files.content.read
      • files.content.write
      • sharing.write
      • account_info.read
    • 添加 http://localhost:3000/callback 作为您的重定向URI
    • 记下你的应用密钥和应用秘密
  5. 运行安装脚本:
    npm run setup
    
  6. 配置您的MCP客户端以使用服务器

安装

  1. 克隆存储库

    git clone https://github.com/your-username/dbx-mcp-server.git
    cd dbx-mcp-server
    
  2. 安装依赖项并构建

    npm install
    npm run build
    
  3. 运行安装脚本

    npm run setup
    
  4. 添加到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 重定向 URI
  • TOKEN_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

故障排除测试

如果测试因时间或身份验证问题而失败:

  1. 检查中的模拟实现 tests/setup.ts 符合您的测试期望
  2. 确保测试助手配置正确
  3. 对于Jest作用域错误,避免在模拟工厂函数中引用导入的变量

发展

内置:

  • TypeScript
  • 模型上下文协议SDK
  • Dropbox SDK v10.34.0
  • Dropbox API v2

许可证

MIT许可证

版权所有(c)2025 MCP服务器贡献者

特此免费向任何获得副本的人授予许可 本软件和相关文档文件(“软件”),以处理 在软件中不受限制,包括但不限于权利 使用、复制、修改、合并、发布、分发、再许可和/或销售 软件的副本,并允许软件的接收者 根据以下条件提供:

上述版权声明和本许可声明应包含在所有 软件的副本或实质性部分。

软件按“原样”提供,不提供任何形式的明示或明示担保 隐含的,包括但不限于适销性保证, 适用于特定目的且不造成伤害。在任何情况下 作者或版权持有人对任何索赔、损害赔偿或其他 因以下原因产生的责任,无论是在合同、侵权或其他诉讼中, 出于或与软件、使用或其他交易有关 软件。