Skip to main content

MCP server for Gamma.app — generate presentations, documents, webpages, and social posts via the Gamma Public API v1.0

Project description

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-mcp

Or 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

  1. Log in to Gamma.app
  2. Go to Account Settings > API Keys (https://gamma.app/settings/api-keys)
  3. 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-mcp

Claude 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
GAMMA_API_KEY Yes Your Gamma API key (Account Settings > API Keys)
GAMMA_BASE_URL No Override the public API base URL (default: https://public-api.gamma.app)

Tools

Tool Purpose
gamma_generate Create a presentation, document, webpage, or social post from text. Full control over format, themes, images, headers/footers, folders, sharing, and export.
gamma_generate_from_template Create a variant from an existing Gamma template (gammaId), swapping content while preserving layout.
gamma_get_status Poll a generation job by generationId until status is completed or failed. Returns gammaUrl, exportUrl, and credit usage.
gamma_list_themes List themes in the authenticated workspace (standard + custom, 50+ themes). Cursor-paginated with query/limit/after — matching gamma_list_folders. Surfaces errors instead of falling back to hardcoded defaults.
gamma_list_folders List workspace folders the authenticated user is a member of, with query filter and cursor pagination.
gamma_describe_options 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]"
pytest

Release

./release.sh 0.3.0
git add -A && git commit -m "Release v0.3.0"
git tag v0.3.0
git push origin main --tags

The 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gamma_app_mcp-0.2.0.tar.gz (21.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gamma_app_mcp-0.2.0-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

Details for the file gamma_app_mcp-0.2.0.tar.gz.

File metadata

  • Download URL: gamma_app_mcp-0.2.0.tar.gz
  • Upload date:
  • Size: 21.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gamma_app_mcp-0.2.0.tar.gz
Algorithm Hash digest
SHA256 869b77892ea8938bf1ea8b7b4b1ff6c1b25c51077b5f84e1a19d5d55476302a5
MD5 9988aa1bf8cae4d0f0cf1afd16b7693d
BLAKE2b-256 b8c272d2ba13dc86779d36adb355e2e00eeb1acbae143400f0410ed9c7a1aafd

See more details on using hashes here.

Provenance

The following attestation bundles were made for gamma_app_mcp-0.2.0.tar.gz:

Publisher: publish.yml on cphoskins/gamma-app-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gamma_app_mcp-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: gamma_app_mcp-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 15.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gamma_app_mcp-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2d284175ede74c3f4824463bceb9f080dc078d61420f08dbe42bef99e1591130
MD5 e85b071e5b3ff26d088f00e0712ea34a
BLAKE2b-256 e0eee688c1c31951b4a4cadbeadca5cf1624f7056b1e087f9f274a9881b37ed5

See more details on using hashes here.

Provenance

The following attestation bundles were made for gamma_app_mcp-0.2.0-py3-none-any.whl:

Publisher: publish.yml on cphoskins/gamma-app-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page