Agent-Native Calendar
Agent-Native Google Calendar - manage events, sync, and public booking
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
MCP server for Google Docs integration with OAuth2 and service account support.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
GOOGLE_DOCS_OAUTH_CLIENT_ID, GOOGLE_DOCS_OAUTH_CLIENT_SECRET, GOOGLE_DOCS_OAUTH_REFRESH_TOKEN, GOOGLE_DOCS_SERVICE_ACCOUNT_CLIENT_EMAIL, GOOGLE_DOCS_SERVICE_ACCOUNT_PRIVATE_KEY, GOOGLE_DOCS_IMPERSONATE_EMAIL, GOOGLE_DOCS_ENABLED_TOOLGROUPSค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"google-docs": {
"command": "npx",
"args": [
"-y",
"google-docs-workspace-mcp-server"
],
"env": {
"GOOGLE_DOCS_OAUTH_CLIENT_ID": "ใส่ค่าของคุณ",
"GOOGLE_DOCS_OAUTH_CLIENT_SECRET": "ใส่ค่าของคุณ",
"GOOGLE_DOCS_OAUTH_REFRESH_TOKEN": "ใส่ค่าของคุณ",
"GOOGLE_DOCS_SERVICE_ACCOUNT_CLIENT_EMAIL": "ใส่ค่าของคุณ",
"GOOGLE_DOCS_SERVICE_ACCOUNT_PRIVATE_KEY": "ใส่ค่าของคุณ",
"GOOGLE_DOCS_IMPERSONATE_EMAIL": "ใส่ค่าของคุณ",
"GOOGLE_DOCS_ENABLED_TOOLGROUPS": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add google-docs --env GOOGLE_DOCS_OAUTH_CLIENT_ID='ใส่ค่าของคุณ' --env GOOGLE_DOCS_OAUTH_CLIENT_SECRET='ใส่ค่าของคุณ' --env GOOGLE_DOCS_OAUTH_REFRESH_TOKEN='ใส่ค่าของคุณ' --env GOOGLE_DOCS_SERVICE_ACCOUNT_CLIENT_EMAIL='ใส่ค่าของคุณ' --env GOOGLE_DOCS_SERVICE_ACCOUNT_PRIVATE_KEY='ใส่ค่าของคุณ' --env GOOGLE_DOCS_IMPERSONATE_EMAIL='ใส่ค่าของคุณ' --env GOOGLE_DOCS_ENABLED_TOOLGROUPS='ใส่ค่าของคุณ' -- npx -y google-docs-workspace-mcp-serverเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"google-docs": {
"command": "npx",
"args": [
"-y",
"google-docs-workspace-mcp-server"
],
"env": {
"GOOGLE_DOCS_OAUTH_CLIENT_ID": "ใส่ค่าของคุณ",
"GOOGLE_DOCS_OAUTH_CLIENT_SECRET": "ใส่ค่าของคุณ",
"GOOGLE_DOCS_OAUTH_REFRESH_TOKEN": "ใส่ค่าของคุณ",
"GOOGLE_DOCS_SERVICE_ACCOUNT_CLIENT_EMAIL": "ใส่ค่าของคุณ",
"GOOGLE_DOCS_SERVICE_ACCOUNT_PRIVATE_KEY": "ใส่ค่าของคุณ",
"GOOGLE_DOCS_IMPERSONATE_EMAIL": "ใส่ค่าของคุณ",
"GOOGLE_DOCS_ENABLED_TOOLGROUPS": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"google-docs": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"google-docs-workspace-mcp-server"
],
"env": {
"GOOGLE_DOCS_OAUTH_CLIENT_ID": "ใส่ค่าของคุณ",
"GOOGLE_DOCS_OAUTH_CLIENT_SECRET": "ใส่ค่าของคุณ",
"GOOGLE_DOCS_OAUTH_REFRESH_TOKEN": "ใส่ค่าของคุณ",
"GOOGLE_DOCS_SERVICE_ACCOUNT_CLIENT_EMAIL": "ใส่ค่าของคุณ",
"GOOGLE_DOCS_SERVICE_ACCOUNT_PRIVATE_KEY": "ใส่ค่าของคุณ",
"GOOGLE_DOCS_IMPERSONATE_EMAIL": "ใส่ค่าของคุณ",
"GOOGLE_DOCS_ENABLED_TOOLGROUPS": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
GOOGLE_DOCS_SERVICE_ACCOUNT_CLIENT_EMAIL envGOOGLE_DOCS_IMPERSONATE_EMAIL envGOOGLE_DOCS_ENABLED_TOOLGROUPS envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันโดเมน pulsemcp.com แล้ว (registry ตรวจความเป็นเจ้าของโดเมน)
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: GOOGLE_DOCS_OAUTH_CLIENT_ID, GOOGLE_DOCS_OAUTH_CLIENT_SECRET, GOOGLE_DOCS_OAUTH_REFRESH_TOKEN, GOOGLE_DOCS_SERVICE_ACCOUNT_PRIVATE_KEY
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.4) เข้า registry 5 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Agent-Native Calendar, Excel MCP Server, MCP Server for Excel
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Agent-Native Google Calendar - manage events, sync, and public booking
ให้ AI สร้างและแก้ไฟล์ Excel ได้เอง ทั้งสูตร กราฟ และ PivotTable โดยไม่ต้องมีโปรแกรม Excel ในเครื่อง
Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
An MCP (Model Context Protocol) server that provides Google Docs integration for AI assistants. Supports both personal Google accounts (via OAuth2) and Google Workspace accounts (via service account with domain-wide delegation).
documents.batchUpdate requests for full structural controlGOOGLE_DOCS_ENABLED_TOOLGROUPSnpm install google-docs-workspace-mcp-server
Or run directly with npx:
npx google-docs-workspace-mcp-server
This server supports two authentication modes. Choose the one that matches your account type.
Use this for personal @gmail.com accounts or any Google account without Workspace admin access.
Run the built-in setup command:
npx google-docs-workspace-mcp-server oauth-setup <client_id> <client_secret>
You can also pass credentials via environment variables:
GOOGLE_DOCS_OAUTH_CLIENT_ID=... GOOGLE_DOCS_OAUTH_CLIENT_SECRET=... npx google-docs-workspace-mcp-server oauth-setup
Port conflict? If port 3000 is already in use, specify a different port:
PORT=3001 npx google-docs-workspace-mcp-server oauth-setup <client_id> <client_secret>
Desktop app credentials automatically allow http://localhost redirects on any port, so no additional Google Cloud Console configuration is needed.
This will open your browser for Google sign-in and print the refresh token. You only need to do this once — the refresh token does not expire (as long as the OAuth consent screen is published).
| Variable | Required | Description |
|---|---|---|
GOOGLE_DOCS_OAUTH_CLIENT_ID | Yes | OAuth2 client ID from Google Cloud Console |
GOOGLE_DOCS_OAUTH_CLIENT_SECRET | Yes | OAuth2 client secret |
GOOGLE_DOCS_OAUTH_REFRESH_TOKEN | Yes | Refresh token from the setup script |
GOOGLE_DOCS_ENABLED_TOOLGROUPS | No | Comma-separated list of tool groups (default: all) |
{
"mcpServers": { "google-docs": { "command": "npx", "args": ["google-docs-workspace-mcp-server"], "env": { "GOOGLE_DOCS_OAUTH_CLIENT_ID": "your-client-id.apps.googleusercontent.com", "GOOGLE_DOCS_OAUTH_CLIENT_SECRET": "your-client-secret", "GOOGLE_DOCS_OAUTH_REFRESH_TOKEN": "your-refresh-token" } } } }
Use this for Google Workspace organizations where a domain admin can grant domain-wide delegation.
https://www.googleapis.com/auth/documents (read and edit documents)https://www.googleapis.com/auth/drive (full read/write access to the impersonated user's Drive — required to export, read comments on, and manage arbitrary existing docs, including files this app did not create)| Variable | Required | Description |
|---|---|---|
GOOGLE_DOCS_SERVICE_ACCOUNT_CLIENT_EMAIL | Yes | Service account email address |
GOOGLE_DOCS_SERVICE_ACCOUNT_PRIVATE_KEY | Yes | Service account private key (PEM format) |
GOOGLE_DOCS_IMPERSONATE_EMAIL | Yes | Email address to impersonate |
GOOGLE_DOCS_ENABLED_TOOLGROUPS | No | Comma-separated list of tool groups to enable (default: all groups) |
You can find the client_email and private_key values in your service account JSON key file.
{
"mcpServers": { "google-docs": { "command": "npx", "args": ["google-docs-workspace-mcp-server"], "env": { "GOOGLE_DOCS_SERVICE_ACCOUNT_CLIENT_EMAIL": "my-service-account@my-project.iam.gserviceaccount.com", "GOOGLE_DOCS_SERVICE_ACCOUNT_PRIVATE_KEY": "[PopNx MCP ตัดค่าที่หน้าตาเหมือนกุญแจออก]", "GOOGLE_DOCS_IMPERSONATE_EMAIL": "user@yourdomain.com" } } } }
Note: For the private key, you can either:
\n for newlines (as shown above)The server supports three tool groups for permission-based access control:
| Group | Tools Included | Risk Level |
|---|---|---|
readonly | get_document, get_document_outline, export_document, list_comments | Low |
readwrite | All readonly tools + create_document, update_document, delete_document, append_text, insert_text, replace_text | Medium |
readwrite_external | All readwrite tools + share_document | High |
By default, all tool groups are enabled. To restrict access, set the GOOGLE_DOCS_ENABLED_TOOLGROUPS environment variable:
# Read-only access (no writes or sharing)
GOOGLE_DOCS_ENABLED_TOOLGROUPS=readonly
GOOGLE_DOCS_ENABLED_TOOLGROUPS=readwrite
GOOGLE_DOCS_ENABLED_TOOLGROUPS=readwrite_external
Security Note: The share_document tool is in a separate readwrite_external group because it can grant access to users outside your organization, which carries higher risk than purely internal edits.
All tools that take a document_id accept either a raw Google Docs ID (e.g., 1AbCdEf...) or a shareable Docs URL (e.g., https://docs.google.com/document/d/1AbCdEf.../edit). The server extracts the ID automatically.
Fetch a Google Doc and return its title, outline, and full body.
Parameters:
document_id (string, required): Google Docs ID or URLformat (string, optional): text (default) for human-readable output, or json for the raw documents.get API resourceReturn only the heading structure of a document — useful for getting your bearings on a long doc without pulling the full body.
Parameters:
document_id (string, required): Google Docs ID or URLCreate a new Google Doc.
Parameters:
title (string, required): Document titleinitial_content (string, optional): Plain text inserted into the new documentApply raw documents.batchUpdate requests. This is the escape hatch for any Docs API operation not covered by the more focused tools (e.g., applying paragraph styles, inserting tables, manipulating named ranges).
Parameters:
document_id (string, required): Google Docs ID or URLrequests (array, required): Array of documents.batchUpdate request objects (API reference)Example:
{
"document_id": "1AbCdEf...", "requests": [ { "insertText": { "location": { "index": 1 }, "text": "Hello, world!\n" } }, { "updateParagraphStyle": { "range": { "startIndex": 1, "endIndex": 14 }, "paragraphStyle": { "namedStyleType": "HEADING_1" }, "fields": "namedStyleType" } } ] }
Append text to the end of a document. Resolves the end-of-body index for you.
Parameters:
document_id (string, required): Google Docs ID or URLtext (string, required): Text to appendInsert text at a specific index.
Parameters:
document_id (string, required): Google Docs ID or URLindex (number, required): Insertion index (must be ≥ 1)text (string, required): Text to insertFind and replace text throughout a document. Reports the number of occurrences replaced.
Parameters:
document_id (string, required): Google Docs ID or URLfind (string, required): String to findreplace (string, required): Replacement stringmatch_case (boolean, optional): Whether matching is case-sensitive (default: false)Move a document to Drive trash by default, or permanently delete it.
Parameters:
document_id (string, required): Google Docs ID or URLpermanent (boolean, optional): When true, permanently delete instead of trashing (default: false)Export a document in a different format.
Parameters:
document_id (string, required): Google Docs ID or URLformat (string, required): One of markdown, html, txt, pdf, docx, odt, rtf, epubText formats (markdown, html, txt) are returned inline. Binary formats (pdf, docx, odt, rtf, epub) are returned base64-encoded.
List the comments on a document, including threaded replies and resolved state. Reads the Drive comments.list API and surfaces each comment's author, timestamps, resolved/open state, the anchored quoted text it refers to, the comment body, and any replies (including replies that resolved or reopened the thread).
Parameters:
document_id (string, required): Google Docs ID or URLinclude_resolved (boolean, optional): Include resolved (closed) threads (default: true). Set false to see only open comments.ตัดมาแค่ช่วงต้น อ่านต่อใน repo