google-drive-comments-mcp

google-drive-comments-mcp

A focused MCP server for reading comments on Google Drive files — Docs, Sheets, and Slides, with read-only OAuth scope.

Category
访问服务器

README

google-drive-comments-mcp

<!-- mcp-name: io.github.zayansalman/google-drive-comments-mcp -->

A focused Model Context Protocol server (and standalone CLI) for reading comments on Google Drive files — Docs, Sheets, and Slides. Two tools, read-only OAuth scope, no extra surface area.

Built because the hosted Google Drive connectors expose file content and search, but not the comment threads — the review discussion, the anchored quotes, the resolve/reopen history. This server fills that gap for any MCP client (Claude Code, Claude Desktop, Cursor, Cline, etc.), and also works as a plain CLI.

Features

  • 2 MCP toolsdrive_search_files, drive_get_comments. That's the whole API.
  • Reads full comment threads — author, content, the anchored quoted text, resolved/open status, and every reply (with resolve/reopen actions).
  • Works across Docs, Sheets, and Slides — the Drive comments API is uniform across file types.
  • Accepts URLs or IDs — paste a docs.google.com/document/d/… link or a bare file ID.
  • Read-only OAuth scope (drive.readonly).
  • Env-var-driven configDRIVE_MCP_CREDENTIALS, DRIVE_MCP_TOKEN, DRIVE_MCP_SCOPES.

Install

pip install google-drive-comments-mcp
# or, with uv:
uv tool install google-drive-comments-mcp

One-time setup (~10 minutes)

You need a Google Cloud OAuth client. The server runs entirely on your machine; nothing leaves it.

  1. Sign in to Google Cloud Console with the account whose Drive comments you want to read.
  2. Create a project (or pick an existing one).
  3. Enable the Drive API: console.cloud.google.com/apis/library/drive.googleapis.com.
  4. Configure the OAuth consent screen under APIs & Services → OAuth consent screen:
    • Google Workspace users: User type = Internal. No app verification is needed even though drive.readonly is a restricted scope.
    • Personal Gmail users: User type = External, and add your own address under "Test users".
  5. APIs & Services → Credentials → + Create credentials → OAuth client ID
    • Application type: Desktop app
    • Download the JSON.
  6. Run setup:
google-drive-comments-mcp setup --import-credentials ~/Downloads/client_secret_*.json

A browser window opens for OAuth consent. The refresh token is cached at ~/.config/google-drive-comments-mcp/token.json.

Verify:

google-drive-comments-mcp status
google-drive-comments-mcp comments "https://docs.google.com/document/d/YOUR_DOC_ID/edit"

Use it from Claude Code

claude mcp add --scope user google-drive-comments google-drive-comments-mcp -- serve

Then:

Read the open comments on this doc and summarize what reviewers are asking for: https://docs.google.com/document/d/…

Use it from Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json (Mac):

{
  "mcpServers": {
    "google-drive-comments": {
      "command": "google-drive-comments-mcp",
      "args": ["serve"]
    }
  }
}

(Use the absolute path from which google-drive-comments-mcp if it isn't on Claude Desktop's $PATH.)

Use it from the shell

# Find a doc
google-drive-comments-mcp search "Q3 strategy"

# Read all comments (open + resolved) on a doc by URL or ID
google-drive-comments-mcp comments "https://docs.google.com/document/d/abc123/edit"

# Only unresolved comments
google-drive-comments-mcp comments abc123 --open-only

The 2 MCP tools

drive_search_files(query, max_results=10)

Search Drive. Plain strings are auto-wrapped as a filename search; raw Drive query syntax passes through.

[
  {
    "id": "1AbC…",
    "name": "Q3 Strategy",
    "mime_type": "application/vnd.google-apps.document",
    "modified": "2026-04-20T09:00:00.000Z",
    "owners": ["Jane Doe"],
    "web_view_link": "https://docs.google.com/document/d/1AbC…/edit"
  }
]

drive_get_comments(file, include_resolved=True)

Read all comments on a file. file accepts a Docs/Sheets/Slides/Drive URL or a bare file ID.

{
  "file": { "id": "1AbC…", "name": "Q3 Strategy", "mime_type": "…document", "web_view_link": "…", "owners": ["Jane Doe"] },
  "open_count": 2,
  "resolved_count": 1,
  "comments": [
    {
      "id": "AAAA…",
      "author": "Jane Doe",
      "content": "Can we add the unit-economics table here?",
      "quoted_text": "Our margins improved in Q3.",
      "resolved": false,
      "created": "2026-04-21T10:00:00Z",
      "modified": "2026-04-21T10:00:00Z",
      "replies": [
        { "author": "John Smith", "content": "Added.", "action": "", "created": "2026-04-21T11:00:00Z" }
      ]
    }
  ]
}

quoted_text is the document text the comment is anchored to — useful context for understanding what each comment refers to.

Configuration

Variable Default What
DRIVE_MCP_CREDENTIALS ~/.config/google-drive-comments-mcp/credentials.json OAuth client secret JSON
DRIVE_MCP_TOKEN ~/.config/google-drive-comments-mcp/token.json Cached refresh token
DRIVE_MCP_SCOPES https://www.googleapis.com/auth/drive.readonly OAuth scopes (comma-separated)
XDG_CONFIG_HOME ~/.config Standard XDG override

Sharing one login with other Google MCP tools

If you also run a sibling tool (e.g. gmail-attachments-mcp) and want a single OAuth consent for both, point both tools at the same credential + token files (via the env vars above, or symlinks) and authorize once with the combined scopes:

DRIVE_MCP_SCOPES="https://www.googleapis.com/auth/gmail.readonly,https://www.googleapis.com/auth/drive.readonly" \
  google-drive-comments-mcp setup --reauth

A token granted a superset of scopes satisfies each tool's narrower request.

Security

  • Read-only: the default scope is drive.readonly. It cannot edit, comment, or delete — only read file metadata, content, and comments.
  • Scope breadth: drive.readonly grants read access to all your Drive files, not just the one you query. There is no per-file read scope that also exposes comments. Treat the cached token like a password (it's written 0600).
  • No telemetry: your OAuth client lives in your own Google Cloud project. Nothing leaves your machine.

Troubleshooting

HttpError 403: Google Drive API has not been used in project … before or it is disabled Enable the Drive API on the project that owns your OAuth client, then retry.

No valid Google token from Claude Desktop / cron Run google-drive-comments-mcp setup once in a terminal where a browser can open. Subsequent runs reuse the cached token.

Comments come back empty on a file you know has comments Confirm you authorized the account that can actually see the file, and that the file genuinely has comments (suggestions are not comments). Resolved comments are included unless you pass --open-only / include_resolved=false.

Authentication — bring your own Google OAuth client

There are no API keys and no shipped secrets. The server authenticates to your Google account with an OAuth client you create, and caches a refresh token locally. The author has zero access to your data.

  • Why your own client? Google's restricted scopes (here, drive.readonly) can't be redistributed in a shared app, and an unverified shared app is capped at 100 users. "Bring your own OAuth client" is the standard pattern for personal-data MCP servers.
  • What you need: a free Google Cloud project, the Drive API enabled, an OAuth consent screen, and a Desktop OAuth client. Full walkthrough → docs/setup-google-oauth.md.
  • Where your token lives: ~/.config/google-drive-comments-mcp/token.json (mode 0600). Delete it to revoke locally; revoke fully at myaccount.google.com/permissions.
  • No hosted/SaaS option — everything runs locally; your Drive data never touches a third-party server.

More guides

Related tools

Part of a small family of focused, local MCP servers for Google Workspace data the hosted connectors don't expose:

They can share one OAuth login or stay isolated — see each repo's setup.

License

MIT. See LICENSE.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选