gdocs
gdocs — Claude Code 用 Google Docs レビューループ
Claude Code が Google ドキュメントとそのコメントスレッドを読み、修正内容を同じ URL の同じドキュメントに書き戻せるようにする MCP サーバーです。
リポジトリ内の Markdown が正本(source of truth)で、Google Docs はレビュー面にしか使われない、というループのために作られました。コピー&ペーストの往復が不要になります。下書きを Docs に貼り付けることも、レビュアーのコメントをターミナルに貼り直すこともありません。
ユーザースコープでインストールされるため、すべてのプロジェクトで動作します。
必要条件
Node 18+
claudeCLIGoogle アカウントと、Google Cloud Console での作業時間(約10分)
インストール
git clone https://github.com/uma-victor1/gdocs-mcp.git
cd gdocs-mcp
./install.shこれで、依存関係のインストール、サーバー起動の確認、Claude Code へのユーザースコープ登録が行われます。その後、以下の 2 つの資格情報設定ステップを自分で行ってください。
1. Google Cloud(一度だけ)
Google Docs API と Google Drive API を有効にする(API とサービス > ライブラリ)
OAuth 同意画面: ユーザータイプは外部で、個人アカウントなら問題ありません。Audience 内で、自分のアドレスをテストユーザーとして追加してください。これを省略すると、同意が失敗する最も一般的な原因になります。
認証情報 > 認証情報を作成 > OAuth クライアント ID > デスクトップ アプリ > JSON をダウンロード
~/.config/gdocs-mcp/credentials.jsonとして保存
この資格情報は意図的にリポジトリ外に配置され、git add -A では絶対にコミットされません。
2. 認証(一度だけ)
npm run authGoogle はアプリが未認証だと警告します。ユーザーが 1 人だけのアプリでは想定通りです。詳細 > ... へ移動(安全ではない) が該当します。リフレッシュトークンは ~/.config/gdocs-mcp/token.json に、パーミッション 0600 で保存されます。
Claude Code を再起動し、claude mcp list で確認してください。
7日ごとの再認証と、その理由
同意画面がテスト状態にある間、Google はリフレッシュトークンを 7 日ごとに失効させます。これはテスト中にある外部アプリの既知の仕様であり、バグではありません。このスコープ構成でも回避できません。auth/drive は制限付き スコープであり、制限付きスコープで本番公開するには CASA セキュリティ評価が必要です。一人用ツールとしては割に合いません。
そのため、おおかた 1 週間に 1 回程度、ツール呼び出しが「認証の有効期限が切れました」"Authorisation expired" で失敗します。対処は次の通りです:
npm run auth約15秒です。Google Workspace アカウントがあれば問題を完全に回避できます。その組織配下に Cloud プロジェクトを作成し、同意画面のユーザータイプを 内部 に設定してください。内部アプリには 7 日間の失効期限がなく、テストユーザーリストも必要ありません。
ツール
ツール | 効果 |
| タイトルでドライブ内のドキュメントを検索 |
| 本文を Markdown として取得し、各コメントスレッドをアンカーテキストとともに取得 |
| コメントスレッドだけを取得します。追加のフィードバックがあるかを確認できます。 |
| 完全一致の検索・置換をその場で行います。コメントアンカーを保持 |
| 末尾にスタイル付き段落を追加(見出しレベル、ポイント、色、太字/イタリック)追加のみで、アンカーを保持 |
| ローカルファイルから本文全体を置き換えます。 |
| スレッドに返信を投稿 |
| クロージングメモを付けてスレッドを解決 |
| Markdown ファイルから新しいドキュメントを作成(記事ごとに 1 回) |
すべてのツールはドキュメント URL または fileId 単体を受け付けます。
コメントアンカーのトレードオフ
Google は各コメントをテキストの一部に固定(アンカー)します。その範囲を書き換えると、スレッドは切り離されるか自動的に解決されます。つまり:
小さな修正 →
replace_text。 アンカーは残り、レビュー時刻は文脈を維持できます。構造的な書き直し →
push_markdown。 高速ですが、スレッドの消失は避けられません。実行前にオープン中のスレッド数が報告されるため、ダメージが黙って発生することではなく、見える形になります。変更ではなく追記 →
append_text。 常に末尾に挿入するだけなので、既存の部分が移動せず、アンコールも壊れません。書き直す前に返信を残す。
reply_commentが、何が変更されたのかとその理由と理由の記録を残します。
既製サーバーではなくこれを使う理由
Docs の OAuth トークンを保持する MCP サーバーは、アカウント内のすべてのドキュメントを読み取って書き換刃できます。しかし Google や Anthropic による公式の Docs MCP は存在しません。公開されているものは、個人の出版社からのサ。 すべてサードパーティです。これは、Anthropic の MCP SDK と Google 純正クライアントライブラリによる約 250 行のコードで、信頼する前に読み込むのに十分な大きさです。
読み取り専用モード
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 同意画面 > 対象のユーザー > テストユーザー に追加して保存し、再試行してください |
"Authorisation expired" が約 1 週間後に発生 | テストモード時に通常通り。 |
| この Cloud プロジェクトで Docs API と Drive API を有効にする |
"no refresh token" | https://myaccount.google.com/permissions でアクセスを取り消し、 |
Claude Code にサーバーが見当たらない |
|
ドキュメントが平文でエクスポートされる | ドキュメントに Markdown 変換できないコンテンツがある。コンテンツ自体は返されます |
npm run smoke を使えば、いつでもサーバーを単独で確認できます。
Claude Code 経由せずツールを 1 つだけテストするには:
node call.mjs read_comments '{"doc":"https://docs.google.com/document/d/FILEID/edit"}'アクセス取り消し
https://myaccount.google.com/permissions からアクセ, secretsを取り消し、~/.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