Google Slides Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Google Slides Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
An MCP (Model Context Protocol) server for Google Slides. Enables AI assistants (Claude Code, Cursor, Windsurf, etc.) to create, read, and edit Google Slides presentations directly from chat.
39 tools organized into 4 categories:
| Tool | Description |
|---|---|
createPresentation | Create a new presentation |
getPresentation | Get metadata and slide summaries |
listPresentations | Search presentations on Drive |
duplicatePresentation | Copy an entire presentation (template workflow) |
| Tool | Description |
|---|---|
addSlide | Add a slide with layout (BLANK, TITLE, TITLE_AND_BODY, ...) |
deleteSlide | Delete slide(s) |
duplicateSlide | Duplicate a slide |
reorderSlides | Reorder slides |
getSlide | Get detailed element info for a slide |
updateSlideBackground | Set background color or image |
setSpeakerNotes / getSpeakerNotes | Manage speaker notes |
copySlideFromPresentation | Import a slide from another presentation |
setSkipSlide | Show/hide slide in slideshow |
| Group | Tools |
|---|---|
| Insert | insertTextBox, insertImage, insertShape, insertTable, insertVideo, insertLine |
| Table | insertTableRow, insertTableColumn, deleteTableRow, deleteTableColumn, updateTableCell, formatTableCell, mergeTableCells, unmergeTableCells |
| Edit | updateText, updateTextStyle, updateShapeStyle, setParagraphStyle, moveResizeElement |
| Other | deleteElement, groupElements, ungroupElements, replaceAllText, replaceImage, batchUpdate |
| Tool | Description |
|---|---|
exportPresentation | Export to PDF, PPTX, or ODP |
getThumbnail | Get thumbnail image of a slide |
google-slides-mcp) > CreateSlides MCP)Slides MCP Desktop)credentials.jsongit clone https://github.com/ryanvo162/google-slides-mcp.git
cd google-slides-mcp
npm install
npm run buildCopy your credentials.json (downloaded in Step 3) into the project folder:
cp /path/to/credentials.json .Run the auth flow:
node dist/index.js authA URL will appear in the terminal. Open it in your browser, sign in with your Google account, and grant access. Your token will be saved at ~/.config/google-slides-mcp/token.json.
Note: If you see "This app isn't verified", click Advanced > Go to Slides MCP (unsafe). This is normal for unverified apps.
Open ~/.claude.json and add to the mcpServers section:
{
"mcpServers": {
"google-slides": {
"command": "node",
"args": ["/full/path/to/google-slides-mcp/dist/index.js"]
}
}
}Replace `/full/path/to/` with the actual path on your machine.
macOS example:
"args": ["/Users/username/google-slides-mcp/dist/index.js"]Windows example:
"args": ["C:\\Users\\username\\google-slides-mcp\\dist\\index.js"]Then restart Claude Code to load the MCP server.
Open Claude Code and try:
Create a new presentation called "Hello World"If Claude creates the presentation and returns a Google Slides link, you're all set!
Add to .cursor/mcp.json or .windsurf/mcp.json:
{
"mcpServers": {
"google-slides": {
"command": "node",
"args": ["/path/to/google-slides-mcp/dist/index.js"]
}
}
}Add to claude_desktop_config.json:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json{
"mcpServers": {
"google-slides": {
"command": "node",
"args": ["/path/to/google-slides-mcp/dist/index.js"]
}
}
}| Variable | Description |
|---|---|
GOOGLE_CLIENT_ID | OAuth client ID (alternative to credentials.json) |
GOOGLE_CLIENT_SECRET | OAuth client secret |
SERVICE_ACCOUNT_PATH | Path to service account key file |
GOOGLE_IMPERSONATE_USER | Email to impersonate (service account only) |
GOOGLE_MCP_PROFILE | Profile name (supports multiple Google accounts) |
LOG_LEVEL | debug, info, warn, error, silent (default: info) |
state parameter for CSRF protection0600 (owner-only read)presentations + drive.fileCopy credentials.json into the project root. See Step 3 and 5.
Run node dist/index.js auth again to re-authorize.
Check that credentials.json is valid and Google Slides API is enabled (Step 2).
Verify the path in ~/.claude.json is correct. Restart Claude Code after updating the config.
ISC
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.