Skip to main content
Glama

gdocs — цикл рецензирования Google Docs для Claude Code

MCP-сервер, который позволяет Claude Code читать Google Doc и его ветки комментариев, а затем записывать исправления обратно в тот же документ по тому же URL.

Создан для цикла, в котором Markdown в репозитории является источником истины, а Google Docs — только поверхность обзора. Он убирает ручной обмен копированием и вставкой: не нужно вставлять черновик в Docs и переносить комментарии рецензента обратно в терминал.

Устанавливается на уровне пользователя, поэтому работает во всех проектах.

Требования

  • Node 18+

  • CLI claude

  • Учётная запись Google и около 10 минут в Google Cloud Console

Установка

git clone https://github.com/uma-victor1/gdocs-mcp.git
cd gdocs-mcp
./install.sh

Это устанавливает зависимости, проверяет запуск сервера и регистрирует его в Claude Code на уровне пользователя. Два шага с учётными данными ниже выполните самостоятельно.

1. Google Cloud, один раз

  1. Создайте проект: https://console.cloud.google.com/projectcreate

  2. Включите Google Docs API и Google Drive API (APIs & Services > Library)

  3. Экран согласия OAuth: тип пользователя External подойдёт для личного аккаунта. В разделе Audience добавьте свой адрес как тестового пользователя — пропуск этого шага является самой частой причиной сбоя согласия.

  4. Credentials > Create credentials > OAuth client ID > Desktop app > Скачайте JSON

  5. Сохраните его как ~/.config/gdocs-mcp/credentials.json

Учётные данные намеренно хранятся вне любого репозитория, поэтому git add -A никогда не сможет их закоммитить.

2. Авторизуйтесь, один раз

npm run auth

Google предупреждает, что приложение не прошло проверку. Это ожидаемо для приложения с одним пользователем: Advanced > Go to ... (unsafe). Refresh-токен сохраняется в ~/.config/gdocs-mcp/token.json с правами 0600.

Перезапустите Claude Code, затем проверьте с помощью claude mcp list.

Семидневная повторная авторизация и почему

Пока экран согласия находится в Testing, Google аннулирует refresh-токен каждые 7 дней. Это задокументированное поведение для внешних приложений на стадии тестирования, а не баг, и обойти его для такого набора областей доступа нельзя: auth/driverestricted scope, а публикация в production с restricted scope требует оценки безопасности CASA — для инструмента для одного человека это того не стоит.

Поэтому примерно раз в неделю вызов инструмента будет падать с ошибкой «Authorisation expired». Исправление:

npm run auth

Пятнадцать секунд. Если у вас есть аккаунт Google Workspace, вы можете полностью избежать этого: создайте Cloud-проект в этой организации и установите для экрана согласия тип пользователя Internal. Внутренние приложения не имеют срока действия в 7 дней и списка тестовых пользователей.

Инструменты

Инструмент

Действие

find_doc

Поиск документов в Drive по названию

read_doc

Тело документа в Markdown и ветки комментариев с текстом-якорем

read_comments

Только ветки комментариев — дешёвая проверка «есть ли новые комментарии?»

replace_text

Точная замена найденного текста; сохраняет якоря комментариев

append_text

Добавляет стилизованный абзац в конец (уровень заголовка, размер шрифта, цвет, жирный/курсив); только добавляет, сохраняет якоря

push_markdown

Заменяет всё тело документа содержимым локального файла; требует confirm: true

reply_comment

Отправляет ответ в веткукомментария

resolve_comment

Закрывает ветку с завершающим примечанием

create_doc

Создаёт новый документ из Markdown-файла — один раз на статью

Все инструменты принимают URL документа или просто fileId.

Компромисс с якорями комментариев

Google привязывает каждый комментарий к фрагменту текста. Перепишите этот фрагмент — и ветка отцепится или закроется автоматически. Поэтому:

  • Мелкие правки → replace_text. Якоря сохраняются; рецензенты сохраняют контекст.

  • Структурные переписывания → push_markdown. Быстрее, но ожидаем потеря комментариев. Инструмент сообщает, сколько открытых веток было до, поэтому ущерб заметен, а не молчалив.

  • Добавление вместо изменения → append_text. Он вставляет только в конец, поэтому существующий фрагмент не сдвигается и якорь не ломается.

  • Сначала ответьте, потом переписывайте. reply_comment оставляет запись о том, что изменилось и зачем.

Почему этот сервер, а не готовый

MCP-сервер с OAuth-токеном для Docs может читать и переписывать все документы в аккаунте. Не существует официального MCP-сервера для Docs от Google или Anthropic; все опубликованные — это сторонние пакеты от отдельных издателей. Этот написан на ~250 строках MCP SDK от Anthropic и собственного клиентской библиотеки Google — достаточно мал, чтобы его можно было прочитать, прежде чем доверять ему.

Режим только для чтения

claude mcp remove gdocs -s user
claude mcp add gdocs -s user -e GDOCS_MCP_READONLY=1 -- node "$PWD/server.mjs"

Чтение продолжает работать; все инструменты записи отказываются. Это полезно, когда документом владеет кто-то другой.

Устранение неполадок

Симптом

Решение

«Not authorised yet»

Выполните npm run auth

Error 403: access_denied, «has not completed the Google verification process»

Вошедший адрес — не утверждённый тестировщик. Добавьте его в OAuth consent screen > Audience > Test пользователи, сохраните и повторите

«Authorisation expired» примерно через неделю

Ожидаемо в режиме Testing. Выполните npm run auth

accessNotConfigured

Включите Docs API и Drive API в этом Cloud-проекте

«no refresh token»

Отзовите доступ на https://myaccount.google.com/permissions, заново выполните npm run auth

Сервер не появляется в Claude Code

claude mcp list; заново выполните ./install.sh; перезапустите Claude Code

Документ выгружается как обычный текст

В документе есть контент, который Google не может представить как Markdown; содержимое всё равно возвращается

Проверить сервер независимо можно в любое время с помощью npm run smoke.

Чтобы опробовать отдельный инструмент без участия Claude Code:

node call.mjs read_comments '{"doc":"https://docs.google.com/document/d/FILEID/edit"}'

Отзыв доступа

https://myaccount.google.com/permissions, затем удалите ~/.config/gdocs-mcp/token.json.

Структура

server.mjs         the nine tools
google.mjs         auth + Drive/Docs clients; credential paths
auth.mjs           one-time interactive OAuth   (npm run auth)
smoke.mjs          starts the server, lists tools  (npm run smoke)
call.mjs           invoke one tool from the shell, for debugging
install.sh         deps, verify, register at user scope
docs/guide.html    the setup walkthrough as a standalone page

Лицензия

MIT. См. LICENSE.

-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Connect Claude to Fathom meeting recordings, transcripts, and summaries

  • Read, edit, publish, and preview your pepita websites from Claude.

  • WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/uma-victor1/gdocs-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server