-
Notifications
You must be signed in to change notification settings - Fork 760
Add Google Docs, Sheets, and Slides plugins with bundled skills #394
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
JacobSampson
wants to merge
2
commits into
cursor:main
Choose a base branch
from
JacobSampson:jacobsampson/google-editors-plugins
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,36 @@ | ||
| { | ||
| "name": "google-docs", | ||
| "displayName": "Google Docs", | ||
| "version": "1.0.0", | ||
| "minClientVersions": { | ||
| "cursor": "3.22.0", | ||
| "grokbot": "0.30.0", | ||
| "sand": "0.30.0" | ||
| }, | ||
| "description": "Read, create, and edit documents.", | ||
| "author": { | ||
| "name": "Cursor", | ||
| "email": "plugins@cursor.com" | ||
| }, | ||
| "homepage": "https://github.com/cursor/plugins/tree/main/third_party/google-docs", | ||
| "repository": "https://github.com/cursor/plugins", | ||
| "license": "MIT", | ||
| "logo": "assets/logo.svg", | ||
| "keywords": [ | ||
| "google-docs", | ||
| "docs", | ||
| "google", | ||
| "mcp", | ||
| "documents", | ||
| "workspace" | ||
| ], | ||
| "category": "productivity", | ||
| "tags": [ | ||
| "docs", | ||
| "documents", | ||
| "mcp", | ||
| "google-workspace" | ||
| ], | ||
| "mcpServers": "./mcp.json", | ||
| "skills": "./skills/" | ||
| } | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| # Changelog | ||
|
|
||
| All notable changes to this plugin will be documented here. | ||
|
|
||
| ## 1.0.0 - initial release | ||
|
|
||
| - Logo: official Google Docs product icon on a padded white tile. | ||
| - Added the `google-docs` MCP server pointing at `https://api.cursor.com/rest-mcp/google-docs/mcp`. | ||
| - Bundled the `google-docs` skill covering the index contract, styling, lists, tables, and images. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,21 @@ | ||
| MIT License | ||
|
|
||
| Copyright (c) 2026 Cursor | ||
|
|
||
| Permission is hereby granted, free of charge, to any person obtaining a copy | ||
| of this software and associated documentation files (the "Software"), to deal | ||
| in the Software without restriction, including without limitation the rights | ||
| to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
| copies of the Software, and to permit persons to whom the Software is | ||
| furnished to do so, subject to the following conditions: | ||
|
|
||
| The above copyright notice and this permission notice shall be included in all | ||
| copies or substantial portions of the Software. | ||
|
|
||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
| AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
| SOFTWARE. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,43 @@ | ||
| # Google Docs | ||
|
|
||
| Cursor plugin that connects agents to [Google Docs](https://docs.google.com) through Cursor's remote [Model Context Protocol](https://modelcontextprotocol.io/) server. | ||
|
|
||
| Read document structure and text, create documents, insert and replace text, delete content ranges, and apply paragraph styles. | ||
|
|
||
| ## Install | ||
|
|
||
| 1. Open **Cursor Settings → Plugins**. | ||
| 2. Search for **Google Docs**. | ||
| 3. Click **Install**, then complete the Google sign-in prompt. | ||
|
|
||
| Or run `/add-plugin google-docs` in chat. | ||
|
|
||
| ## MCP | ||
|
|
||
| ```json | ||
| { | ||
| "mcpServers": { | ||
| "google-docs": { | ||
| "type": "http", | ||
| "url": "https://api.cursor.com/rest-mcp/google-docs/mcp" | ||
| } | ||
| } | ||
| } | ||
| ``` | ||
|
|
||
| Auth is OAuth 2.0 against Google. Cursor prompts for Google sign-in when the plugin connects. | ||
|
|
||
| ## Skill | ||
|
|
||
| The bundled `google-docs` skill teaches agents document-authoring conventions: the index contract for safe edits, character and paragraph styling, lists, tables, and images. | ||
|
|
||
| ## Docs | ||
|
|
||
| - Google Docs API: https://developers.google.com/workspace/docs/api/reference/rest | ||
| - Google Workspace overview: https://developers.google.com/workspace | ||
|
|
||
| Logo is the official Google Docs product icon, placed on a white tile with padding so it reads well in the Cursor UI. | ||
|
|
||
| ## License | ||
|
|
||
| MIT |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| { | ||
| "mcpServers": { | ||
| "google-docs": { | ||
| "type": "http", | ||
| "url": "https://api.cursor.com/rest-mcp/google-docs/mcp" | ||
| } | ||
| } | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,77 @@ | ||
| --- | ||
| name: google-docs | ||
| description: Author and edit Google Docs through the google-docs MCP tools - structured writing, character and paragraph styling, lists, tables, images, and safe index math. Use when creating a formatted document, editing document content, or applying styles. | ||
| --- | ||
|
|
||
| # Google Docs authoring | ||
|
|
||
| ## The index contract (the #1 source of bugs) | ||
|
|
||
| Docs edits address zero-based UTF-16 index ranges within one tab. Every write | ||
| SHIFTS later indexes, so: | ||
|
|
||
| 1. `read_document` first; it returns each element's `{start, end}` plus the | ||
| `revisionId`. | ||
| 2. Compute ONE edit from that read, pass `requiredRevisionId`, apply. | ||
| 3. Re-read before the next positional edit. Never reuse indexes across | ||
| writes, and never do arithmetic across two writes. | ||
|
|
||
| Order multi-part positional work BACK-TO-FRONT (highest index first) when | ||
| re-reading between steps is too expensive; earlier ranges stay valid. | ||
|
|
||
| ## Creating a document | ||
|
|
||
| `create_document` makes a BLANK doc (its API ignores content), so plan: | ||
|
|
||
| - Content known up front: prefer google-drive `google_drive_create_file` | ||
| with Markdown (`target_mime_type: ...document`), which imports headings, | ||
| lists, and tables in one call and can target a folder. | ||
| - Building incrementally: `create_document`, then `insert_text` with `index` | ||
| omitted to APPEND each paragraph; append mode reads the tail itself and is | ||
| revision-guarded automatically. `paragraphStyle` styles the new paragraphs | ||
| and `bold`/`italic` style the inserted text in the same call, so a | ||
| well-structured document is a sequence of appends with no styling pass. | ||
|
|
||
| ## Structure is not optional | ||
|
|
||
| A document without hierarchy reads as a text dump. Default shape for any | ||
| report/memo/notes request: a TITLE paragraph, an italic byline or date line, | ||
| HEADING_2 per section, short body paragraphs with bold on the phrases that | ||
| matter, and bulleted lists for enumerations. Use `insert_text`'s | ||
| paragraphStyle/bold/italic arguments as you write rather than styling | ||
| afterwards. | ||
|
|
||
| ## Styling | ||
|
|
||
| - Character styling (`apply_text_style`): bold/italic/underline/strike, | ||
| fontSize, fontFamily, textColor/backgroundColor as `#RRGGBB`, linkUrl. | ||
| Exclusive END index: to style one paragraph without its trailing newline, | ||
| use `end - 1` from the read. | ||
| - Paragraph styling: `apply_paragraph_style` for named styles | ||
| (TITLE/HEADING_1..6), `set_paragraph_format` for alignment, indents, and | ||
| line spacing (percent, 100 = single). | ||
| - Lists: `create_list` over the paragraphs' range; each newline-separated | ||
| paragraph becomes one item. Insert the plain lines first, then bullet them. | ||
|
|
||
| ## Tables and images | ||
|
|
||
| - `insert_table` inserts an EMPTY grid. To fill it: re-read (cells appear | ||
| with their own index ranges) and `insert_text` into cells from the LAST | ||
| cell to the first, so earlier cell indexes stay valid. | ||
| - `insert_image` needs a PUBLICLY fetchable URL (Google fetches it; auth | ||
| walls and localhost fail), PNG/JPEG/GIF. Size with width/height in points | ||
| (aspect kept when only one is set). | ||
| - `insert_page_break` starts a new page at an index. | ||
|
|
||
| ## Bulk text ops | ||
|
|
||
| `replace_text` replaces literal strings everywhere (or in named tabs) with | ||
| no index math; prefer it for renames and corrections. `delete_content` | ||
| rejects ranges that split table structure or surrogate pairs; deleting a | ||
| paragraph's final newline merges it with the next. | ||
|
|
||
| ## Verifying | ||
|
|
||
| Re-read with `read_document` for structure and styles, or google-drive | ||
| `google_drive_read_file` for the whole doc as Markdown, or | ||
| `google_drive_export_file` (pdf) when the visual result matters. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,36 @@ | ||
| { | ||
| "name": "google-sheets", | ||
| "displayName": "Google Sheets", | ||
| "version": "1.0.0", | ||
| "minClientVersions": { | ||
| "cursor": "3.22.0", | ||
| "grokbot": "0.30.0", | ||
| "sand": "0.30.0" | ||
| }, | ||
| "description": "Read, write, and append spreadsheet data.", | ||
| "author": { | ||
| "name": "Cursor", | ||
| "email": "plugins@cursor.com" | ||
| }, | ||
| "homepage": "https://github.com/cursor/plugins/tree/main/third_party/google-sheets", | ||
| "repository": "https://github.com/cursor/plugins", | ||
| "license": "MIT", | ||
| "logo": "assets/logo.svg", | ||
| "keywords": [ | ||
| "google-sheets", | ||
| "sheets", | ||
| "google", | ||
| "mcp", | ||
| "spreadsheets", | ||
| "workspace" | ||
| ], | ||
| "category": "productivity", | ||
| "tags": [ | ||
| "sheets", | ||
| "spreadsheets", | ||
| "mcp", | ||
| "google-workspace" | ||
| ], | ||
| "mcpServers": "./mcp.json", | ||
| "skills": "./skills/" | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| # Changelog | ||
|
|
||
| All notable changes to this plugin will be documented here. | ||
|
|
||
| ## 1.0.0 - initial release | ||
|
|
||
| - Logo: official Google Sheets product icon on a padded white tile. | ||
| - Added the `google-sheets` MCP server pointing at `https://api.cursor.com/rest-mcp/google-sheets/mcp`. | ||
| - Bundled the `google-sheets` skill covering A1 and grid coordinates, formatting, charts, and validation. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,21 @@ | ||
| MIT License | ||
|
|
||
| Copyright (c) 2026 Cursor | ||
|
|
||
| Permission is hereby granted, free of charge, to any person obtaining a copy | ||
| of this software and associated documentation files (the "Software"), to deal | ||
| in the Software without restriction, including without limitation the rights | ||
| to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
| copies of the Software, and to permit persons to whom the Software is | ||
| furnished to do so, subject to the following conditions: | ||
|
|
||
| The above copyright notice and this permission notice shall be included in all | ||
| copies or substantial portions of the Software. | ||
|
|
||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
| AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
| SOFTWARE. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,43 @@ | ||
| # Google Sheets | ||
|
|
||
| Cursor plugin that connects agents to [Google Sheets](https://sheets.google.com) through Cursor's remote [Model Context Protocol](https://modelcontextprotocol.io/) server. | ||
|
|
||
| Read spreadsheet metadata and cell ranges, create spreadsheets, write and append values, clear ranges, and manage sheet tabs. | ||
|
|
||
| ## Install | ||
|
|
||
| 1. Open **Cursor Settings → Plugins**. | ||
| 2. Search for **Google Sheets**. | ||
| 3. Click **Install**, then complete the Google sign-in prompt. | ||
|
|
||
| Or run `/add-plugin google-sheets` in chat. | ||
|
|
||
| ## MCP | ||
|
|
||
| ```json | ||
| { | ||
| "mcpServers": { | ||
| "google-sheets": { | ||
| "type": "http", | ||
| "url": "https://api.cursor.com/rest-mcp/google-sheets/mcp" | ||
| } | ||
| } | ||
| } | ||
| ``` | ||
|
|
||
| Auth is OAuth 2.0 against Google. Cursor prompts for Google sign-in when the plugin connects. | ||
|
|
||
| ## Skill | ||
|
|
||
| The bundled `google-sheets` skill teaches agents spreadsheet conventions: when to use A1 versus grid coordinates, dashboard formatting, charts, and validation. | ||
|
|
||
| ## Docs | ||
|
|
||
| - Google Sheets API: https://developers.google.com/workspace/sheets/api/reference/rest | ||
| - Google Workspace overview: https://developers.google.com/workspace | ||
|
|
||
| Logo is the official Google Sheets product icon, placed on a white tile with padding so it reads well in the Cursor UI. | ||
|
|
||
| ## License | ||
|
|
||
| MIT |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| { | ||
| "mcpServers": { | ||
| "google-sheets": { | ||
| "type": "http", | ||
| "url": "https://api.cursor.com/rest-mcp/google-sheets/mcp" | ||
| } | ||
| } | ||
| } |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.