gdocs
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, один раз
Создайте проект: https://console.cloud.google.com/projectcreate
Включите Google Docs API и Google Drive API (APIs & Services > Library)
Экран согласия OAuth: тип пользователя External подойдёт для личного аккаунта. В разделе Audience добавьте свой адрес как тестового пользователя — пропуск этого шага является самой частой причиной сбоя согласия.
Credentials > Create credentials > OAuth client ID > Desktop app > Скачайте JSON
Сохраните его как
~/.config/gdocs-mcp/credentials.json
Учётные данные намеренно хранятся вне любого репозитория, поэтому git add -A никогда не сможет их закоммитить.
2. Авторизуйтесь, один раз
npm run authGoogle предупреждает, что приложение не прошло проверку. Это ожидаемо для приложения с одним пользователем: Advanced > Go to ... (unsafe). Refresh-токен сохраняется в ~/.config/gdocs-mcp/token.json с правами 0600.
Перезапустите Claude Code, затем проверьте с помощью claude mcp list.
Семидневная повторная авторизация и почему
Пока экран согласия находится в Testing, Google аннулирует refresh-токен каждые 7 дней. Это задокументированное поведение для внешних приложений на стадии тестирования, а не баг, и обойти его для такого набора областей доступа нельзя: auth/drive — restricted scope, а публикация в production с restricted scope требует оценки безопасности CASA — для инструмента для одного человека это того не стоит.
Поэтому примерно раз в неделю вызов инструмента будет падать с ошибкой «Authorisation expired». Исправление:
npm run authПятнадцать секунд. Если у вас есть аккаунт Google Workspace, вы можете полностью избежать этого: создайте Cloud-проект в этой организации и установите для экрана согласия тип пользователя Internal. Внутренние приложения не имеют срока действия в 7 дней и списка тестовых пользователей.
Инструменты
Инструмент | Действие |
| Поиск документов в Drive по названию |
| Тело документа в Markdown и ветки комментариев с текстом-якорем |
| Только ветки комментариев — дешёвая проверка «есть ли новые комментарии?» |
| Точная замена найденного текста; сохраняет якоря комментариев |
| Добавляет стилизованный абзац в конец (уровень заголовка, размер шрифта, цвет, жирный/курсив); только добавляет, сохраняет якоря |
| Заменяет всё тело документа содержимым локального файла; требует |
| Отправляет ответ в веткукомментария |
| Закрывает ветку с завершающим примечанием |
| Создаёт новый документ из 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» | Выполните |
| Вошедший адрес — не утверждённый тестировщик. Добавьте его в OAuth consent screen > Audience > Test пользователи, сохраните и повторите |
«Authorisation expired» примерно через неделю | Ожидаемо в режиме Testing. Выполните |
| Включите Docs API и Drive API в этом Cloud-проекте |
«no refresh token» | Отзовите доступ на https://myaccount.google.com/permissions, заново выполните |
Сервер не появляется в 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.
This server cannot be installed
Maintenance
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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