Pixelpitch Slidegen
Allows deployment and operation on Google Cloud, using Cloud Run for hosting, Cloud Storage for template storage, Eventarc for upload-triggered template preparation, and Cloud Tasks for job queuing, to enable PowerPoint deck generation in Gemini Enterprise.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Pixelpitch SlidegenCreate a 10-slide deck from the Q3 sales template and add the revenue chart"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Pixelpitch Slidegen
Apache License 2.0 · Third-party notices
Create editable PowerPoint decks in Gemini Enterprise. Use an interactive MCP App, an A2A agent with A2UI cards, or both. Both interfaces share slide authoring, template preparation, and the PowerPoint renderer.
Start here
I want to… | Read |
Try the widget without cloud credentials | |
Set up the MCP App in my project | |
Deploy A2A, MCP, or both from Cloud Shell | |
Understand the services and data flow | |
Parse templates automatically when files change | |
Change the widget and test the user experience | |
Check template fidelity and export behavior | |
Understand licensing and attribution |
All setup values come from your configuration. No project ID, tenant, OAuth client, or customer template is provided by this repository.
The architecture explanation describes the diagram in text.
Related MCP server: Office-PowerPoint-MCP
Choose an interface
Interface | What the user sees | How generation runs |
MCP App | Interactive brief, draft previews, progress, cancellation, and download | A saved job continues in a separate worker |
A2A with A2UI | Native Gemini Enterprise intake and result cards, with streamed progress | The Cloud Run agent generates within the request |
MCP's available final previews come from the exported PowerPoint. The downloaded
.pptx, not the preview image, is the editable file.
A2A uses the native ADK agent and Gemini Enterprise's composite A2UI catalog. Saved-job A2A behavior currently belongs to the workstation experiment, not Cloud Run.
MCP has its own OAuth connector. Adding MCP does not require replacing an A2A registration. Local browser tests do not prove that a particular Gemini Enterprise tenant supports the widget. Complete the signed-in setup test.
Prepare a checkout
This repository contains the agent, renderer, and Slidify converter. It does not need the Pixelpitch desktop or web application, a parent checkout, or its JavaScript workspace. See what is included.
Install mise, review mise.toml, then run:
git clone https://github.com/vamsiramakrishnan/pixelpitch-slidegen.git
cd pixelpitch-slidegen
mise trust
mise install
mise run setupsetup installs the locked Python environments and checks the four slide skills.
It does not create cloud resources. ADK and Antigravity have separate Python
environments because their dependency versions conflict. Keep that separation.
Antigravity loads only deck orchestration, slide craft, brand derivation, and template round-tripping skills. The broader skill catalog is not included. Brand and style choices remain available as local data, without loading their source skill documents into the worker's context.
Continue with the MCP guide or Cloud Shell guide. Do not run a full deployment against existing resources that this checkout's Terraform state does not own.
Connect Gemini Enterprise
Deployment creates billable resources and changes IAM. The MCP deployment also keeps a worker running continuously. Use the Cloud Shell guide for prerequisites, authentication, resource review, and the deployment commands.
After preparing the checkout and authenticating as described in that guide:
mise run configure
mise run planconfigure asks for your project, region, existing Gemini Enterprise app,
interface choice, and template preparation mode. It saves your choices in the
ignored deploy.env. plan shows the steps without contacting Google Cloud.
Neither command deploys anything.
Choose a2a, mcp, or both for DEPLOYMENT_MODE:
A2A deployment uses
agents-clito publish the agent card. It reuses a matching existing registration. It stops on an invalid registration ID or a failed registration lookup instead of creating a duplicate.MCP deployment creates the private API and worker, then prints the endpoint. You must still create the OAuth connector, enable actions, and sign in. The script does not create the connector for you. Put the OAuth client secret only in the Gemini Enterprise connector, never in the widget or Git.
Both interfaces share the renderer and prepared templates. MCP does not replace an A2A registration.
Finish with a signed-in conversation in your target Gemini Enterprise app.
Generate a deck, download the .pptx, and open it to check content and
editability. A healthy service or a working local preview is not that test.
Prepare templates when files change
Choose automatic for TEMPLATE_PREPARATION during setup to deploy the upload
trigger. The same gs://YOUR_BUCKET/templates/company.pptx URI can be reused:
Upload or replace the
.pptxdirectly undertemplates/in your configured bucket. Cloud Storage assigns the uploaded content a new generation number.Eventarc tells the private template worker that the upload is complete. Eventarc sends the notification; it does not parse PowerPoint files.
The worker queues a Cloud Tasks job. That job extracts every source slide, prepares the template, and validates the result.
The worker publishes a ready bundle for that exact generation. Both A2A and MCP read that bundle when using the template.
Run mise run templates-status and wait for ready: true for the current
generation. An old bundle is not silently used after the source changes.
Existing generated decks are not changed by a template upload.
Changing only object metadata does not trigger parsing. Nested files such as
templates/team/company.pptx are not accepted by this upload pipeline.
Use mise run templates-backfill for existing source files without ready
bundles. For upload commands and failure recovery, see
template operations. If you choose on-demand
instead, preparation starts when a template is first used, not at upload time.
Template-based output preserves measured layout positions and source artwork. It does not copy native PowerPoint masters or guarantee pixel-identical output. The renderer checks for missing authored text and editability before publishing.
Develop and verify
For a first local preview without cloud credentials, run:
mise run setup-dev
mise run demoOn your own machine, open http://127.0.0.1:18092. On Cloud Workstations, open
the HTTPS preview URL printed by the command. This runs the real MCP widget,
job queue, draft previews, and cancellation with synthetic slides and placeholder
downloads. It does not generate a real PowerPoint or prove Gemini Enterprise
compatibility. The host labels the mode and lets you test narrow chat columns.
Enter a six-slide brief and select Generate deck. Check that drafts appear, then try cancellation, reconnect, and the host's Chat width and Theme controls. Press Ctrl+C to stop the demo. These controls help test the widget; they are not additions to Gemini Enterprise.
Run mise run doctor for local dependency checks and repair commands. After
changing the UI, run mise run build-ui and reload the browser. For real model
calls and export, configure .env and use mise run dev on port 18093.
See the developer loop for the progression to a signed-in test.
Run these verification commands from this directory:
uv run pytest tests/unit tests/integration
mise run docs-checkAfter mise run setup-dev, run the MCP build and browser checks:
mise run test-mcpFor workstation authentication, iframe extension errors, and Linux browser dependencies, see local troubleshooting.
For local A2A experiments, use the workstation guide. Do not use a workstation relay as a customer production deployment.
Repository map
Directory | Owns |
| ADK agent, A2A/A2UI, MCP API, job state, and shared template logic |
| Isolated Antigravity authoring and four slide-generation skills |
| Interactive widget, local host, and MCP image build |
| Slidify conversion, source extraction, and export checks |
| Local converter package, assets, and regression tests |
| Preparation image built from the renderer image |
| Shared, MCP, and template infrastructure modules |
| Setup, deployment, diagnostics, and verification |
| Setup guides, architecture, and operations |
Before a public release
Follow the public release checklist. It covers the documentation check, tracked generated files, credentials, history, licenses, and clean-checkout verification. Passing the documentation check alone does not make the full repository ready to publish.
License
Except for the third-party material identified in THIRD_PARTY_NOTICES.md, this repository's source code and documentation are licensed under the Apache License, Version 2.0. You can use, modify, and redistribute them, including commercially, subject to the license's terms. The software is provided without warranties.
Keep existing copyright and attribution notices when redistributing this project. Vendored code, installed dependencies, and adapted design material retain their own applicable licenses. Their bundled notices and license copies are listed in THIRD_PARTY_NOTICES.md and licenses/.
The repository license does not grant rights to customer templates, logos, proprietary fonts, or other supplied assets. Use assets you have permission to use. No customer templates or credentials are bundled with the project.
This server cannot be deployed
Maintenance
Related MCP Connectors
Deterministic, fully editable PowerPoint from typed slide intents. 200+ layouts, brand templates.
Create professionally designed, editable PowerPoint presentations from a prompt.
Build decks in your own brand, from the AI agent you already use. Then edit them yourself.
Generate, edit, merge, translate and PDF-convert PowerPoint (.pptx) over MCP. 8 tools.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables AI assistants to create, edit, and manipulate PowerPoint presentations programmatically with support for text styling, shapes, slide rearrangement, and direct Office XML access.81-
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to programmatically create, manipulate, and analyze Microsoft PowerPoint presentations with advanced formatting and template management.5MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to create and manipulate PowerPoint presentations programmatically, including adding slides, exporting to PDF, and reading metadata.14 npm5MIT
- AlicenseNot gradedqualityDmaintenanceEnables PowerPoint automation on Windows, including template-based creation, real-time editing, LaTeX equations, animations, and multimodal slide analysis, all via natural language.133 PyPI117MIT