使用说明
Dropbox MCP服务器
Dropbox的模型上下文协议(MCP)服务器实现,使AI助手能够与Dropbox文件和文件夹进行交互。使用TypeScript构建并部署在Cloudflare Workers上,以实现全球边缘性能。
特性
- 🔐 OAuth 2.0与PKCE -安全身份验证流程
- 🔍 文件搜索 -搜索所有Dropbox文件和文件夹
- 📥 文件获取 -下载文件内容(文本或二进制)
- 📋 最近文件 -列出最近修改的文件
- 👤 用户档案 -访问Dropbox帐户信息
- ⚡ 边缘部署 -在Cloudflare Workers上运行以实现低延迟
- 🔄 许可证管理 -自动令牌刷新和会话管理
可用工具
| 工具 | 说明 | 所需范围 |
|---|---|---|
dropbox_search |
在Dropbox中搜索与查询匹配的文件 | files.metadata.read, account_info.read |
dropbox_fetch |
使用可选的原始下载按路径获取文件 | files.content.read |
dropbox_search_files |
搜索Dropbox文件并返回结果(别名) | files.metadata.read, account_info.read |
dropbox_fetch_file |
检索文件的文本或原始内容(别名) | files.content.read, account_info.read |
dropbox_list_recent_files |
返回最近修改的文件 | files.metadata.read, account_info.read |
dropbox_get_profile |
检索当前用户的Dropbox个人资料 | account_info.read |
先决条件
- Node.js 18+(用于本地开发)
- Dropbox应用程序凭据(应用程序密钥和应用程序密钥)
- Cloudflare帐户(用于部署)
- Wrangler CLI已安装(
npm install -g wrangler)
设置
1.创建Dropbox应用程序
- 首选 Dropbox应用程序控制台
- 点击“创建应用”
- 选择“范围访问”
- 选择“完整Dropbox”访问类型
- 为你的应用命名
- 点击“创建应用”
- 在应用程序设置中:
- 注意你的 应用key (客户端ID)
- 注意你的 应用密钥 (客户机密)
- 添加重定向URI:
https://your-worker-domain.workers.dev/oauth/callback - 在“权限”选项卡下,启用:
files.metadata.readfiles.content.readaccount_info.read
- 点击“提交”以保存权限
2.安装依赖项
cd dropbox-mcp-server
npm install
3.配置环境
创建一个 .env 文件:
cp env.example .env
编辑 .env 使用您的Dropbox应用凭据:
DROPBOX_CLIENT_ID=your_app_key_here
DROPBOX_CLIENT_SECRET=your_app_secret_here
DROPBOX_REDIRECT_URI=http://localhost:3003/oauth/callback
PORT=3003
NODE_ENV=development
MCP_SERVER_NAME=dropbox-mcp-server
MCP_SERVER_VERSION=1.0.0
FRONTEND_URL=http://localhost:5173
BACKEND_API_URL=http://localhost:3002
4.创建KV命名空间
# Create KV namespace for session storage
npm run kv:create
# Note the namespace ID and update wrangler.toml
5.配置Cloudflare机密
wrangler secret put DROPBOX_CLIENT_ID
# Enter your Dropbox App Key
wrangler secret put DROPBOX_CLIENT_SECRET
# Enter your Dropbox App Secret
wrangler secret put DROPBOX_REDIRECT_URI
# Enter: https://your-worker-domain.workers.dev/oauth/callback
wrangler secret put FRONTEND_URL
# Enter your frontend URL (e.g., https://zerotwo.app)
wrangler secret put BACKEND_API_URL
# Enter your backend API URL (optional)
发展
本地开发服务器
运行本地Express服务器:
npm run dev
服务器将于启动 http://localhost:3003
使用Cloudflare Workers进行测试
与牧马人一起在当地跑步:
npm run dev:worker
为生产而建
npm run build
部署
部署到Cloudflare Workers
# Deploy to production
npm run deploy
# Or deploy to specific environment
npm run deploy:production
更新wrangler.toml
部署前,更新 wrangler.toml 使用您的KV命名空间ID:
[[kv_namespaces]]
binding = "SESSIONS"
id = "your_kv_namespace_id_here"
API终点
健康检查
GET /health
返回服务器状态和版本信息。
OAuth流
1.获取授权URL
GET /oauth/authorize?userId={userId}&state={state}
答复:
{
"authorizationUrl": "https://www.dropbox.com/oauth2/authorize?...",
"state": "user-state",
"codeVerifier": "pkce-code-verifier"
}
前端应:
- 商店
codeVerifier会话/本地存储 - 将用户重定向到
authorizationUrl
2.OAuth回调
GET /oauth/callback?code={code}&state={state}
使用代码和状态参数重定向到前端。
3.代币交易代码
POST /oauth/exchange
Content-Type: application/json
{
"code": "authorization_code",
"codeVerifier": "pkce_code_verifier",
"userId": "user_id"
}
答复:
{
"accessToken": "sl.xxx",
"refreshToken": "xxx",
"expiresIn": 14400,
"timestamp": "2024-01-01T00:00:00.000Z"
}
4.刷新令牌
POST /oauth/refresh
Content-Type: application/json
{
"userId": "user_id",
"refreshToken": "refresh_token"
}
5.断开连接
POST /oauth/disconnect
Content-Type: application/json
{
"userId": "user_id"
}
MCP协议端点
POST /mcp
Content-Type: application/json
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "dropbox_search",
"arguments": {
"userId": "user_id",
"query": "contract",
"maxResults": 20
}
},
"id": 1
}
工具示例
搜索文件
{
"name": "dropbox_search",
"arguments": {
"userId": "user123",
"query": "budget 2024",
"maxResults": 10,
"fileExtensions": [".pdf", ".xlsx"]
}
}
获取文件
{
"name": "dropbox_fetch",
"arguments": {
"userId": "user123",
"path": "/Documents/contract.pdf",
"rawDownload": true
}
}
列出最近使用的文件
{
"name": "dropbox_list_recent_files",
"arguments": {
"userId": "user123",
"limit": 20
}
}
获取用户资料
{
"name": "dropbox_get_profile",
"arguments": {
"userId": "user123"
}
}
建筑
组件
- OAuth管理器 -使用PKCE处理OAuth 2.0流
- Dropbox客户端 -包装Dropbox API调用
- MCP服务器 -实现模型上下文协议
- 快递服务器 -本地开发服务器
- Cloudflare工作人员 -生产边缘部署
会话管理
会话存储在:
- 本地开发:内存映射
- 生产:Cloudflare KV(具有30天TTL)
令牌刷新
在以下情况下,令牌会自动刷新:
- 访问令牌已过期
- 会话中存在有效的刷新令牌
回退:如果缺少KV会话,则从用户配置文件中查询后端API中的令牌。
安全
- ✅ OAuth 2.0与PKCE(代码交换证明密钥)
- ✅ Cloudflare KV中的安全令牌存储
- ✅ 自动令牌刷新
- ✅ CORS保护
- ✅ 没有令牌暴露在前端(OAuth流期间除外)
故障排除
“OAuth2客户端ID无效”
- 检查你的
DROPBOX_CLIENT_ID是正确的 - 验证应用程序是否在Dropbox应用程序控制台中正确配置
“重定向URI不匹配”
- 确保Dropbox应用程序中的重定向URI与您部署的工作URL匹配
- 对于本地开发人员:
http://localhost:3003/oauth/callback - 生产:
https://your-worker.workers.dev/oauth/callback
“缺少作用域”
- 转到Dropbox应用程序控制台→ “权限”选项卡
- 启用所需范围
- 点击“提交”以保存更改
- 用户可能需要重新进行身份验证
“找不到KV命名空间”
- 跑
npm run kv:create创建命名空间 - 更新
wrangler.toml具有命名空间ID - 重新部署
npm run deploy
开发脚本
npm run dev # Run local Express server
npm run dev:worker # Run Cloudflare Workers locally
npm run build # Build TypeScript
npm run build:worker # Build and validate for Workers
npm run deploy # Deploy to Cloudflare Workers
npm run deploy:production # Deploy to production environment
npm run kv:create # Create KV namespace
npm run lint # Run ESLint
npm run format # Format with Prettier
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 本地测试
- 提交拉取请求
许可证
MIT许可证-有关详细信息,请参阅许可证文件
支持
对于问题和疑问:
相关项目
由ZeroTwo提供技术支持
此Dropbox MCP连接器是 ZeroTwo人工智能平台 --通过GPT-5、Claude和Gemini,您可以管理文件、搜索文档并自动化Dropbox工作流程。
| 🌐 ZeroTwo——一个应用程序中的所有AI模型 | 使用GPT-5、Claude和Gemini在一个地方搜索和管理您的Dropbox文件。 |
| ✨ 零两个功能 | AI文件管理、文档分析、网络搜索和MCP驱动的云存储工具。 |
| 🤖 人工智能模型——GPT-5、克劳德和双子座 | 使用世界上最好的人工智能来查找、分析和组织您的文件。 |
| 🔌 ZeroTwo连接器和集成 | 将Dropbox、Google Drive、SharePoint、Gmail等连接到您的AI工作流程。 |
| 💰 零二定价 | 一个替代ChatGPT Plus、Claude Pro和Gemini Advanced的订阅。 |
| 📝 ZeroTwo博客 | AI文件管理技巧、生产力指南和ZeroTwo产品更新。 |
| 🚀 免费试用ZeroTwo | 让AI组织你的Dropbox——立即免费开始。 |
专为ZeroTwo打造 --使用此Dropbox MCP服务器 ZeroTwo的AI连接器系统 通过人工智能助手中的自然语言搜索、获取和管理Dropbox文件。
