gamma-app-mcp
gamma-app-mcp
MCP server for Gamma.app — generate presentations, documents, webpages, and social posts via the Gamma Public API v1.0. Full parameter surface including templates, folders, headers/footers, and email sharing.
Features
Generate from text — presentations, documents, webpages, and social posts with the full v1.0 parameter surface
Generate from template — swap content into an existing Gamma template, preserving layout (ideal for batch variants)
Poll generation status — async job tracking with share URL, export URL, and credit usage
List workspace themes — discover real theme IDs (no more hardcoded fallbacks)
List workspace folders — paginated folder discovery for output organization
Describe options — local enum introspection so LLMs can look up valid values without trial and error
Structured error surfacing — Gamma API error codes and payloads flow through instead of being swallowed
Input validation — char limits, enum checks, and format/dimension compatibility verified before network calls
Installation
pip install gamma-app-mcpOr install from source:
git clone https://github.com/cphoskins/gamma-app-mcp.git
cd gamma-app-mcp
pip install -e .Configuration
Get your API key
Log in to Gamma.app
Go to Account Settings > API Keys (
https://gamma.app/settings/api-keys)Generate a key
API key access requires a Pro, Ultra, Teams, or Business plan.
Claude Code
claude mcp add gamma -s user \
-e GAMMA_API_KEY=sk-gamma-your-key-here \
-- gamma-app-mcpClaude Desktop / other stdio hosts
Add to your client config:
{
"mcpServers": {
"gamma": {
"command": "gamma-app-mcp",
"env": {
"GAMMA_API_KEY": "sk-gamma-your-key-here"
}
}
}
}Environment variables
Variable | Required | Description |
| Yes | Your Gamma API key (Account Settings > API Keys) |
| No | Override the public API base URL (default: |
Tools
Tool | Purpose |
| Create a presentation, document, webpage, or social post from text. Full control over format, themes, images, headers/footers, folders, sharing, and export. |
| Create a variant from an existing Gamma template ( |
| Poll a generation job by |
| List themes in the authenticated workspace (standard + custom, 50+ themes). Cursor-paginated with |
| List workspace folders the authenticated user is a member of, with query filter and cursor pagination. |
| Local lookup of accepted enum values for API parameters — no network call. |
Example workflow
1. Simple presentation
# Via MCP:
gamma_generate(
input_text="Q3 2026 board update — ARR, burn, hiring plan, risks.",
format="presentation",
num_cards=12,
text_options={"amount": "detailed", "tone": "professional", "audience": "board members"},
image_options={"source": "aiGenerated", "style": "clean editorial"},
card_options={"dimensions": "16x9"},
export_as="pdf",
)
# -> {"generationId": "abc123...", "status": "submitted"}
gamma_get_status("abc123...")
# -> {"status": "completed", "gammaUrl": "https://gamma.app/docs/...", "exportUrl": "...", "credits": {...}}2. Template-based batch variant
# Discover theme and folder IDs
gamma_list_themes()
gamma_list_folders(query="Investor")
# Generate from an existing 1-page template
gamma_generate_from_template(
prompt="Personalized intro deck for Acme Corp, a manufacturing client in Dallas.",
gamma_id="gamma_tpl_abc123",
theme_id="theme_xyz",
folder_ids=["fld_investor_decks"],
export_as="pptx",
)3. Branded deck with header/footer
gamma_generate(
input_text="...",
format="presentation",
card_options={
"dimensions": "16x9",
"headerFooter": {
"topLeft": {"type": "image", "source": "themeLogo", "size": "sm"},
"bottomRight": {"type": "cardNumber"},
"bottomCenter": {"type": "text", "value": "Confidential"},
"hideFromFirstCard": True,
},
},
sharing_options={
"workspaceAccess": "edit",
"externalAccess": "view",
"emailOptions": {
"recipients": ["team@example.com"],
"access": "comment",
},
},
)Development
git clone https://github.com/cphoskins/gamma-app-mcp.git
cd gamma-app-mcp
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytestRelease
./release.sh 0.3.0
git add -A && git commit -m "Release v0.3.0"
git tag v0.3.0
git push origin main --tagsThe push --tags triggers .github/workflows/publish.yml, which builds the sdist/wheel, publishes to PyPI via trusted publishing (OIDC, no stored tokens), and creates a GitHub release. See PUBLISHING.md for the one-time PyPI trusted publisher setup.
API reference
See GAMMA_API_REFERENCE.md for the full v1.0 endpoint and parameter inventory sourced from developers.gamma.app.
License
MIT — see LICENSE. Inspired by CryptoJym/gamma-mcp-server; ground-up Python rewrite with expanded coverage and corrected v1.0 endpoint paths.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cphoskins/gamma-app-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server