Dropbox MCP Server

Un servidor MCP para interactuar con Dropbox, que permite a los clientes gestionar archivos y carpetas.

Documentación

dbx-mcp-server

Un servidor de Model Context Protocol (MCP) que proporciona integración con Dropbox, permitiendo que clientes compatibles con MCP interactúen con Dropbox a través de un conjunto de herramientas potentes.

Aviso importante: Este proyecto no está afiliado, respaldado ni patrocinado por Dropbox. Es una integración independiente que funciona con la API pública de Dropbox.

Tabla de Contenidos

Inicio Rápido

  1. Clona el repositorio
  2. Ejecuta npm install para instalar las dependencias
  3. Ejecuta npm run build para compilar el proyecto
  4. Ejecuta npm run setup
  5. Configura tu cliente MCP para usar el servidor

Requisitos Previos

Registra una aplicación de Dropbox en Consola de Aplicaciones de Dropbox:

  • Elige la API de "Acceso con alcance"
  • Elige el tipo de acceso que tu aplicación necesita
  • Nombra tu aplicación y haz clic en "Crear aplicación"
  • En "Permisos", selecciona los permisos deseados para las acciones que usarás, por ejemplo:
    • files.metadata.read
    • files.content.read
    • files.content.write
    • sharing.write
    • account_info.read
  • Agrega http://localhost como tu URI de redirección
  • Anota tu clave de aplicación y secreto de aplicación

Instalación

  1. Clona el repositorio

    git clone https://github.com/your-username/dbx-mcp-server.git
    cd dbx-mcp-server
    
  2. Instala las dependencias y compila

    npm install
    npm run build
    
  3. Ejecuta el script de configuración

    npm run setup
    
  4. Agrega a la configuración de MCP

    Agrega lo siguiente a tu archivo de configuración de 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 una autenticación segura con Dropbox.

Variables de Entorno

Requeridas:

  • DROPBOX_APP_KEY: La clave de tu aplicación de Dropbox
  • DROPBOX_APP_SECRET: El secreto de tu aplicación de Dropbox
  • DROPBOX_REDIRECT_URI: URI de redirección de OAuth
  • TOKEN_ENCRYPTION_KEY: Clave de 32+ caracteres para el cifrado de tokens

Opcionales:

  • TOKEN_REFRESH_THRESHOLD_MINUTES: Minutos antes de la expiración para renovar el token (predeterminado: 5)
  • MAX_TOKEN_REFRESH_RETRIES: Número máximo de intentos de renovación (predeterminado: 3)
  • TOKEN_REFRESH_RETRY_DELAY_MS: Retraso entre intentos de renovación en ms (predeterminado: 1000)

Herramientas Disponibles

Operaciones de Archivos

  • list_files: Lista archivos en un directorio
  • upload_file: Sube un archivo
  • download_file: Descarga un archivo
  • safe_delete_item: Elimina de forma segura con soporte de papelera de reciclaje
  • create_folder: Crea una nueva carpeta
  • copy_item: Copia un archivo o carpeta
  • move_item: Mueve o renombra un archivo/carpeta

Metadatos y Búsqueda

  • get_file_metadata: Obtiene metadatos de archivo/carpeta
  • search_file_db: Busca archivos y carpetas
  • get_sharing_link: Crea enlaces para compartir
  • get_file_content: Obtiene el contenido de un archivo

Operaciones de Cuenta

  • get_account_info: Obtiene información de la cuenta

Permisos Requeridos de Dropbox

A continuación se muestra un mapeo de las acciones del servidor a los alcances (permisos) mínimos de OAuth de Dropbox requeridos:

Acción del ServidorAlcances de Dropbox Requeridos
list_filesfiles.metadata.read
upload_filefiles.content.write, files.metadata.write
download_filefiles.content.read
safe_delete_itemfiles.metadata.write
create_folderfiles.metadata.write
copy_itemfiles.content.write, files.metadata.write
move_itemfiles.content.write, files.metadata.write
get_file_metadatafiles.metadata.read
search_file_dbfiles.metadata.read
get_sharing_linksharing.write
get_file_contentfiles.content.read
get_account_infoaccount_info.read

Alcances Adicionales (si es necesario):

  • sharing.read: Ver configuraciones de uso compartido y colaboradores
  • file_requests.read / file_requests.write: Para funciones de solicitud de archivos
  • contacts.read / contacts.write: Para acceder a contactos de Dropbox

Para más detalles sobre los alcances de Dropbox, consulta la Documentación de Permisos de Dropbox.

Ejemplos de Uso

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

Desarrollo

Construido con:

  • TypeScript
  • Model Context Protocol SDK
  • Dropbox SDK v10.34.0
  • Dropbox API v2

Licencia

Licencia MIT

Copyright (c) 2025 MCP Server Contributors

Se otorga permiso, de forma gratuita, a cualquier persona que obtenga una copia de este software y los archivos de documentación asociados (el "Software"), para tratar con el Software sin restricciones, incluyendo, sin limitación, los derechos de usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar y/o vender copias del Software, y para permitir a las personas a quienes se les proporcione el Software hacer lo mismo, sujeto 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 PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DE DERECHOS DE AUTOR SERÁN RESPONSABLES DE CUALQUIER RECLAMO, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O DE OTRA MANERA, QUE SURJA DE, FUERA DE O EN CONEXIÓN CON EL SOFTWARE O EL USO U OTROS TRATOS EN EL SOFTWARE.