# 滴箱 MCP 服务器
## 基本信息
- Slug: `albiemark-dbx-mcp-server`
- Source: modelscope
- Publisher: @Albiemark/dbx-mcp-server
- Categories: cloud-storage / file-systems
- Hosted: No
- License: MIT License
- Source URL: https://www.modelscope.cn/mcp/servers/@Albiemark/dbx-mcp-server
## 简介
一种模型上下文协议服务器，使人工智能应用程序能够与Dropbox互动，通过Dropbox的API提供文件操作、元数据检索、搜索和账户管理的工具。
## 安装提示

```bash
npm run setup
```

## MCP Server 详情

# dbx-mcp-server

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

**重要声明：**此项目与Dropbox无关联、未得到其认可或赞助。这是一个独立的集成，使用了Dropbox的公共API。

## 目录

- [快速开始](#快速开始)
- [安装](#安装)
- [认证](#认证)
- [可用工具](#可用工具)
- [配置](#配置)
- [使用示例](#使用示例)
- [测试](#测试)
- [开发](#开发)
- [许可](#许可)

## 快速开始

1. 克隆仓库
2. 运行 `npm install` 安装依赖
3. 运行 `npm run build` 构建项目
4. 在[Dropbox应用控制台](https://www.dropbox.com/developers/apps)注册一个Dropbox应用：
   - 选择"Scoped access" API
   - 选择您的应用需要的访问类型
   - 命名您的应用并点击"创建应用"
   - 在"权限"下，选择所需权限：
     - `files.metadata.read`
     - `files.content.read`
     - `files.content.write`
     - `sharing.write`
     - `account_info.read`
   - 添加 `http://localhost:3000/callback` 作为您的重定向URI
   - 记录您的App key和App secret
5. 运行设置脚本：
   ```bash
   npm run setup
   ```
6. 配置您的MCP客户端以使用该服务器

## 安装

1. **克隆仓库**

   ```bash
   git clone https://github.com/your-username/dbx-mcp-server.git
   cd dbx-mcp-server
   ```

2. **安装依赖并构建**

   ```bash
   npm install
   npm run build
   ```

3. **运行设置脚本**

   ```bash
   npm run setup
   ```

4. **添加到MCP设置**

   将以下内容添加到您的MCP设置文件中：

   ```json
   {
     "mcpServers": {
       "dbx": {
         "command": "node",
         "args": ["/path/to/dbx-mcp-server/build/index.js"]
       }
     }
   }
   ```

## 认证

服务器使用带有PKCE的OAuth 2.0来安全地与Dropbox进行身份验证。

### 环境变量

必需：

- `DROPBOX_APP_KEY`: 您的Dropbox应用的key
- `DROPBOX_APP_SECRET`: 您的Dropbox应用的secret
- `DROPBOX_REDIRECT_URI`: OAuth重定向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`: 获取账户信息

## 使用示例

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


## 测试

运行测试套件：

```bash
npm test
```


测试验证所有操作，包括身份验证、文件操作和错误处理。

### 测试结构

测试套件被组织成几个模块：

- **Dropbox 操作**: 基本文件操作（上传、下载、列出等）的测试
- **账户操作**: 访问账户信息的测试
- **搜索与删除**: 搜索功能的测试及支持回收站的安全删除
- **资源系统**: MCP 资源系统集成的测试

### 处理测试数据

测试使用基于时间戳动态生成的文件名和文件夹名以避免冲突。测试数据在测试执行后会自动清理。

### 运行特定测试

要运行特定的测试文件或测试组：

```bash
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
- Model Context Protocol SDK
- Dropbox SDK v10.34.0
- Dropbox API v2

## 许可证

MIT 许可证

版权所有 (c) 2025 MCP Server 贡献者

特此授予任何人免费获得本软件及其相关文档文件（“软件”）副本的权利，可以不受限制地使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本，并允许向其提供软件的人这样做，但须遵守以下条件：

上述版权声明和此许可声明必须包含在软件的所有副本或重要部分中。

本软件按“原样”提供，不附带任何明示或暗示的保证，包括但不限于适销性、特定用途适用性和非侵权性的保证。在任何情况下，作者或版权持有人都不对任何索赔、损害或其他责任负责，无论是在合同诉讼、侵权行为或其他情况下，因使用本软件或与之相关的其他事宜引起。

[![smithery 徽章](https://smithery.ai/badge/@Albiemark/dbx-mcp-server)](https://smithery.ai/server/@Albiemark/dbx-mcp-server)

