Agent-Native Calendar
Agent-Native Google Calendar - manage events, sync, and public booking
제작자가 쓴 설명(영어 원문)
Add inline, range-anchored comments to Google Docs - the one comment op the Google APIs can't do.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
GDOCS_COMMENTS_PROFILE_DIR, GDOCS_COMMENTS_CDP_URL필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"gdocs-comments": {
"command": "npx",
"args": [
"-y",
"gdocs-comments-mcp"
],
"env": {
"GDOCS_COMMENTS_PROFILE_DIR": "your-value",
"GDOCS_COMMENTS_CDP_URL": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add gdocs-comments --env GDOCS_COMMENTS_PROFILE_DIR=your-value --env GDOCS_COMMENTS_CDP_URL=your-value -- npx -y gdocs-comments-mcp실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"gdocs-comments": {
"command": "npx",
"args": [
"-y",
"gdocs-comments-mcp"
],
"env": {
"GDOCS_COMMENTS_PROFILE_DIR": "your-value",
"GDOCS_COMMENTS_CDP_URL": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"gdocs-comments": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"gdocs-comments-mcp"
],
"env": {
"GDOCS_COMMENTS_PROFILE_DIR": "your-value",
"GDOCS_COMMENTS_CDP_URL": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
GDOCS_COMMENTS_PROFILE_DIR envGDOCS_COMMENTS_CDP_URL env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검
레지스트리 이름이 GitHub 계정 stanislawherjan1 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.1.1)은 4개월 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.
같은 카테고리에는: Agent-Native Calendar, Excel MCP Server, MCP Server for Excel
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Agent-Native Google Calendar - manage events, sync, and public booking
Create and edit Excel files with AI: charts, PivotTables, formulas. No Excel needed.
Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
gdocs-comments-mcp
Inline, range-anchored comments for Google Docs — the one comment operation the Google APIs can't do.
= 18">
Quickstart · Scope · Tools · Configuration · How it works · Troubleshooting · Server deployment · FAQ
You're building an AI process around Google Docs — an agent that reviews drafts, audits contracts, gives editorial feedback. The natural way to deliver that feedback is how humans do it: a comment pinned to the exact sentence it's about, not a wall of text dumped at the end of the doc or into chat.
Then you hit the wall: the Google APIs can't create anchored comments. The Docs API has no comment endpoints at all, and the Drive API accepts an anchor field only to have the Docs editor ignore it — the comment shows up as a general, whole-document comment.
This MCP server closes that gap. Your agent calls add_comment with a text fragment and a comment; the server posts it through a real, logged-in Google Docs session, so it lands anchored to that exact text — just as if a human had selected it and pressed Ctrl+Alt+M:
This server does one thing: add a comment to a Google Doc. The interesting case is the anchored one — a comment pinned to a specific text range — which no Google API can do.
| Add a comment… | Google Docs API | Google Drive API | this server |
|---|---|---|---|
| unanchored (whole document) | ❌ | ✅ | ✅ |
| anchored to a text range | ❌ | ❌ | ✅ |
The Docs API has no comment endpoints at all. The Drive API's comments.create accepts an anchor field, but the Docs editor ignores it — the comment renders as an unanchored, whole-document comment. The editor's own anchor format (kix.*) is undocumented and can't be produced externally (Drive API docs, issuetracker #292610078, open since 2016). Driving the editor UI is the only way — so this server does exactly that, and nothing else. (Listing, replying, resolving, and deleting comments already work over the Drive API — use a Drive-based tool for those.)
This server is deliberately one narrow thing. Read this before wiring it in.
✅ It does: add comments to a Google Doc — anchored to a specific text range (the part no API can do), or unanchored on the whole document.
❌ It does NOT:
| You want to… | Use instead |
|---|---|
| Read the document's content (so an agent can decide what to comment on, or get the exact text to anchor to) | Google Docs API (documents.get) or a Docs-reading MCP |
| Export the doc (text / markdown / PDF) | Google Drive API (files.export) |
| List / reply to / resolve / delete comments | Google Drive API (comments.*) — faster, no browser |
Important: this tool never returns document content — its output is structured-only (
{ ok, anchored, occurrence_used, verified }), by design, so a malicious doc can't inject instructions into your agent. That means the agent is writing *blind*: to review a doc intelligently, pair this with a read capability (Docs APIdocuments.get) and feed the exact quoted text back in asfind_text. The two use different auth — this server drives a logged-in browser session (no OAuth), while the Docs/Drive APIs need an OAuth token or service account — but they can run against the same Google account.
One command — signs you in (opens a browser once), then registers the server with Claude Code:
npx -y gdocs-comments-mcp setup
That's it — skip to Use it below. Prefer to do it by hand, or use another client? The manual steps are below.
Manual setup
1. Log in once — opens a browser window; the Google session is saved to a local profile (~/.gdocs-comments-mcp/profile):
npx -y gdocs-comments-mcp login
2. Add the server to your MCP client:
# Claude Code
claude mcp add gdocs-comments -- npx -y gdocs-comments-mcp
Other MCP clients — after login, add the config for your client:
Claude Desktop / Cowork
Add to claude_desktop_config.json (Settings → Developer → Edit Config):
{
"mcpServers": { "gdocs-comments": { "command": "npx", "args": ["-y", "gdocs-comments-mcp"] } } }
</details>
Project-level .mcp.json (shared with your team via git)
Create .mcp.json in the project root — Claude Code, Cowork, and most MCP clients pick it up:
{
"mcpServers": { "gdocs-comments": { "command": "npx", "args": ["-y", "gdocs-comments-mcp"] } } }
Note: every user of the project still runs npx gdocs-comments-mcp login once on their own machine — sessions are personal and never shared through git.
Cursor
Add to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):
{
"mcpServers": { "gdocs-comments": { "command": "npx", "args": ["-y", "gdocs-comments-mcp"] } } }
</details>
VS Code (GitHub Copilot)
Add to .vscode/mcp.json:
{
"servers": { "gdocs-comments": { "type": "stdio", "command": "npx", "args": ["-y", "gdocs-comments-mcp"] } } }
</details>
3. Use it — ask your agent:
Add a comment to https://docs.google.com/document/d/1AbC…/edit — anchor it to "quarterly numbers" and say "Update this before Friday".
The agent calls add_comment and gets back:
{ "ok": true, "anchored": true, "occurrence_used": 1, "verified": true }
…and the comment is sitting on the highlighted phrase in the doc, from the account you logged in with.
No Playwright browser download is needed — by default the server drives your installed Google Chrome via playwright-core.
add_comment| Param | Required | Description |
|---|---|---|
doc | ✅ | Document id or full docs.google.com/document/d/ /edit URL |
comment_text | ✅ | Comment body (plain text, newlines OK) |
find_text | — | Exact, single-line text fragment to anchor to (must match the doc text). Omit to add a general, unanchored comment on the whole document. |
occurrence | — | Anchor to the N-th match when find_text appears multiple times (default 1) |
Returns { ok, anchored, occurrence_used, verified } — verified: true means the posted comment was observed in the page after submitting. If find_text is given but not found, the call fails with TEXT_NOT_FOUND and nothing is posted.
The tool never returns document content, so a malicious doc can't inject instructions into your agent through it.
check_connectionProbes the Google session; returns { connected, mode }. If connected: false, run npx gdocs-comments-mcp login again.
Scope note: this server does *one* thing — creating anchored comments. Listing, replying, resolving, and deleting comments all work fine through the Drive API (
comments.*), which is faster and needs no browser — use a Drive-based MCP for those.
npx gdocs-comments-mcp login # one-time interactive Google sign-in
npx gdocs-comments-mcp status # is the saved session still valid? npx gdocs-comments-mcp logout # delete the saved session/profile
All optional, via environment variables:
| Env var | Default | Purpose | ||
|---|---|---|---|---|
GDOCS_COMMENTS_PROFILE_DIR | ~/.gdocs-comments-mcp/profile | Where the logged-in browser profile lives (set a different dir per Google account) | ||
GDOCS_COMMENTS_BROWSER_CHANNEL | chrome | chrome \ | msedge \ | chromium (bundled; needs npx playwright install chromium) |
GDOCS_COMMENTS_HEADLESS | true | Set false to watch the automation work | ||
GDOCS_COMMENTS_IDLE_CLOSE_MIN | 10 | Close the managed browser after N idle minutes (0 = keep open) | ||
GDOCS_COMMENTS_CDP_URL | — | Attach to an existing browser over CDP instead of managing a profile (see below) | ||
GDOCS_COMMENTS_AUDIT_LOG | off | JSONL audit log (hashes only, no content) |
| Error | What it means | Fix |
|---|---|---|
NOT_CONNECTED | No saved Google session yet | npx gdocs-comments-mcp login |
SESSION_EXPIRED | The saved session lapsed (idle sessions die after ~1–2 weeks) | npx gdocs-comments-mcp login again |
TEXT_NOT_FOUND | find_text doesn't occur in the doc (or occurrence > number of matches) | Pass a fragment that matches the doc text exactly — nothing was posted |
NO_BROWSER | No Chrome/Edge/Chromium found | Install Google Chrome, or npx playwright install chromium + GDOCS_COMMENTS_BROWSER_CHANNEL=chromium |
PROFILE_LOCKED | Another process holds the profile (usually a running server + a login/status attempt) | Stop one of them, or use a second GDOCS_COMMENTS_PROFILE_DIR |
Comment lands but verified: false | The post-submit check couldn't see the comment (can be a false negative on long comments) | Check the doc; rerun with GDOCS_COMMENTS_HEADLESS=false to watch |
First run on a new machine? npx gdocs-comments-mcp status tells you exactly where you stand.
On a residential machine the default profile mode just works. On datacenter IPs, Google's anti-fraud rejects a freshly launched browser process reusing a saved session — it bounces to accounts.google.com/confirmidentifier. Relaunching from a profile does not work there.
What does work: keep the exact browser the operator logged into alive, and let this server attach to it:
--remote-debugging-port=9333 and log in to Google inside it once.GDOCS_COMMENTS_CDP_URL=http://127.0.0.1:9333.The server then drives that live session over CDP and never launches its own browser. Keep the session warm by navigating it to docs.google.com every few hours, or an idle session expires after ~1–2 weeks.
Because the APIs can't anchor a comment, the server does exactly what a person would: it drives the real Google Docs editor. Here's the full path of one add_comment call.
1. Attach to a logged-in browser. In the default *profile mode*, the server owns a persistent Chromium profile (your installed Google C
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요