# gamma-mcp-server

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/Arkava-AI/gamma-mcp-server  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/gamma-mcp-server

## Description
Create presentations, documents, and webpages from any MCP-compatible AI assistant via Gamma.app

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "gamma-mcp-server": {
    "command": "npx",
    "args": ["-y","gamma-mcp-server"]
  }
}
```

## Documentation & README

# Gamma MCP Server

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Node.js Version](https://img.shields.io/badge/node-%3E%3D18-brightgreen)](https://nodejs.org)
[![TypeScript](https://img.shields.io/badge/TypeScript-5.7-blue)](https://www.typescriptlang.org/)
[![npm version](https://img.shields.io/npm/v/@arkava-ai/gamma-mcp-server)](https://npmjs.com/package/@arkava-ai/gamma-mcp-server)
[![npm downloads](https://img.shields.io/npm/dm/@arkava-ai/gamma-mcp-server)](https://npmjs.com/package/@arkava-ai/gamma-mcp-server)
[![CI](https://github.com/Arkava-AI/gamma-mcp-server/actions/workflows/ci.yml/badge.svg)](https://github.com/Arkava-AI/gamma-mcp-server/actions)
[![MCP SDK](https://img.shields.io/badge/MCP%20SDK-1.0-blue)](https://modelcontextprotocol.io)

A Model Context Protocol (MCP) server that integrates [Gamma.app](https://gamma.app) with AI assistants. Create presentations, documents, webpages, and social posts directly from your AI conversations.

Works with: **Claude Code**, **Claude Desktop**, **OpenCode**, **GitHub Copilot CLI**, **Google Gemini CLI**, and any other MCP-compatible AI assistant.

## Features

- **Generate Content**: Create professional presentations, documents, webpages, and social posts from text prompts
- **Theme Support**: Browse and apply visual themes to your content
- **Folder Organization**: Save generated content to specific folders
- **Template Remix**: Create variations of existing Gamma templates
- **Email Sharing**: Share generated content directly via email

## Quick Start

### 1. Clone and Install

```bash
git clone https://github.com/Arkava-AI/gamma-mcp-server.git
cd gamma-mcp-server
npm install
npm run build
```

### 2. Get Your Gamma API Key

1. Log in to [gamma.app](https://gamma.app)
2. Go to **Settings > API** (or Settings > Members > API tab)
3. Click **Create API key**
4. Copy the key (format: `sk-gamma-xxxxxxxx`)

> **Note**: Requires Gamma Pro, Ultra, Team, or Business account.

### 3. Configure Your AI Assistant

Choose your AI assistant below for setup instructions.

---

## Claude Desktop (macOS / Windows / Linux)

### Config File

| OS | Path |
|---|---|
| macOS | `~/Library/Application Support/Claude/claude_desktop_config.json` |
| Linux | `~/.config/Claude/claude_desktop_config.json` |
| Windows | `%APPDATA%\Claude\claude_desktop_config.json` |

Add to the `mcpServers` object:

```json
{
  "mcpServers": {
    "gamma": {
      "command": "node",
      "args": ["/absolute/path/to/gamma-mcp-server/dist/index.js"],
      "env": {
        "GAMMA_API_KEY": "sk-gamma-your-api-key-here"
      }
    }
  }
}
```

### Restart Claude Desktop

Restart Claude Desktop to load the new MCP server. You should see "gamma" in your MCP servers list.

---

## Claude Code

Claude Code uses the same MCP configuration as Claude Desktop. If you've already configured Claude Desktop, you're all set.

For **project-level configuration**, create a `.claude/settings.json` file in your project directory with the same `mcpServers` structure shown above. This allows different projects to use different MCP server configurations.

---

## OpenCode

### Config File

| Scope | Path |
|---|---|
| Global (user) | `~/.config/opencode/opencode.json` |
| Project | `./opencode.json` (in your project root) |

### JSON Structure

```json
{
  "mcp": {
    "gamma": {
      "type": "local",
      "command": ["node", "/absolute/path/to/gamma-mcp-server/dist/index.js"],
      "enabled": true,
      "environment": {
        "GAMMA_API_KEY": "sk-gamma-your-api-key-here"
      }
    }
  }
}
```

> **Note**: OpenCode uses a different config format from Claude Desktop — `mcp` (not `mcpServers`), `type` field required (`"local"` or `"remote"`), `command` is an array, and env vars go under `environment`.

Restart OpenCode after editing the config to load the server.

---

## GitHub Copilot CLI

### Config File

- `~/.copilot/mcp-config.json`

### JSON Structure

```json
{
  "mcpServers": {
    "gamma": {
      "type": "local",
      "command": "node",
      "args": ["/absolute/path/to/gamma-mcp-server/dist/index.js"],
      "env": {
        "GAMMA_API_KEY": "sk-gamma-your-api-key-here"
      },
      "tools": ["*"]
    }
  }
}
```

> **Note**: Requires the GitHub Copilot CLI (`gh copilot`) — not the same as OpenAI Codex.

---

## OpenAI Codex

### Config File

- `~/.codex/config.toml` (TOML format, not JSON)

### TOML Structure

```toml
[mcp_servers.gamma]
command = "node"
args = ["/absolute/path/to/gamma-mcp-server/dist/index.js"]
enabled = true

[mcp_servers.gamma.env]
GAMMA_API_KEY = "sk-gamma-your-api-key-here"
```

> **Note**: Codex uses TOML format, not JSON. The `env` section is a separate table under `[mcp_servers.gamma.env]`.

---

## Google Gemini CLI

### Config File

| Scope | Path |
|---|---|
| User | `~/.gemini/settings.json` |
| Project | `.gemini/settings.json` (in your project root) |

### JSON Structure

```json
{
  "mcpServers": {
    "gamma": {
      "command": "node",
      "args": ["/absolute/path/to/gamma-mcp-server/dist/index.js"],
      "cwd": "/absolute/path/to/gamma-mcp-server",
      "env": {
        "GAMMA_API_KEY": "sk-gamma-your-api-key-here"
      },
      "timeout": 30000
    }
  }
}
```

Restart Gemini CLI after editing the config to load the server.

---

## Available Tools

| Tool | Description |
|------|-------------|
| `gamma_generate` | Create presentations, documents, webpages, or social posts |
| `gamma_get_status` | Check generation progress (with optional polling) |
| `gamma_from_template` | Remix existing Gamma templates |
| `gamma_list_themes` | Browse available visual themes |
| `gamma_list_folders` | List your Gamma folders |
| `gamma_share_email` | Share content via email |
| `gamma_health` | Verify server and API are reachable |
| `gamma_archive` | Archive a Gamma from your workspace |

### gamma_generate

Create new content using Gamma's AI.

**Formats & Sizes:**
- `presentation`: fluid, 16x9, 4x3
- `document`: fluid, pageless, letter, a4
- `social`: 1x1, 4x5, 9x16
- `webpage`: fluid

**Example prompts in your AI assistant:**
- "Create a 5-slide presentation about sustainable energy"
- "Generate a document explaining our Q1 results"
- "Make a social media post announcing our new product"

### gamma_get_status

Check if a generation has completed. Set `waitForCompletion: true` to automatically poll until done.

### gamma_from_template

Remix an existing Gamma with new content or variable substitutions.

```json
{
  "templateId": "gamma_xyz789",
  "prompt": "Update for Q1 2025",
  "variables": { "company_name": "Acme Corp" }
}
```

---

## Multi-Machine Setup

This repository is designed for easy deployment across multiple machines:

```bash
# On each machine:
git clone https://github.com/Arkava-AI/gamma-mcp-server.git
cd gamma-mcp-server
npm install && npm run build

# Then configure your AI assistant with the local path
```

To update on any machine:
```bash
git pull
npm install
npm run build
# Restart your AI assistant
```

---

## Environment Variables

| Variable | Default | Description |
|---|---|---|
| `GAMMA_API_KEY` | (required) | Your Gamma API key (`sk-gamma-...`) |
| `GAMMA_API_BASE_URL` | `https://public-api.gamma.app/v1.0` | Override for self-hosted Gamma instances |
| `GAMMA_POLL_INTERVAL_MS` | `2000` | Milliseconds between status polls (default 2s) |
| `GAMMA_MAX_POLL_ATTEMPTS` | `150` | Max polling attempts before timeout (default 150 × 2s = 5 min) |

---

## Development

```bash
# Run in development mode with auto-reload
npm run dev

# Build for production
npm run build

# Run linting
npm run lint

# Format code
npm run format

# Type check
npm run typecheck

# Test with MCP Inspector
npm run inspect
```

---

## Project Structure

```
gamma-mcp-server/
├── src/
│   ├── index.ts          # Main entry point
│   ├── constants.ts      # Configuration constants
│   ├── types.ts          # TypeScript interfaces
│   ├── schemas/          # Zod validation schemas
│   ├── services/         # API client and formatters
│   └── tools/            # MCP tool implementations
├── dist/                 # Compiled JavaScript (generated)
├── package.json
├── tsconfig.json
└── eslint.config.js
```

---

## API Credits

Gamma uses a credit-based system for API usage. Credits are consumed per generation. Monitor your usage in the [Gamma dashboard](https://gamma.app/settings) and enable auto-recharge if needed.

---

## Troubleshooting

| Error | Solution |
|-------|----------|
| "GAMMA_API_KEY environment variable is required" | Ensure `env.GAMMA_API_KEY` is set in your AI assistant's MCP config |
| "Invalid API key" | Keys should start with `sk-gamma-`. Verify the complete key. |
| "Rate limit exceeded" | Wait a few minutes. Contact Gamma support for higher limits. |
| "Insufficient credits" | Top up credits or enable auto-recharge in Gamma settings. |

---

## Requirements

- **Node.js 18+**
- **Gamma Pro/Ultra/Team/Business account** (for API access)
- **MCP-compatible AI assistant** (Claude Code, Claude Desktop, OpenCode, GitHub Copilot CLI, Gemini CLI, etc.)

---

## Maintainer

**Arkava Ltd** — [engage@arkava.ai](mailto:engage@arkava.ai)

---

## License

MIT License - see [LICENSE](LICENSE) for details.

---

## Links

- [Gamma Developer Docs](https://developers.gamma.app)
- [MCP Specification](https://modelcontextprotocol.io)
- [Gamma.app](https://gamma.app)
