dbx-mcp-server
Un servidor de Protocolo de Contexto de Modelo (MCP) que provee integración con Dropbox, permitiendo a clientes compatibles con MCP interactuar con Dropbox a través de un conjunto de poderosas herramientas.
Aviso importante: Este proyecto no está afiliado, respaldado o patrocinado por Dropbox. Es una integración independiente que funciona con la API pública de Dropbox.
Tabla de contenidos
- Inicio rápido
- Instalación
- Autenticación
- Herramientas disponibles
- Permisos de Dropbox necesarios
- Ejemplos de uso
- Desarrollo
- Licencia
Inicio rápido
- Clonar el repositorio
- Ejecuta
npm installpara instalar las dependencias - Ejecuta
npm run buildpara construir el proyecto - Ejecute
npm run setup - Configure su cliente MCP para utilizar el servidor
Requisitos previos
Registra una aplicación de Dropbox en Dropbox App Console:
- Elige la API "Scoped access
- Elige el tipo de acceso que necesita tu aplicación
- Asigna un nombre a tu aplicación y haz clic en "Crear aplicación"
- En "Permisos", selecciona los permisos deseados para las acciones que vayas a utilizar, por ejemplo
files.metadata.readarchivos.contenido.leerarchivos.contenido.escribircompartir.escribiraccount_info.read
- Añada
http://localhostcomo URI de redirección - Anote la clave y el secreto de su aplicación
Instalación
-
Clone el repositorio
git clone https://github.com/your-username/dbx-mcp-server.git cd dbx-mcp-server -
Instala las dependencias y compila
npm install npm run build -
Ejecutar el script de instalación
npm run setup -
Añadir a la configuración de MCP
Añada lo siguiente a su archivo de configuración MCP:
{ "mcpServers": { "dbx": { "command": "node", "args": ["/path/to/dbx-mcp-server/build/index.js"] } }
Autenticación
El servidor utiliza OAuth 2.0 con PKCE para la autenticación segura con Dropbox.
Variables de entorno
Obligatorias:
DROPBOX_APP_KEY: La clave de tu aplicación de DropboxDROPBOX_APP_SECRET: el secreto de tu aplicación de DropboxDROPBOX_REDIRECT_URI: URI de redirección de OAuthTOKEN_ENCRYPTION_KEY: Clave de más de 32 caracteres para el cifrado de tokens
Opcional:
TOKEN_REFRESH_THRESHOLD_MINUTES: Minutos antes de la caducidad para actualizar el token (por defecto: 5)MAX_TOKEN_REFRESH_RETRIES: Número máximo de intentos de actualización (por defecto: 3)TOKEN_REFRESH_RETRY_DELAY_MS: retardo entre intentos de actualización en ms (por defecto: 1000)
Herramientas disponibles
Operaciones con archivos
list_files: Lista los archivos de un directoriosubir_archivo: Subir un ficherodescargar_archivo: Descargar un archivosafe_delete_item: Eliminar de forma segura con soporte de papelera de reciclajecreate_folder: Crear una nueva carpetacopy_item: Copiar un archivo o carpetamover_elemento: Mover o renombrar un archivo/carpeta
Metadatos y búsqueda
get_file_metadata: Obtener metadatos de archivo/carpetasearch_file_db: Buscar archivos y carpetasget_sharing_link: Crear enlaces compartidosget_file_content: Obtener contenido de archivos
Operaciones de cuenta
get_account_info: Obtener información de la cuenta
Permisos de Dropbox requeridos
A continuación se muestra una asignación de las acciones del servidor a los ámbitos (permisos) mínimos de Dropbox OAuth necesarios:
| Acción del servidor | Ámbitos de Dropbox requeridos |
|---|---|
| list_files | archivos.metadatos.leer |
| subir_archivo | archivos.contenido.escribir, archivos.metadatos.escribir |
| descargar_archivo | archivos.contenido.leer |
| safe_delete_item | archivos.metadatos.escribir |
| crear_carpeta | archivos.metadatos.escribir |
| copiar_elemento | archivos.contenido.escribir, archivos.metadatos.escribir |
| mover_elemento | archivos.contenido.escribir, archivos.metadatos.escribir |
| obtener_metadatos_de_archivo | archivos.metadatos.leer |
| buscar_archivo_db | archivos.metadatos.leer |
| get_sharing_link | compartir.escribir |
| obtener_contenido_archivo | archivos.contenido.leer |
| obtener_información_de_cuenta | account_info.read |
Ámbitos adicionales (si son necesarios):
compartir.leer: Ver la configuración de uso compartido y los colaboradoresfile_requests.read/file_requests.write: Para funciones de solicitud de archivoscontacts.read/contacts.write: Para acceder a los contactos de Dropbox
Para obtener más información sobre los ámbitos de Dropbox, consulta la documentación de permisos de Dropbox.
Ejemplos de uso
// Listar archivos en el directorio raíz await mcp.useTool("dbx-mcp-server", "list_files", { path: "" }); // Subir un archivo await mcp.useTool("dbx-mcp-server", "upload_file", { path: "/prueba.txt", contenido: Buffer.from("Hola Mundo").toString("base64"), }); // Buscar archivos await mcp.useTool("dbx-mcp-server", "search_file_db", { query: "informe", ruta: "/Documentos", max_results: 10, })
Desarrollo
Construido con:
- TypeScript
- SDK de protocolo de contexto de modelo
- SDK de Dropbox v10.34.0
- API de Dropbox v2
Licencia
Licencia MIT
Copyright (c) 2025 Colaboradores del servidor MCP
Por el presente documento se concede permiso, de forma gratuita, a cualquier persona que obtenga una copia de este software y los archivos de documentación asociados (el "Software"), para comerciar con el Software sin restricciones, incluidos, entre otros, los derechos de uso, copia, modificación, fusión, publicación, distribución, sublicencia y/o venta de copias del Software, y para permitir que las personas a las que se proporcione el Software lo hagan, con sujeción a las siguientes condiciones:
El aviso de copyright anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE SUMINISTRA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUIDAS, ENTRE OTRAS, LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN FIN DETERMINADO Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O LOS TITULARES DE LOS DERECHOS DE AUTOR SERÁN RESPONSABLES DE NINGUNA RECLAMACIÓN, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN CONTRACTUAL, EXTRACONTRACTUAL O DE OTRO TIPO, QUE SURJA DE, O ESTÉ RELACIONADA CON EL SOFTWARE O EL USO U OTRAS OPERACIONES CON EL SOFTWARE.