dbx-mcp-server 是一个与 Dropbox 集成的模型上下文协议(MCP)服务器,它为兼容的客户端提供了一组强大的工具,用于与 Dropbox 进行交互。
⚠️ 重要提示
该项目未得到官方认可、支持或赞助,它是一个独立集成,通过使用 Dropbox 的公开 API 来实现功能。
npm install安装依赖项。npm run build构建项目。files.metadata.readfiles.content.readfiles.content.writesharing.writeaccount_info.readhttp://localhost:3000/callback作为重定向URI。npm run setup
本项目构建使用了以下技术:
应用通过OAuth 2.0与Dropbox进行通信,具体步骤如下:
const dbx = new DropboxClient({
clientId: DROPBOX_CLIENT_ID,
clientSecret: DROPBOX_CLIENT_SECRET,
redirectUri: REDIRECT_URI
});
const authorizeUrl = await dbx.authorizeAsync();
const { accessToken } = await dbx.getAccessToken(redirect_response);
dbx.filesCreateV2/commit:创建新文件或覆盖现有文件。dbx.filesReadV2/chunked:分块读取文件内容。dbx.filesDeleteV2/sync:同步删除文件。dbx.delta.sync:获取文件修改记录。dbx.usersGetCurrentAccount:获取当前用户信息。dbx.groupsCreateSubgroup:创建子组。dbx.sharingShareFolder:共享文件夹。dbx.sharingRevokeAccess:撤销访问权限。设置以下环境变量:
DROPBOX_CLIENT_ID=your_client_id
DROPBOX_CLIENT_SECRET=your_client_secret
REDIRECT_URI=http://localhost:3000/callback
如果需要通过代理访问Dropbox,请在初始化时添加代理信息:
const transport = newHttps.Agent({
proxy: {
host: 'proxy.example.com',
port: 8080,
credentials: {
user: 'proxy-user',
password: 'proxy-password'
}
}
});
const dbx = new DropboxClient({
clientId: DROPBOX_CLIENT_ID,
clientSecret: DROPBOX_CLIENT_SECRET,
redirectUri: REDIRECT_URI,
transport
});
// 上载文件
async function uploadFile(filePath, fileName) {
const fileBuffer = await fs.readFile(filePath);
const response = await dbx.filesCreateV2/commit({
path: fileName,
contents: { buffer: fileBuffer },
mode: 'overwrite'
});
return response;
}
// 下载文件
async function downloadFile(filePath, fileName) {
const response = await dbx.filesReadV2/chunked({
path: filePath,
maxBytes: 1024 * 1024 // 每次读取1MB
});
return response;
}
使用Jest运行测试:
npm test
项目使用了以下工具:
本项目采用 MIT 许可证。
版权 (c) 2025 MCP Server 贡献者
允许任何人免费获得本软件副本及相关文档文件(“软件”),不受限制地处理,包括但不限于以下权利:使用、复制、修改、合并、发布、分发、转授和/或出售软件副本,并允许获得该软件的人进行上述行为,但需遵守以下条件:上述版权声明和本许可声明应包含在所有软件副本或其中大部分内容中。
软件按“原样”提供,不做任何形式的担保,包括但不限于对适销性、特定用途适用性或不侵权的明示或暗示保证。在任何情况下,作者或版权持有者不对因使用或无法使用该软件而产生的任何索赔、损害或其他责任负责。