dbx-mcp-server
Un serveur Model Context Protocol (MCP) qui fournit une intégration avec Dropbox, permettant aux clients compatibles MCP d'interagir avec Dropbox par le biais d'un ensemble d'outils puissants.
Avertissement important : ce projet n'est pas affilié à Dropbox, ni approuvé par elle, ni sponsorisé par elle. Il s'agit d'une intégration indépendante qui fonctionne avec l'API publique de Dropbox.
Table des matières
- Démarrage rapide
- Installation de l'application
- Authentification
- Outils disponibles
- Configuration de l'application
- Exemples d'utilisation
- Test
- Développement
- Licence
Démarrage rapide
- Cloner le dépôt
- Exécuter
npm install
pour installer les dépendances - Exécuter
npm run build
pour construire le projet - Enregistrez une application Dropbox dans la Dropbox App Console
- Choisissez l'API "Scoped access
- Choisissez le type d'accès dont votre application a besoin
- Nommez votre application et cliquez sur "Create app" (Créer une application)
- Sous "Permissions", sélectionnez les permissions requises
files.metadata.read
files.content.read
fichiers.contenu.écriture
partage.écriture
account_info.read
- Ajoutez
http://localhost:3000/callback
comme URI de redirection - Notez votre clé d'application et votre secret d'application
- Exécutez le script d'installation :
npm run setup
- Configurez votre client MCP pour utiliser le serveur
Installation de l'application
Clonez le dépôt
git clone https://github.com/your-username/dbx-mcp-server.git cd dbx-mcp-server
Installer les dépendances et construire
npm install npm run build
Exécuter le script d'installation
npm run setup
Ajouter aux paramètres MCP
Ajoutez les éléments suivants à votre fichier de configuration MCP :
{ "mcpServers" : { "dbx" : { "command" : "node", "args" : ["/path/to/dbx-mcp-server/build/index.js"] } } }
Authentification
Le serveur utilise OAuth 2.0 avec PKCE pour une authentification sécurisée avec Dropbox.
Variables d'environnement
Obligatoire :
DROPBOX_APP_KEY
: La clé de votre application DropboxDROPBOX_APP_SECRET
: le secret de votre application DropboxDROPBOX_REDIRECT_URI
: URI de redirection OAuthTOKEN_ENCRYPTION_KEY
: Clé de plus de 32 caractères pour le chiffrement du jeton
Optionnel :
TOKEN_REFRESH_THRESHOLD_MINUTES
: Minutes avant l'expiration pour rafraîchir le jeton (par défaut : 5)MAX_TOKEN_REFRESH_RETRIES
: Nombre maximal de tentatives de rafraîchissement (par défaut : 3)TOKEN_REFRESH_RETRY_DELAY_MS
: Délai entre les tentatives de rafraîchissement en ms (par défaut : 1000)
Outils disponibles
Opérations sur les fichiers
list_files
: Liste les fichiers d'un répertoireupload_file
: Télécharger un fichierdownload_file
: Télécharger un fichiersafe_delete_item
: Supprimer en toute sécurité avec le support de la corbeillecreate_folder
: Créer un nouveau dossiercopy_item
: Copier un fichier ou un dossiermove_item
: Déplacer ou renommer un fichier/dossier
Métadonnées et recherche
get_file_metadata
: Obtenir les métadonnées d'un fichier/dossiersearch_file_db
: Recherche de fichiers et de dossiersget_sharing_link
: Créer des liens de partageget_file_content
: Obtenir le contenu d'un fichier
Opérations sur les comptes
get_account_info
: Obtenir des informations sur le compte
Exemples d'utilisation
// Liste des fichiers dans le répertoire racine await mcp.useTool("dbx-mcp-server", "list_files", { path : "" }) ; // Téléchargement d'un fichier await mcp.useTool("dbx-mcp-server", "upload_file", { path : "/test.txt", content : Buffer.from("Hello World").toString("base64"), }) ; // Recherche de fichiers await mcp.useTool("dbx-mcp-server", "search_file_db", { query : "report", path : "/Documents", max_results : 10, })
Test
Exécutez la suite de tests :
npm test
Les tests vérifient toutes les opérations, y compris l'authentification, les opérations sur les fichiers et la gestion des erreurs.
Structure des tests
La suite de tests est organisée en plusieurs modules :
- Opérations Dropbox: Tests des opérations de base sur les fichiers (upload, download, list, etc.)
- Opérations sur le compte: Tests pour l'accès aux informations du compte
- Recherche et suppression: Tests de la fonctionnalité de recherche et de l'effacement sécurisé avec prise en charge de la corbeille
- Système de ressources: Tests d'intégration du système de ressources MCP
Traitement des données de test
Les tests utilisent des noms de fichiers et de dossiers générés dynamiquement sur la base d'horodatages afin d'éviter les conflits. Les données de test sont automatiquement nettoyées après l'exécution du test.
Exécution de tests spécifiques
Pour exécuter un fichier de test spécifique ou un groupe de tests :
npm test -- tests/dropbox/search-delete.test.ts # Exécuter un fichier de test spécifique npm test -- -t "devrait rechercher des fichiers" # Exécuter les tests correspondant à la description
Dépannage des tests
Si les tests échouent en raison de problèmes de synchronisation ou d'authentification :
- Vérifiez que les implémentations de simulacre dans
tests/setup.ts
correspondent à vos attentes en matière de tests - Assurez-vous que les aides de test sont correctement configurées
- Pour les erreurs de portée de Jest, évitez de référencer des variables importées dans les fonctions d'usine fictives
Développement
Construit avec :
- TypeScript
- Modèle Contexte Protocole SDK
- SDK Dropbox v10.34.0
- API Dropbox v2
Licence
Licence MIT
Copyright (c) 2025 MCP Server Contributors
L'autorisation est accordée par la présente, gratuitement, à toute personne obtenant une copie de ce logiciel et des fichiers de documentation associés (le "Logiciel"), de traiter le Logiciel sans restriction, y compris sans limitation les droits d'utilisation, de copie, de modification, de fusion, de publication, de distribution, de sous-licence, et/ou de vente de copies du Logiciel, et d'autoriser les personnes à qui le Logiciel est fourni à le faire, sous réserve des conditions suivantes :
L'avis de droit d'auteur ci-dessus et cet avis d'autorisation doivent être inclus dans toutes les copies ou parties substantielles du logiciel.
LE LOGICIEL EST FOURNI "TEL QUEL", SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS SANS S'Y LIMITER, LES GARANTIES DE QUALITÉ MARCHANDE, D'ADÉQUATION À UN USAGE PARTICULIER ET D'ABSENCE DE CONTREFAÇON. EN AUCUN CAS LES AUTEURS OU LES DÉTENTEURS DES DROITS D'AUTEUR NE PEUVENT ÊTRE TENUS RESPONSABLES DE TOUTE RÉCLAMATION, DE TOUT DOMMAGE OU DE TOUTE AUTRE RESPONSABILITÉ, QUE CE SOIT DANS LE CADRE D'UNE ACTION CONTRACTUELLE, DÉLICTUELLE OU AUTRE, DÉCOULANT DE OU EN RAPPORT AVEC LE LOGICIEL OU L'UTILISATION OU D'AUTRES OPÉRATIONS LIÉES AU LOGICIEL.