Dropbox MCP

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

Documentación

dbx-mcp-server

Un servidor del Protocolo de Contexto de Modelos (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: Listar archivos en un directorio
  • upload_file: Subir un archivo
  • download_file: Descargar un archivo
  • safe_delete_item: Eliminar de forma segura con soporte de papelera de reciclaje
  • create_folder: Crear una nueva carpeta
  • copy_item: Copiar un archivo o carpeta
  • move_item: Mover o renombrar un archivo/carpeta

Metadatos y Búsqueda

  • get_file_metadata: Obtener metadatos de archivo/carpeta
  • search_file_db: Buscar archivos y carpetas
  • get_sharing_link: Crear enlaces para compartir
  • get_file_content: Obtener contenido de archivos

Operaciones de Cuenta

  • get_account_info: Obtener información de la cuenta

Permisos Requeridos de Dropbox

A continuación se muestra un mapeo de las acciones del servidor a los alcances mínimos de OAuth de Dropbox (permisos) 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
  • SDK del Protocolo de Contexto de Modelos
  • Dropbox SDK v10.34.0
  • Dropbox API v2

Licencia

Licencia MIT

Copyright (c) 2025 Contribuyentes del Servidor MCP

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 en el Software sin restricción, incluidos, 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ÑOS U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O DE OTRO MODO, QUE SURJA DE, FUERA DE O EN CONEXIÓN CON EL SOFTWARE O EL USO U OTROS TRATOS EN EL SOFTWARE.