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 install
para instalar las dependencias - Ejecuta
npm run build
para 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.read
archivos.contenido.leer
archivos.contenido.escribir
compartir.escribir
account_info.read
- Añada
http://localhost
como 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.