npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@mnicole-dev/gamma-mcp-server

v1.0.1

Published

MCP server for generating presentations with the Gamma API (v1.0)

Readme

@mnicole-dev/gamma-mcp-server

A Model Context Protocol (MCP) server for the Gamma public API (v1.0). Generate presentations, documents, webpages, and social posts programmatically from any MCP-compatible client.

Why this package?

Existing Gamma MCP servers on npm (@mercuryml/gamma-mcp-server, @iflow-mcp/nickloveinvesting-gamma-mcp-server) call a deprecated API endpoint (v0.1) that returns 404 errors. This package targets the current Gamma API v1.0 and covers all available endpoints.

Features

| Tool | Description | |------|-------------| | generate | Create a presentation, document, webpage, or social post from a text prompt | | generate-from-template | Adapt an existing Gamma template with new content | | get-generation-status | Check the status of a generation (useful for timeouts) | | list-themes | Search available themes by name (with pagination) | | list-folders | List workspace folders (with pagination) |

Requirements

Installation

npm install -g @mnicole-dev/gamma-mcp-server

Or run directly with npx:

npx @mnicole-dev/gamma-mcp-server

Configuration

Set the GAMMA_API_KEY environment variable:

export GAMMA_API_KEY=sk-gamma-xxxxx

Claude Code

Add to your ~/.claude.json:

{
  "mcpServers": {
    "gamma": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@mnicole-dev/gamma-mcp-server"],
      "env": {
        "GAMMA_API_KEY": "sk-gamma-xxxxx"
      }
    }
  }
}

Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "gamma": {
      "command": "npx",
      "args": ["-y", "@mnicole-dev/gamma-mcp-server"],
      "env": {
        "GAMMA_API_KEY": "sk-gamma-xxxxx"
      }
    }
  }
}

Cursor / Windsurf / other MCP clients

Use the stdio transport with npx -y @mnicole-dev/gamma-mcp-server as the command and pass GAMMA_API_KEY in the environment.

Tools reference

generate

Create a new gamma from a text prompt or outline.

| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | inputText | string | Yes | — | Text and image URLs for the gamma (1–100,000 tokens) | | textMode | string | No | generate | generate (short prompts), condense (long content), preserve (keep as-is) | | format | string | No | presentation | presentation, document, webpage, social | | numCards | number | No | 10 | Number of cards/slides (1–60, up to 75 for Ultra plans) | | cardSplit | string | No | auto | auto or inputTextBreaks | | language | string | No | en | Language code (en, fr, es, de, …) | | textAmount | string | No | medium | brief, medium, detailed, extensive | | tone | string | No | — | Tone of the content (e.g. "professional", "humorous") | | audience | string | No | — | Intended audience (e.g. "investors", "students") | | imageSource | string | No | aiGenerated | aiGenerated, pictographic, unsplash, webAllImages, webFreeToUse, webFreeToUseCommercially, giphy, placeholder, noImages | | imageModel | string | No | — | Image model (e.g. "dall-e-3") | | imageStyle | string | No | — | Image style (e.g. "minimal lineart style illustrations") | | dimensions | string | No | 16x9 | Presentation: 16x9, 4x3, fluid. Document: fluid, pageless, letter, a4. Social: 1x1, 4x5, 9x16 | | additionalInstructions | string | No | — | Extra instructions for the generator (max 2,000 chars) | | themeId | string | No | — | Theme ID (use list-themes to find one) | | themeName | string | No | — | Theme name to search for (alternative to themeId) | | folderIds | string[] | No | — | Folder IDs to store the gamma in | | exportAs | string | No | — | pdf or pptx | | workspaceAccess | string | No | — | noAccess, view, comment, edit, fullAccess | | externalAccess | string | No | — | noAccess, view, comment, edit |

generate-from-template

Adapt an existing Gamma template with new content.

| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | gammaId | string | Yes | — | The template gamma ID to adapt | | prompt | string | Yes | — | Instructions and content for adaptation (1–100,000 tokens) | | themeId | string | No | — | Theme ID (uses template's theme if omitted) | | folderIds | string[] | No | — | Folder IDs to store the gamma in | | exportAs | string | No | — | pdf or pptx | | imageModel | string | No | — | Image model | | imageStyle | string | No | — | Image style | | workspaceAccess | string | No | — | Workspace sharing level | | externalAccess | string | No | — | External sharing level |

get-generation-status

Check the status of a previously started generation.

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | generationId | string | Yes | The generation ID to check |

Returns the current status (pending, in_progress, completed, failed) and the gamma URL if completed.

list-themes

Search for available Gamma themes.

| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | query | string | No | "" | Search query (case-insensitive) | | limit | number | No | 10 | Max results per page (1–50) | | after | string | No | — | Cursor for pagination |

list-folders

List workspace folders.

| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | query | string | No | "" | Search query (case-sensitive) | | limit | number | No | 10 | Max results per page (1–50) | | after | string | No | — | Cursor for pagination |

Examples

Generate a presentation

> Create a 5-slide presentation about renewable energy in French

The generate tool will be called with:

{
  "inputText": "Renewable energy: solar, wind, hydro, geothermal, and biomass",
  "numCards": 5,
  "language": "fr"
}

Generate from a template

> Adapt template abc123 for our Q1 sales report

The generate-from-template tool will be called with:

{
  "gammaId": "abc123",
  "prompt": "Q1 2026 sales report with revenue figures and growth metrics"
}

Export as PowerPoint

> Create a 10-slide investor deck and export as PPTX
{
  "inputText": "Series A investor deck for a B2B SaaS startup",
  "numCards": 10,
  "audience": "investors",
  "tone": "professional",
  "exportAs": "pptx"
}

How it works

  1. The MCP client sends a tool call to the server via stdio
  2. The server sends the request to the Gamma API (https://public-api.gamma.app/v1.0)
  3. For generation requests, the server polls the status endpoint every 10 seconds until completion (up to 15 minutes)
  4. The server returns the gamma URL and credit usage information

Development

git clone https://github.com/mnicole-dev/gamma-mcp-server.git
cd gamma-mcp-server
pnpm install
pnpm dev          # Run with tsx (requires GAMMA_API_KEY)
pnpm build        # Build to dist/

License

MIT