Skip to main content
Glama

google-drive-mcp

Локальный MCP-сервер, предоставляющий Claude Code полный доступ к Google Drive — поиск, чтение, загрузка, переименование, перемещение и изменение прав доступа, в том числе к файлам, которые уже есть на вашем Диске (а не только к тем, что созданы этим приложением).

Он намеренно запрашивает широкую область видимости https://www.googleapis.com/auth/drive, потому что задачи, для которых он создан (переименование, перемещение и изменение прав доступа к существующим учебным файлам), невозможны с более узкой областью drive.file.


Одноразовая настройка

Вы делаете это один раз. После этого каждая сессия Claude Code сможет использовать инструменты google-drive.

Шаг 1 — Создайте проект Google Cloud (пропустите, если у вас уже есть)

  1. Перейдите на https://console.cloud.google.com/.

  2. Верхняя панель → выпадающее меню проектов → New Project.

  3. Назовите его, например, app-integrations → Create. Подождите несколько секунд, затем убедитесь, что этот проект выбран в верхней панели.

Шаг 2 — Включите Google Drive API

  1. Перейдите на https://console.cloud.google.com/apis/library/drive.googleapis.com.

  2. Подтвердите, что выбран ваш проект → нажмите Enable.

Шаг 3 — Настройте экран согласия OAuth

  1. Перейдите на https://console.cloud.google.com/auth/overview (APIs & Services → OAuth consent screen).

  2. При появлении запроса выберите User Type: External → Create. (External подходит для личного аккаунта Google; вы просто будете «тестовым пользователем».)

  3. Заполните обязательные поля:

    • App name: google-drive-mcp (подойдет любое)

    • User support email: ваш email

    • Developer contact email: ваш email

    • Сохраните и продолжите.

  4. Страница Scopes: здесь не нужно добавлять области видимости — сервер запросит их при авторизации. Сохраните и продолжите.

  5. Страница Test users: нажмите + Add users и добавьте свой собственный email Google (свою учетную запись Google). Это необходимо, пока приложение находится в статусе «Testing». Сохраните и продолжите.

Вам не нужно публиковать приложение или проходить проверку Google. Приложение в статусе «Testing» работает бессрочно для указанных вами тестовых пользователей; токен обновления для приложения в статусе «Testing» может истечь через 7 дней бездействия — если инструменты Drive когда-либо начнут выдавать ошибку авторизации, просто повторно выполните npm run auth (Шаг 6).

Шаг 4 — Создайте OAuth-клиент (Desktop app)

  1. Перейдите на https://console.cloud.google.com/auth/clients (APIs & Services → Credentials).

  2. + Create Credentials → OAuth client ID.

  3. Application type: Desktop app. Назовите его desktop-mcp → Create.

  4. В диалоговом окне нажмите Download JSON.

Шаг 5 — Поместите файл клиента туда, где его ожидает сервер

Сохраните загруженный JSON по следующему пути/имени:

~/.config/google-drive-mcp/gcp-oauth.keys.json

Например, если он загрузился в ~/Downloads/client_secret_XXXX.json:

mkdir -p ~/.config/google-drive-mcp
mv ~/Downloads/client_secret_*.json ~/.config/google-drive-mcp/gcp-oauth.keys.json

Шаг 6 — Авторизуйтесь (один раз)

cd ~/mcp-servers/google-drive-mcp
npm run auth

Будет выведен URL и открыт ваш браузер. Войдите в учетную запись Google, чей Диск вы хотите использовать. Вы увидите предупреждение «Google hasn't verified this app» (ожидаемо, так как приложение в статусе «Testing») → Advanced → Go to google-drive-mcp (unsafe) → Continue → разрешите доступ к Диску.

В случае успеха будет создан файл ~/.config/google-drive-mcp/.gdrive-credentials.json (ваш токен обновления — храните его в секрете; ему уже установлены права chmod 600).

Шаг 7 — Используйте

Сервер уже зарегистрирован в ~/.claude.json под именем google-drive. Запустите новую сессию Claude Code, и инструменты gdrive_* станут доступны. (MCP-серверы загружаются при запуске сессии, поэтому сессия, начатая до регистрации, их не увидит.)

Быстрая ручная проверка (необязательно):

cd ~/mcp-servers/google-drive-mcp && npm start
# prints "google-drive-mcp: connected over stdio", then waits. Ctrl-C to quit.

Related MCP server: google-mcp

Инструменты

Инструмент

Что делает

gdrive_search

Поиск с помощью запроса Drive q (например, name contains 'syllabus')

gdrive_list_recent

Список недавно измененных файлов

gdrive_list_children

Список прямых дочерних элементов папки (удаленные элементы по умолчанию исключены)

gdrive_get_metadata

Метаданные + ссылки для одного файла

gdrive_get_links

Получить ссылки для открытия в новой вкладке и iframe .../preview для встраивания

gdrive_create_folder

Создать папку (опционально вложенную)

gdrive_upload_file

Загрузить локальный файл по пути (потоковая передача — хорошо для больших PDF)

gdrive_create_text_file

Создать текстовый файл из встроенного содержимого

gdrive_copy

Копировать файл (не папки — Drive API не может скопировать папку за один вызов)

gdrive_create_shortcut

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

gdrive_rename

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

gdrive_move

Переместить с помощью добавления/удаления родительских элементов

gdrive_trash

Переместить в корзину — обратимо, Диск хранит 30 дней

gdrive_untrash

Восстановить из корзины

gdrive_delete

Окончательное удаление, без корзины, безвозвратно — с защитой (см. ниже)

gdrive_list_permissions

Список прав доступа (email + роли)

gdrive_share

Добавить разрешение — {type:'anyone',role:'reader'} = просмотр по ссылке; {type:'user',role:'writer',emailAddress:...} = редактор

gdrive_unshare

Удалить разрешение по id

Удаление

gdrive_trash — это то, что нужно использовать. Это обратимо, Диск хранит удаленные элементы в корзине 30 дней, а gdrive_untrash возвращает их на место.

gdrive_delete — это окончательное и безвозвратное удаление — ничего не попадает в корзину. Оно требует confirmName, который точно соответствует текущему имени элемента, что заставляет прочитать метаданные перед уничтожением, поэтому устаревший или неправильно введенный ID файла приведет к ошибке, а не к удалению не того файла. Удаление папки удаляет все ее содержимое.

Регистрация

Зарегистрирован в обоих конфигах — они читаются независимо, поэтому регистрация в одном не делает сервер доступным в другом:

  • ~/.claude.json (Claude Code)

  • ~/Library/Application Support/Claude/claude_desktop_config.json (Desktop / Cowork)

Одинаковая запись в каждом:

"google-drive": {
  "command": "/opt/homebrew/bin/node",
  "args": ["/ABSOLUTE/PATH/TO/mcp-servers/google-drive-mcp/index.js"]
}

Абсолютный путь к node обязателен, это не стилистический выбор. Приложение, запущенное из Finder или при входе в систему, наследует минимальный PATH от launchd (/usr/bin:/bin:/usr/sbin:/sbin), в котором Homebrew /opt/homebrew/bin/node полностью невидим. Простой "node" работает каждый раз, когда вы тестируете из терминала, и не работает каждое утро. ~/mcp-servers/trello-mcp/doctor.py проверяет каждый сервер в обоих конфигах на это.

Если вы установите CLI claude позже, эквивалентная команда будет:

claude mcp add --scope user google-drive -- /opt/homebrew/bin/node ~/mcp-servers/google-drive-mcp/index.js

Файлы

  • index.js — MCP-сервер (определения инструментов)

  • auth.js — одноразовый npm run auth цикл OAuth с обратной связью

  • lib-auth.js — общие вспомогательные функции OAuth/конфигурации

  • ~/.config/google-drive-mcp/gcp-oauth.keys.json — предоставляете вы (Шаг 5)

  • ~/.config/google-drive-mcp/.gdrive-credentials.json — создается командой npm run auth


Для резюме / портфолио

Здесь сохранено, чтобы будущая сессия резюме имела честную версию, а не реконструировала ее.

Зачем это нужно, если коннектор Drive уже существует. Он расширяет встроенный коннектор, а не заменяет его. Пробел — в массовой работе: переименование сотни файлов после изменения соглашения об именовании в середине проекта утомительно вручную, тривиально для скрипта и стоит решить один раз, а не каждый раз. Это и было мотивирующим случаем.

Что я на самом деле сделал: поставил цель и ограничение — бесплатное решение, которое экономит то же время в каждом будущем проекте, а не одноразовый скрипт для одной папки.

Известное эксплуатационное предостережение: статус публикации OAuth-приложения определяет, как долго действуют токены обновления. В статусе «Testing» они истекают примерно еженедельно (invalid_grant); публикация приложения снимает это ограничение для всех интеграций, использующих этот Cloud-проект.

Пункт для портфолио: см. общую версию в ~/mcp-servers/trello-mcp/README.md — эти три лучше всего описывать вместе.

Полное описание проекта: https://zeno-blade-creator.github.io/projects/personal-integrations.html

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that enables interaction with Google Drive through the Google Cloud API. It allows users to list, read, and upload files directly from MCP-compatible clients like manus.im or Cursor.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for Google Drive, Docs, and Sheets — built for Claude Code. Gives Claude Code direct read/write access to Google Sheets (cell-level edits, formatting, structure), Google Docs (insert, replace, append), and Drive (search).
    40 npm
    1
    MIT