Managing Google Workspace
taylorwilsdon/google_workspace_mcp
Manages Google Workspace operations across 12 services (Gmail, Drive, Calendar, Docs, Sheets, Slides, Forms, Tasks, Contacts, Chat, Apps Script, Custom Search).
Create properly formatted Google Docs via the MCP API. An agent skill from ai-analyst-lab/ai-analyst.
$ npx skills add ai-analyst-lab/ai-analyst --skill google-doc-export -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ai-analyst-lab/ai-analyst google-doc-export --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ai-analyst-lab/ai-analyst.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/google-doc-export .claude/skills/google-doc-export && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "google-doc-export" agent skill from https://github.com/ai-analyst-lab/ai-analyst/tree/main/.claude/skills/google-doc-export into .claude/skills/google-doc-export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "google-doc-export", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ai-analyst-lab/ai-analyst/tree/main/.claude/skills/google-doc-exportType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ai-analyst-lab/ai-analyst --skill google-doc-export -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ai-analyst-lab/ai-analyst google-doc-export --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ai-analyst-lab/ai-analyst.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/google-doc-export .agents/skills/google-doc-export && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "google-doc-export" agent skill from https://github.com/ai-analyst-lab/ai-analyst/tree/main/.claude/skills/google-doc-export into .agents/skills/google-doc-export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "google-doc-export", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ai-analyst-lab/ai-analyst --skill google-doc-export -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ai-analyst-lab/ai-analyst google-doc-export --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ai-analyst-lab/ai-analyst.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/google-doc-export .cursor/skills/google-doc-export && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "google-doc-export" agent skill from https://github.com/ai-analyst-lab/ai-analyst/tree/main/.claude/skills/google-doc-export into .cursor/skills/google-doc-export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "google-doc-export", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ai-analyst-lab/ai-analyst.git --path .claude/skills/google-doc-export--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ai-analyst-lab/ai-analyst --skill google-doc-export -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ai-analyst-lab/ai-analyst google-doc-export --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ai-analyst-lab/ai-analyst.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/google-doc-export .gemini/skills/google-doc-export && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "google-doc-export" agent skill from https://github.com/ai-analyst-lab/ai-analyst/tree/main/.claude/skills/google-doc-export into .gemini/skills/google-doc-export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "google-doc-export", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ai-analyst-lab/ai-analyst google-doc-exportInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ai-analyst-lab/ai-analyst --skill google-doc-export -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ai-analyst-lab/ai-analyst.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/google-doc-export .github/skills/google-doc-export && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "google-doc-export" agent skill from https://github.com/ai-analyst-lab/ai-analyst/tree/main/.claude/skills/google-doc-export into .github/skills/google-doc-export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "google-doc-export", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ai-analyst-lab/ai-analyst --skill google-doc-export -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ai-analyst-lab/ai-analyst google-doc-export --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ai-analyst-lab/ai-analyst.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/google-doc-export .opencode/skills/google-doc-export && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "google-doc-export" agent skill from https://github.com/ai-analyst-lab/ai-analyst/tree/main/.claude/skills/google-doc-export into .opencode/skills/google-doc-export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "google-doc-export", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
google-doc-exportCreate properly formatted Google Docs via the MCP API. An agent skill from ai-analyst-lab/ai-analyst.
Google Doc Export is an agent skill from ai-analyst-lab/ai-analyst. Create properly formatted Google Docs via the MCP API. This skill prevents common issues like text/image overlap, broken heading hierarchy, excessive whitespace, and inconsistent formatting. Use this skill automatically whenever you're building a Google Doc, calling any Google Docs MCP tool on the google-workspace server (createdoc, insertdocelements, insertdocimage, batchupdatedoc) or the google-docs server (uploadfiletodrive, writeformattedcontent), designing a document structure, or when the google-doc-creator…
Its SKILL.md is about 4.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Documents & Office, covering Cloud office suites. It works with Google Docs, Model Context Protocol, Google Workspace and Microsoft Word. The repository describes itself as: AI Product Analyst — Claude Code-powered data analysis toolkit. The licence is MIT.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 52c0744. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are python).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
docs.google.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Google Doc Export loads about 4.3k tokens when it runs. Until then it costs about 252 tokens; SKILL.md has 1,187 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from ai-analyst-lab/ai-analyst at commit 52c0744, republished under its MIT licence (© ai-analyst-lab). 1,187 words, ~4,331 tokens.
.claude/skills/google-doc-export/SKILL.md (or your agent's skills folder).Create properly formatted Google Docs via the MCP API. Prevents common issues: text/image overlap, broken heading hierarchy, excessive whitespace, inconsistent formatting.
Step 1: What type of document are you creating?
.docx → Google Docs workflow (Section A) with helpers/export/gdoc_builder.pyhelpers/INDEX.md for helpers, else use python-docx directlyStep 2: Choose your approach based on document type:
When: Any doc with charts, tables, or complex formatting (analysis reports, writeups)
Why: Most reliable. Avoids index calculation errors, handles images/tables automatically, always creates local backup.
How:
# 1. Use helpers/export/gdoc_builder.py to create .docx locally
# 2. Upload with conversion flag
upload_file_to_drive(
file_path="/path/to/report.docx",
convert_to_google_doc=True
)
# 3. Done! Returns Google Doc URLAvailable MCP function: mcp__google-docs__upload_file_to_drive(file_path, convert_to_google_doc=True)
When: Quick text-only docs with no images/tables (meeting notes, simple memos)
Which server: This repo's doc agents (google-doc-creator, google-doc-reviewer) target the google-workspace MCP server, whose Docs functions are create_doc, insert_doc_elements, insert_doc_image, inspect_doc_structure, batch_update_doc, update_paragraph_style, and get_doc_as_markdown. Drive uploads (upload_file_to_drive, upload_image_to_drive) come from the google-docs server. auth-preflight detects which servers are installed; call only functions the installed server exposes (Section F lists both).
This is the easiest and most reliable approach for complex documents.
IMPORTANT: Always check for existing helpers before writing .docx code from scratch.
helpers/export/gdoc_builder.py (PREFERRED for analysis documents)When to use: Creating analysis reports, findings writeups, or any document following the Analysis Readout template (Context → Summary → Analysis → Next Steps → Resources).
Why: Pre-built, tested, handles all formatting automatically. Don't reinvent the wheel.
from helpers.export.gdoc_builder import build_readout
# Build structured analysis document
doc_data = {
"title": "Q1 Analysis",
"findings": [...], # Your analysis content
"charts": ["/path/to/chart1.png", "/path/to/chart2.png"]
}
docx_path = build_readout(doc_data) # Returns path to .docx fileThe builder automatically applies:
When to use: Creating non-analysis documents (proposals, specs, design docs) that don't fit the Analysis Readout template.
Requirements:
helpers/INDEX.md first to verify no helper exists for your use caseoutputs/ directoryreport_[title]_[YYYYMMDD].docxExample:
from docx import Document
from docx.shared import Inches, Pt
from docx.enum.text import WD_ALIGN_PARAGRAPH
doc = Document()
# Add title
title = doc.add_heading('Document Title', level=1)
# Add content sections...
# Add charts
doc.add_picture('/path/to/chart.png', width=Inches(6))
# Save
doc.save('outputs/report_title_20260404.docx')CRITICAL: The local .docx file IS your backup. Do not delete it.
result = mcp__google-docs__upload_file_to_drive(
file_path=docx_path,
convert_to_google_doc=True
)
# Returns: {"file_id": "...", "url": "https://docs.google.com/document/d/..."}You now have TWO deliverables (always provide both to the user):
Live Google Doc - result["url"]
Local backup - docx_path
/outputs/ directoryGoogle's .docx converter handles:
No risk of index invalidation, no image timing issues, no expiring image URLs.
For simple text-only documents, you can use MCP functions directly.
# 1. Create blank doc
result = mcp__google-docs__create_document(title="Meeting Notes")
doc_id = result["document_id"]
# 2. Add formatted content
content_blocks = [
{"type": "heading1", "text": "Meeting Notes\n"},
{"type": "body", "text": "Attendees: Alice, Bob\n\n"},
{"type": "heading2", "text": "Discussion Points\n"},
{"type": "body", "text": "We reviewed the Q1 results...\n"}
]
mcp__google-docs__write_formatted_content(
document_id=doc_id,
content_blocks=json.dumps(content_blocks)
)# 1. Upload image to Drive first
image_result = mcp__google-docs__upload_image_to_drive(
file_path="/path/to/chart.png"
)
image_url = image_result["url"]
# 2. Read doc to find insertion index
doc_content = mcp__google-docs__read_document(document_id=doc_id)
# Find the index where you want the image
# 3. Insert image with BOTH width and height
mcp__google-docs__insert_image(
document_id=doc_id,
image_url=image_url,
width_pts=400,
height_pts=300 # REQUIRED - calculate from aspect ratio if needed
)Critical: Always specify BOTH width_pts and height_pts. Omitting height causes API error.
Use this structure for analysis reports:
insert_image requires both;
omitting height is an API error.H1: [Document Title]
[Subtitle — scope, date, author]
H2: Executive Summary
[3-5 sentence overview]
[Numbered key findings — max 3]
[Bottom line statement]
H2: Section 1: [Topic]
[Chart image — centered, 400pt wide]
[The Insight: bold label + finding]
[Supporting evidence paragraphs]
[Why this matters for product: bold label + implication]
H2: Section 2: [Topic]
... (repeat pattern)
H2: Data Quality and Limitations
[Outlier investigation]
[Sample size notes]
[Methodology caveats]
H2: Recommendations
[Numbered list of actionable recommendations]
[Each with a bold title + explanation paragraph]
H2: Appendix
[Summary statistics tables]After H1: 2 empty paragraphs
After H2: 1 empty paragraph
Before chart: 1 empty paragraph
After chart: 1 empty paragraph
Before table: 1 empty paragraph
After table: 1 empty paragraph
Between sections: 2 empty paragraphs (includes the pre-H2 spacing)
Between paragraphs: 0 empty paragraphs (natural paragraph spacing)
After bullet list: 1 empty paragraphAfter H1: 2 empty paragraphs
After H2: 1 empty paragraph
Before chart: 1 empty paragraph
After chart: 1 empty paragraph
Before table: 1 empty paragraph
After table: 1 empty paragraph
Between sections: 2 empty paragraphs
Between paragraphs: 0 empty paragraphs (natural spacing)
After bullet list: 1 empty paragraphThese phrases should always be bold when they appear at the start of a paragraph:
Standard chart: width=400, height=300 (4:3 ratio)
Wide chart: width=500, height=280 (16:9 ratio)
Square chart: width=350, height=350 (1:1 ratio)
Small inline: width=250, height=200 (for side notes)Always specify both width and height. If only one dimension is known, calculate the other from the image's aspect ratio.
| Pitfall | What happens | Prevention |
|---|---|---|
| Use a public file-host URL | Expires quickly and leaks data | Upload to Drive first or use .docx embed |
| Omit height in insert_image | API error: "height must be greater than 0" | Always specify both width AND height |
| Call a function from the other MCP server | Tool not found error | Section F lists each server's functions; auth-preflight reports which is installed |
| No local backup | Doc only exists in Google's cloud | Use .docx → Google Docs conversion |
| Complex doc via API calls | Index errors, image placement failures | Use .docx conversion instead |
| Too many empty paragraphs | Excessive whitespace, unprofessional | Max 2 consecutive empty paragraphs |
| Stub headings with no body | Orphaned headings confuse readers | Only insert headings that have content beneath |
Two MCP servers appear in this repo. Use the one that is installed (auth-preflight reports it); do not mix a function from one with a document created on the other.
# google-workspace server — used by google-doc-creator and google-doc-reviewer
mcp__google-workspace__create_doc(title) → {"document_id": str}
mcp__google-workspace__insert_doc_elements(document_id, elements) # text, headings, tables
mcp__google-workspace__insert_doc_image(document_id, image_url, index, width, height)
mcp__google-workspace__inspect_doc_structure(document_id, detailed=True) # indices for edits
mcp__google-workspace__batch_update_doc(document_id, requests) # raw Docs API batch
mcp__google-workspace__update_paragraph_style(document_id, ...)
mcp__google-workspace__get_doc_as_markdown(document_id)
# google-docs server — simple text-only docs and Drive uploads
mcp__google-docs__create_document(title) → {"document_id": str}
mcp__google-docs__read_document(document_id) → str
mcp__google-docs__append_text(document_id, text) → status
mcp__google-docs__write_formatted_content(document_id, content_blocks) → status
mcp__google-docs__insert_image(document_id, image_url, width_pts, height_pts) → status
mcp__google-docs__upload_image_to_drive(file_path, file_name) → {"file_id": str, "url": str}
mcp__google-docs__upload_file_to_drive(file_path, convert_to_google_doc) → {"file_id": str, "url": str}The .docx → Google Docs workflow (Section A) needs only upload_file_to_drive and is the recommended path for any document with tables or images.
When creating analysis documents with findings, embed provenance data at three levels:
Every finding paragraph must include a data stamp inline, immediately after the finding title or key claim:
**Finding 1: Mobile converts at half the rate of desktop**
[50K rows | Jan-Mar 2026 | EVENTS | Confidence: B (82/100)]Data stamps are built via helpers/provenance/provenance_assembler.py:
from helpers.provenance.provenance_assembler import build_data_stamp, render_data_stamp
stamp = build_data_stamp(
row_count=50000,
date_range="Jan-Mar 2026",
primary_table="EVENTS",
confidence_grade="B",
confidence_score=82,
)
# stamp["one_liner"] = "[50K rows | Jan-Mar 2026 | EVENTS | Confidence: B (82/100)]"In .docx via gdoc_builder.py, data stamps render as a small italic paragraph below each finding heading. In direct MCP mode, insert as body text with 9pt font and muted gray color.
For Tier 2+ analyses, add citation markers and a provenance appendix.
Two-pass approach:
Pass 1 — Build content:
For each finding, insert a citation marker [F1] after the data stamp
At the end of the document (before any existing Appendix), add:
H2: Provenance Appendix
H3: F1: Mobile converts at half the rate
**Data:** [50K rows | Jan-Mar 2026 | EVENTS | Confidence: B (82/100)]
**Methodology:** segmented comparison, COUNT by device
**SQL:**
```sql
SELECT device, COUNT(*) FROM events GROUP BY deviceCross-verification: Type B: Parts-to-whole — Verified (PASS, diff 0.2%)
H3: F2: ...
Pass 2 — Link citations (.docx workflow only):
After building the .docx via gdoc_builder.py, the builder automatically creates:
H3 in the Provenance Appendix (named F1, F2, etc.)[F1] markers in the body to the corresponding bookmarkFor direct MCP mode, citation links are not possible (the API doesn't support internal bookmarks). Use the [F1] text markers without hyperlinks — the reader can scroll to the appendix.
For Tier 3 analyses, add a link to the analysis receipt at the bottom of the document:
H2: Analysis Receipt
Full audit trail with all queries, methodology, and reproducibility data:
→ outputs/analysis_receipt_{DATASET}_{DATE}.mdAll provenance data comes from helpers/provenance/provenance_assembler.py:
from helpers.provenance.provenance_assembler import build_provenance_blocks, render_provenance_appendix
blocks = build_provenance_blocks(
findings=findings_list, # from narrative parser
confidence_result=confidence, # from validation
cross_verification=cv_data, # from cross-verification YAML
connection_type="snowflake",
database="ANALYTICS",
)
# Render each block as markdown for the appendix
for block in blocks:
appendix_md = render_provenance_appendix(block)[F1], [F2] appear after each data stamp (Tier 2+).docx output (Tier 2+)© ai-analyst-lab, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/google-doc-export of ai-analyst-lab/ai-analyst.
Open the folder on GitHubat commit 52c0744
Google Doc Export next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Google Doc Export this skillai-analyst-lab/ai-analyst | 304 | — | ~4.3k | Automated safety check: Pass | MIT | |
| Managing Google Workspacetaylorwilsdon/google_workspace_mcp | 3.3k | — | ~2.9k | Automated safety check: Pass | MIT | |
| Google Docssanjay3290/ai-skills | 431 | — | ~636 | Automated safety check: Pass | Apache-2.0 | |
| Gwskv0906/pm-kit | 138 | — | ~1.6k | Automated safety check: Pass | MIT | |
| Google Workspacemitsuhiko/agent-stuff | 3.2k | — | ~919 | Automated safety check: Pass | Apache-2.0 | |
| Gdoc To Markdowniurykrieger/claude-bedrock | 105 | 1 repos | ~3.8k | Automated safety check: Notes | MIT |
taylorwilsdon/google_workspace_mcp
Manages Google Workspace operations across 12 services (Gmail, Drive, Calendar, Docs, Sheets, Slides, Forms, Tasks, Contacts, Chat, Apps Script, Custom Search).
sanjay3290/ai-skills
Interact with Google Docs - create documents, search by title, read content, and edit text.
kv0906/pm-kit
This skill should be used when the user asks to "set up gws", "install Google Workspace CLI", "connect Gmail to Claude", "manage Google Drive from terminal", "send email from CLI", "check my…
mitsuhiko/agent-stuff
Access Google Workspace APIs (Drive, Docs, Calendar, Gmail, Sheets, Slides, Chat, People) via local helper scripts without MCP.
iurykrieger/claude-bedrock
Internal fetcher module for Google Docs and Sheets. An agent skill from iurykrieger/claude-bedrock.
benoror/obsidianos_work
Fetch & embed AI transcripts as Obsidian callouts. An agent skill from benoror/obsidianos_work.
ai-analyst-lab/ai-analyst
Never present a metric or number in isolation; anchor every number to a comparison (prior period, benchmark, or another segment) or state that none is available.
ai-analyst-lab/ai-analyst
Retrieve proven SQL patterns, table cheatsheets, and join patterns from .knowledge/query-archaeology/ so past work gets reused.
ai-analyst-lab/ai-analyst
Save completed analyses to the knowledge system's analysis archive for future reference.
ai-analyst-lab/ai-analyst
Verify Google Workspace MCP authentication at the start of any session that needs Google APIs (Docs, Slides, Drive).
ai-analyst-lab/ai-analyst
Causal inference toolkit for when experiments are not possible: estimate treatment effects from observational data with assumption checks and mandatory caveats.
ai-analyst-lab/ai-analyst
Standardized workflow for uploading local chart PNGs to Google Drive and making them available for insertion into Google Docs and Slides.
Categories
Create properly formatted Google Docs via the MCP API. An agent skill from ai-analyst-lab/ai-analyst. Google Doc Export is an agent skill from ai-analyst-lab/ai-analyst. Create properly formatted Google Docs via the MCP API.
Google Doc Export fits situations like: the user wants to create a Doc; export to Google Docs; share analysis as a Doc; build a formatted document.
Run `npx skills add ai-analyst-lab/ai-analyst --skill google-doc-export -a claude-code`. Or copy the skill folder (.claude/skills/google-doc-export in ai-analyst-lab/ai-analyst) into .claude/skills/google-doc-export in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ai-analyst-lab/ai-analyst --skill google-doc-export -a codex`. Or copy the skill folder (.claude/skills/google-doc-export in ai-analyst-lab/ai-analyst) into .agents/skills/google-doc-export in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ai-analyst-lab/ai-analyst --skill google-doc-export -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/google-doc-export, .gemini/skills/google-doc-export, .github/skills/google-doc-export and .opencode/skills/google-doc-export in your project.
SKILL.md names no scripts, command-line tools or credentials: Google Doc Export is instructions for the agent only. Our summary lists: Python 3.
SKILL.md names 1 domain. In commands or code: docs.google.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Google Doc Export is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.3k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Google Doc Export: Managing Google Workspace (taylorwilsdon/google_workspace_mcp, 3.3k stars), Google Docs (sanjay3290/ai-skills, 431 stars), Gws (kv0906/pm-kit, 138 stars) and Google Workspace (mitsuhiko/agent-stuff, 3.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ai-analyst-lab (a GitHub organization) maintains it in ai-analyst-lab/ai-analyst, which has 304 GitHub stars. The repository holds 43 skills in this directory. The repository was last updated on September 30, 2026.
Source: ai-analyst-lab/ai-analyst on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.