Dropbox集成服务器

一个Model Context Protocol (MCP)服务器,提供与Dropbox的集成,允许MCP兼容客户端通过一套强大的工具与Dropbox交互。

  • by amgadabdelhafez
  • TypeScript
  • 本地部署
  • 30 星标
  • 更新于
在 GitHub 查看 amgadabdelhafez/Dropbox-MCP-Server

使用说明

dbx mcp服务器

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

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

目录

快速开始

  1. 克隆存储库
  2. 跑 npm install 安装依赖项
  3. 跑 npm run build 建设项目
  4. 跑 npm run setup
  5. 配置您的MCP客户端以使用服务器

先决条件

在以下网址注册Dropbox应用程序 Dropbox应用程序控制台:

  • 选择“范围化访问”API
  • 选择您的应用程序所需的访问类型
  • 命名您的应用程序并单击“创建应用程序”
  • 在“权限”下,为您将要使用的操作选择所需的权限,例如:
    • files.metadata.read
    • files.content.read
    • files.content.write
    • sharing.write
    • account_info.read
  • 添加 http://localhost 作为您的重定向URI
  • 记下你的应用密钥和应用秘密

安装

  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:获取帐户信息

所需的Dropbox权限

以下是服务器操作与所需的最低Dropbox OAuth范围(权限)的映射:

服务器操作 所需的Dropbox范围
列表文件 files.metadata.read
上传文件 files.content.write, files.metadata.write
下载文件 files.content.read
safe_delete_item files.metadata.write
创建文件夹 files.metadata.write
copy_item files.content.write, files.metadata.write
move_item files.content.write, files.metadata.write
获取_文件_元数据 files.metadata.read
search_file_db files.metadata.read
get_sharing_link sharing.write
获取_文件_内容 files.content.read
get_count_info account_info.read

附加范围(如需要):

  • sharing.read:查看共享设置和协作者
  • file_requests.read / file_requests.write:用于文件请求功能
  • contacts.read / contacts.write:用于访问Dropbox联系人

有关Dropbox范围的更多详细信息,请参阅 Dropbox权限文档.

使用示例

// 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,
});

发展

内置:

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

许可证

MIT许可证

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

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

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

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