Skip to main content
All connectors
qbash Connectors / Google Slides

Google Slides MCP serverand Python AI tasks

qbash hosts a Google Slides MCP server you can use in Claude, ChatGPT, Codex, Cursor, Grok Bot and Muse. Developers use qbash Tasks to write cloud-hosted Python functions that pair Google Slides with models such as Claude and GPT.

Add the qbash MCP

Use Google Slides from Claude Code, Codex, Cursor and other MCP clients. Connect Google Slides in qbash, and your agent can work with its data and build Tasks that call it.

claude mcp add --transport http qbash https://mcp.qbash.com/mcp

Then run /mcp in Claude Code and sign in with qbash.

  • Get a presentation's title, slides with their text and speaker notes, and layouts
  • Get one slide's text and elements, plus Google's full page resource
  • Get a PNG image link for one slide. The link expires after 30 minutes
  • Create a new, empty presentation
  • Replace placeholder text such as {{client_name}} everywhere it appears, keeping the text's formatting
  • Replace every shape containing some text, such as {{logo}}, with an image from a URL
Read the docs

Write a Google Slides task in Python

A qbash Task is a Python function hosted in the cloud. Python is the runtime and defines the process, and built-in inline prompts run on leading models such as Claude, GPT, Gemini and Grok.

Run a Task on a schedule, from an HTTP request or when a connected app sends an event. Your agents and chat tools call it over MCP.

Each run is logged with its inputs and results, and you can turn data logging off for any Task. Every Task has version control, and each run is locked to the version it ran.

Check a deck before it goes out

Read every slide’s text and speaker notes, then ask an inline prompt for slides with missing notes, numbers that disagree between slides and leftover placeholders.

main.py
deck = qbash.integrations.google_slides.get_presentation(
presentation_id=qbash.inputs.get("presentation_id"),
)
slides = [
{"index": s["index"] + 1, "text": s.get("text"), "speaker_notes": s.get("speaker_notes")}
for s in deck.get("slides", [])
]
if slides:
review = qbash.ai.run_prompt(
slug="google-slides-deck-check",
variables={"slides": json.dumps(slides)},
)
qbash.output({"deck": deck["title"], "url": deck["url"], "review": review})
else:
qbash.output("The deck has no slides yet.")
Sample get_presentation response
{
"status": "success",
"presentation_id": "1qbashDeckId",
"title": "qbash connector update",
"url": "https://docs.google.com/presentation/d/1qbashDeckId/edit",
"locale": "en",
"revision_id": "rev-1",
"page_size": {
"width": 720,
"height": 405,
"unit": "PT"
},
"slides": [
{
"slide_id": "p1",
"index": 0,
"layout_id": "layout-title",
"text": "qbash connector update\nNovember",
"speaker_notes": "Open with the three new Google connectors.",
"elements": []
},
{
"slide_id": "p2",
"index": 1,
"layout_id": "layout-body",
"text": "New this month\nGoogle Slides, Google Forms, Google Meet\n{{owner}}",
"speaker_notes": null,
"elements": []
}
],
"slide_count": 2,
"layouts": [],
"raw": null
}

Custom MCP server

Build a custom MCP server with Google Slides

Create a hosted MCP server that combines Google Slides tools with your other connectors, Tasks and memory folders. You choose each tool it exposes, so a server can share Google Slides reads with write tools left off.

Share the server with your team, and each person adds it to the client they already use.

How to set it up

  1. Connect Google Slides on the qbash Connectors page.
  2. Create an MCP server and add the Google Slides tools you want to share.
  3. Paste the server URL into your client. It connects with OAuth or an access token.

Google Slides MCP questions

Can it fill a template deck?

Yes. Put placeholders such as {{client}} in the deck, then replace_text swaps every one across all slides in a single request and returns how many it changed. replace_shapes_with_image puts an image from a public URL in place of each shape that contains a given piece of text.

Can it list or copy my presentations?

Use the Google Drive connector for that. The Slides connection asks only for Google’s presentations scope, which reads and edits decks you give it by ID or URL. Finding, copying and exporting decks are Drive operations.

Does it read speaker notes?

Yes. get_presentation returns each slide’s text and its speaker notes, with every text box, table and image listed under the slide.

Build a Google Slides task

Write it in Python with AI steps, or describe it to your coding agent through the qbash MCP.