google-slides-mcp
Converts linear Markdown documents into styled Google Slides presentations with customizable themes and layouts.
README
Google Slides Model Context Protocol (MCP) Server
A Model Context Protocol (MCP) server that converts linear Markdown documents into styled Google Slides presentations.
The design is in favor of structured content containers, elegant color palettes, and color-matched vector icons.
Themes & Design Aesthetics
The generator supports 5 custom themes designed to fit different corporate, professional, and creative presentation requirements. You can dynamically switch styles for the exact same markdown file simply by passing a different theme_name argument:
| Theme Name | Style Personality | Header Font | Body Font | Palette | Ideal For |
|---|---|---|---|---|---|
mckinsey |
Consulting / Structured | Poppins | Lato | Cool Navy, Slate Blue, White Cards | Executive updates, strategy decks, corporate pitch slides |
academic |
Scholarly / Elegant | Georgia | Garamond | Rich Charcoal, Off-White, Thin Borders | Research papers, formal thesis overviews, lecture outlines |
editorial |
Print / Contemporary | Montserrat | Open Sans | Warm Terracotta, Warm Cream, Clean Minimal | Creative agency briefs, brand stories, product showcases |
tech |
High-Contrast / Modern | Orbitron | Inter | Geometric Slate, Deep Indigo, Neon Cyan Accent | Software architecture, developer docs, product roadmaps |
zen |
Storytelling / Minimalist | Outfit | Source Sans Pro | Charcoal Grey, Matte Black, Pure Bare-canvas | High-level keynotes, high-impact storytelling, simple decks |
General Workflow
Creating Google Slides via this MCP server is a seamless three-step process:
graph LR
A["Draft Markdown"] --> B["Prompt AI agent"]
B --> C["Live Slide Deck Link"]
- Draft your Slide Content: Author a linear Markdown file containing slide titles, content paragraphs, and layout annotations using standard HTML comments (e.g.,
<!-- layout: twin-cards -->). - Interact with the Assistant: Prompt your AI session to generate slides, specifying your markdown filepath and your desired design aesthetic (e.g.,
mckinseyortech). - Open and Present: The assistant processes your file, generates coordinate-based layouts, downloads high-res monochrome icons from the Icons8 CDN, recolors them to match your theme's palette, compiles them via Google Slides batch-update requests, and replies with your live edit URL!
Setup and Configuration
1. Place Google Cloud Credentials
To write to your Google Drive, the server requires OAuth 2.0 client secrets from Google Cloud Console.
- Go to the Google Cloud Console.
- Create or select a project and enable both the Google Slides API and Google Drive API.
- Create an OAuth consent screen (External/Testing status), and add your Google email address as a Test User.
- Create an OAuth 2.0 Client ID (Desktop Application) and download its client secrets JSON.
- Save this downloaded JSON inside your home directory under the
.geminifolder, named exactlycredentials.json:- Path:
~/.gemini/credentials.json
- Path:
2. Run One-Time Authentication
MCP servers run headlessly in the background, which prevents interactive web authorization. You must run the initial token cache generation once manually in your terminal:
# Activate your python virtual environment
source .venv/bin/env/activate # or use .venv/bin/python directly
# Launch the one-time authentication flow
.venv/bin/python server.py --auth
This will output an OAuth authorization link and attempt to open your default browser. Authorize the application with your test Google account. Once consent is completed, the authenticated token will be securely cached in:
- Path:
~/.gemini/google-slides-token.json
From this point forward, all slide generation runs completely headlessly without ever prompting you for authentication again!
Command Line Reference
You can test slide generation directly from your command line before exposing the server to your workspace.
Run First-Time Local Compilation
.venv/bin/python -c "from server import convert_markdown_to_slides; print(convert_markdown_to_slides('test_slide.md', 'Premium Presentation', 'mckinsey'))"
Start the MCP Server Manually
To start the FastMCP server in standard transport mode:
.venv/bin/python server.py
AI/LLM Prompt Guide
Once integrated, you can direct the AI assistant using natural language. Here are standard, high-leverage prompts you can copy or adapt:
1. Generating a New Presentation
Prompt:
- "Generate a new Google Slides deck from my markdown file at
test_slide.md. Name it 'Project Architecture Overview' and apply the McKinsey consulting theme."
2. Switching Themes for the Same Content
Because style is separated from structure, you can rapidly compile alternatives:
Prompt:
- "Can you take my
test_slide.mdcontent and re-compile it into a dark-mode Tech slide aesthetic? Title it 'Project Architecture - Tech version'."
3. Iterative Refinement
You can ask your agentic coding assistant to modify your source content first, then compile:
Prompt:
- "Open my
test_slide.mdfile, add a new slide at the end about 'Testing and QA strategy' using a standard widescreen layout, and then run the slide converter tool to update the deck."
Slide Annotation Spec
To ensure your presentation has rich visual diversity, structure your Markdown file with layout comments. If no layout comment is supplied, the engine defaults to a widescreen standard card layout.
Title Slide Layout
Ideal for the opening slide. Generates large-font titles with high-contrast text and a left-bordered colored vertical block.
# Building Next-Gen Agentic Codebases
<!-- layout: title -->
Exploring the structural division between Domain Experts and Code Generation Engines.
Section Divider Layout
Creates high-impact, full-screen color-filled breakout slides to transition between topics.
# Core Design Principles
<!-- layout: section -->
Twin-Cards Layout
Perfect for comparison or separating contexts (e.g., Client vs. Server, Problem vs. Solution). Divides content into side-by-side white rounded cards with drop shadows.
# Separating Domain and Engineering Contexts
<!-- layout: twin-cards -->
## Domain Expert Context
<!-- card: expert -->
- **Epistemic Anchoring**
Grounds LLM reasoning in the exact ontology of the problem space to avoid drift.
- **Cognitive Guardrails**
Explicit constraints on domain logic that prevent non-viable architecture.
## Engineering Context
<!-- card: developer -->
- **Technical Tradeoffs**
Maps high-level design to technical capabilities and constraints.
- **Implementation Reality**
Bridges conceptual domain models with actual API and database limits.
Standard Layout
Organizes slide elements inside a breathable, centered widescreen container card featuring top-accent bands and customized icons.
# Google Slides MCP Capabilities
<!-- layout: standard -->
## Main Slide Title
- **Beautiful Design**
Applies cohesive styling, Poppins & Lato typography, and cool background color (#F1F5F9).
- **Interactive Authenticator**
Uses User-level Google OAuth 2.0 with a local cache for secure and robust workspace integration.
AI Agent Integration
To make this server available inside your standard AI agent application (such as Claude Desktop or any other standard MCP host), add this server block to your MCP configuration file:
{
"mcpServers": {
"google-slides-mcp": {
"command": "/path/to/google-slides-mcp/.venv/bin/python",
"args": [
"/path/to/google-slides-mcp/server.py"
],
"env": {
"PYTHONPATH": "/path/to/google-slides-mcp"
}
}
}
}
Restart your AI agent application, and you will see the convert_markdown_to_slides tool available in your workspace or chat interface!
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.