@mindstone/mcp-server-gamma

Gamma MCP server for creating Gamma presentations, documents, webpages, and social posts, listing themes and folders, and polling async generation/export status.
Best for MCP hosts that want to create Gamma decks and exports from a local package using an API key they already manage.
Status
Why this exists
Gamma's hosted MCP server is the easiest path for no-code and remote-connector flows. This package is for local MCP hosts that already manage npm packages and API keys.
It gives an assistant the useful Gamma creation loop: pick a theme or folder, start a deck/document/webpage generation, wait for it to finish, and return the Gamma link or exported PDF/PPTX. The benefit is simple: turn a prompt into a usable Gamma asset without leaving the host.
Example interaction
"Create a 10-slide investor update about Q4 results using our corporate theme and export it as PPTX."
Tools the host calls:
gamma_list_themes โ finds the custom theme ID.
gamma_generate โ starts a presentation generation with export_as: "pptx".
gamma_get_status โ polls until Gamma completes the deck and export.
Response (trimmed):
{
"generation_id": "gen_123",
"status": "completed",
"gamma_url": "<untrusted-content source=\"gamma:generation.url\">https://gamma.app/docs/...</untrusted-content>",
"pptx_url": "<untrusted-content source=\"gamma:generation.url\">https://...</untrusted-content>",
"file_path": "/tmp/gamma_export_gen_123_abcd.pptx"
}
External strings (theme/folder names, theme keywords, status error text, and URLs) are returned inside <untrusted-content> envelopes so the model treats them as data, not instructions.
Requirements
One-click install

After clicking the button, your host will prompt you to fill: GAMMA_API_KEY, GAMMA_EXPORT_POLL_INTERVAL_MS, GAMMA_EXPORT_POLL_MAX_ATTEMPTS, GAMMA_REQUEST_TIMEOUT_MS.
Manual config for Claude Desktop / Claude Code / Goose / Continue.dev (Gamma)
{
"mcpServers": {
"Gamma": {
"command": "npx",
"args": [
"-y",
"@mindstone/mcp-server-gamma"
],
"env": {
"GAMMA_API_KEY": "",
"GAMMA_EXPORT_POLL_INTERVAL_MS": "5000",
"GAMMA_EXPORT_POLL_MAX_ATTEMPTS": "12",
"GAMMA_REQUEST_TIMEOUT_MS": "60000"
}
}
}
}
Quick Start
Install & build
cd <path-to-repo>/connectors/gamma
npm install
npm run build
npx (once published)
npx -y @mindstone/mcp-server-gamma
Local
Configuration
Environment variables
GAMMA_API_KEY โ Gamma API key
GAMMA_EXPORT_POLL_INTERVAL_MS โ export poll interval in milliseconds (default: 5000)
GAMMA_EXPORT_POLL_MAX_ATTEMPTS โ maximum export poll attempts (default: 12)
GAMMA_REQUEST_TIMEOUT_MS โ optional override (positive integer ms, max 30 min) for the outbound HTTP request timeout applied to both Gamma API and host-bridge calls. Default: 60000 (60s). Raise this if you see TIMEOUT errors on slow submits; lower it if you want tighter bounds.
MCP_HOST_BRIDGE_STATE โ host-managed bridge state file used for credential management when a host provides one; not needed for ordinary manual setup.
MINDSTONE_REBEL_BRIDGE_STATE โ backwards-compatible alias for MCP_HOST_BRIDGE_STATE.
Host configuration examples
Claude Desktop / Cursor
{
"mcpServers": {
"Gamma": {
"command": "npx",
"args": ["-y", "@mindstone/mcp-server-gamma"],
"env": {
"GAMMA_API_KEY": "your-api-key"
}
}
}
}
Local development (no npm publish needed)
{
"mcpServers": {
"Gamma": {
"command": "node",
"args": ["<path-to-repo>/connectors/gamma/dist/index.js"],
"env": {
"GAMMA_API_KEY": "your-api-key"
}
}
}
}
Configuration
configure_gamma_api_key โ Configure the Gamma API key
Listing
gamma_list_themes โ List available Gamma themes (custom and standard)
gamma_list_folders โ List folders in the user's Gamma workspace
Generation
gamma_generate โ Create AI-powered presentations, documents, webpages, or social posts
gamma_create_from_template โ Clone and modify an existing Gamma document using AI
gamma_get_status โ Poll the status of a Gamma generation
Security notes
- Gamma API calls use
GAMMA_API_KEY as an x-api-key header.
configure_gamma_api_key can store the key in memory, or hand it to a host bridge when MCP_HOST_BRIDGE_STATE is present.
- Host bridge requests, when configured, go to
127.0.0.1 using the token from the bridge state file.
- Theme and folder names and theme keyword arrays returned by
gamma_list_themes / gamma_list_folders are workspace-authored text and are wrapped in <untrusted-content> envelopes so the model treats them as data, not instructions. Unknown vendor-added response fields are stripped by fail-closed Zod validation, and vendor error bodies are never written to logs or model-visible errors.
- PDF/PPTX exports are downloaded from Gamma-provided URLs into the system temp directory. Export URLs are validated before any outbound request: HTTPS only, no userinfo, private/loopback/reserved hosts rejected, and hosts restricted to
gamma.app and its subdomains. Redirects are followed manually with every hop re-validated against the same checks, and downloads are written atomically (exclusive no-follow create at an unpredictable path, mode 0600).
- Generation can create content in the user's Gamma workspace, may consume Gamma credits, and can set workspace/external sharing options; the generation tools are annotated
destructiveHint: true accordingly.
Licence
FSL-1.1-MIT โ Functional Source License, Version 1.1, with MIT future licence. The software converts to MIT licence on 2030-04-08.