Skip to main content
Glama
amgadabdelhafez

Dropbox MCP Server

dbx-mcp-сервер

Сервер Model Context Protocol (MCP), обеспечивающий интеграцию с Dropbox, позволяющий MCP-совместимым клиентам взаимодействовать с Dropbox с помощью набора мощных инструментов.

Важное предупреждение: этот проект не связан, не одобрен и не спонсируется Dropbox. Это независимая интеграция, которая работает с открытым API Dropbox.

Оглавление

Related MCP server: Google Drive MCP Server

Быстрый старт

  1. Клонировать репозиторий

  2. Запустите npm install для установки зависимостей.

  3. Запустите npm run build для сборки проекта.

  4. Зарегистрируйте приложение Dropbox в Dropbox App Console :

    • Выберите API «Ограниченный доступ»

    • Выберите тип доступа, необходимый вашему приложению

    • Дайте название вашему приложению и нажмите «Создать приложение».

    • В разделе «Разрешения» выберите необходимые разрешения:

      • files.metadata.read

      • files.content.read

      • files.content.write

      • sharing.write

      • account_info.read

    • Добавьте http://localhost:3000/callback в качестве URI перенаправления.

    • Запишите свой ключ приложения и секрет приложения.

  5. Запустите скрипт установки:

    npm run setup
  6. Настройте свой MCP-клиент для использования сервера

Установка

  1. Клонировать репозиторий

    git clone https://github.com/your-username/dbx-mcp-server.git
    cd dbx-mcp-server
  2. Установка зависимостей и сборка

    npm install
    npm run build
  3. Запустите скрипт установки

    npm run setup
  4. Добавить в настройки MCP

    Добавьте следующее в файл настроек MCP:

    {
      "mcpServers": {
        "dbx": {
          "command": "node",
          "args": ["/path/to/dbx-mcp-server/build/index.js"]
        }
      }
    }

Аутентификация

Сервер использует OAuth 2.0 с PKCE для безопасной аутентификации в Dropbox.

Переменные среды

Необходимый:

  • DROPBOX_APP_KEY : ключ вашего приложения Dropbox

  • DROPBOX_APP_SECRET : Секрет вашего приложения Dropbox

  • DROPBOX_REDIRECT_URI : URI перенаправления OAuth

  • TOKEN_ENCRYPTION_KEY : ключ длиной 32+ символа для шифрования токена

Необязательный:

  • TOKEN_REFRESH_THRESHOLD_MINUTES : Минуты до истечения срока действия для обновления токена (по умолчанию: 5)

  • MAX_TOKEN_REFRESH_RETRIES : Максимальное количество попыток обновления (по умолчанию: 3)

  • TOKEN_REFRESH_RETRY_DELAY_MS : Задержка между попытками обновления в мс (по умолчанию: 1000)

Доступные инструменты

Операции с файлами

  • list_files : Список файлов в каталоге

  • upload_file : Загрузить файл

  • download_file : Загрузить файл

  • safe_delete_item : безопасное удаление с поддержкой корзины

  • create_folder : Создать новую папку

  • copy_item : Копировать файл или папку

  • move_item : Переместить или переименовать файл/папку

Метаданные и поиск

  • get_file_metadata : Получить метаданные файла/папки

  • search_file_db : Поиск файлов и папок

  • get_sharing_link : Создание ссылок для обмена

  • get_file_content : Получить содержимое файла

Операции по счету

  • get_account_info : Получить информацию об учетной записи

Примеры использования

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

Тестирование

Запустите тестовый набор:

npm test

Тесты проверяют все операции, включая аутентификацию, файловые операции и обработку ошибок.

Структура теста

Тестовый набор состоит из нескольких модулей:

  • Операции Dropbox : тесты основных операций с файлами (загрузка, скачивание, составление списков и т. д.)

  • Операции со счетами : Тесты для доступа к информации по счету

  • Поиск и удаление : Тесты функциональности поиска и безопасного удаления с поддержкой корзины.

  • Система ресурсов : Тесты для интеграции системы ресурсов MCP

Обработка тестовых данных

Тесты используют динамически сгенерированные имена файлов и папок на основе временных меток, чтобы избежать конфликтов. Тестовые данные автоматически очищаются после выполнения теста.

Проведение специальных тестов

Чтобы запустить определенный тестовый файл или тестовую группу:

npm test -- tests/dropbox/search-delete.test.ts  # Run specific test file
npm test -- -t "should search for files"        # Run tests matching description

Тесты по устранению неполадок

Если тесты не пройдены из-за проблем с синхронизацией или аутентификацией:

  1. Проверьте, соответствуют ли реализации макетов в tests/setup.ts вашим ожиданиям от тестирования.

  2. Убедитесь, что помощники по тестированию настроены правильно

  3. Для ошибок области действия Jest избегайте ссылок на импортированные переменные в функциях фиктивной фабрики.

Разработка

Построено с:

  • Машинопись

  • Модель контекстного протокола SDK

  • Dropbox SDK версии 10.34.0

  • API Dropbox v2

Лицензия

Лицензия Массачусетского технологического института

Авторские права (c) 2025 MCP Server Contributors

Настоящим предоставляется разрешение любому лицу, получившему копию этого программного обеспечения и связанных с ним файлов документации («Программное обеспечение»), безвозмездно использовать Программное обеспечение без ограничений, включая, помимо прочего, права на использование, копирование, изменение, объединение, публикацию, распространение, сублицензирование и/или продажу копий Программного обеспечения, а также разрешать лицам, которым предоставляется Программное обеспечение, делать это при соблюдении следующих условий:

Вышеуказанное уведомление об авторских правах и настоящее уведомление о разрешении должны быть включены во все копии или существенные части Программного обеспечения.

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ И НЕНАРУШЕНИЯ ПРАВ. АВТОРЫ ИЛИ ОБЛАДАТЕЛИ АВТОРСКИХ ПРАВ НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УБЫТКИ ИЛИ ДРУГУЮ ОТВЕТСТВЕННОСТЬ, БУДЬ ТО В ДЕЙСТВИИ ПО КОНТРАКТУ, ДЕЛИКТЕ ИЛИ ИНЫМ ОБРАЗОМ, ВОЗНИКАЮЩИЕ ИЗ, ИЗ ИЛИ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ ДЕЛАМИ В ПРОГРАММНОМ ОБЕСПЕЧЕНИИ.

Related MCP Connectors

Related MCP Servers