{
  "markdown": "# Gamma MCP Server\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Node.js Version](https://img.shields.io/badge/node-%3E%3D18-brightgreen)](https://nodejs.org)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.7-blue)](https://www.typescriptlang.org/)\n[![npm version](https://img.shields.io/npm/v/@arkava-ai/gamma-mcp-server)](https://npmjs.com/package/@arkava-ai/gamma-mcp-server)\n[![npm downloads](https://img.shields.io/npm/dm/@arkava-ai/gamma-mcp-server)](https://npmjs.com/package/@arkava-ai/gamma-mcp-server)\n[![CI](https://github.com/Arkava-AI/gamma-mcp-server/actions/workflows/ci.yml/badge.svg)](https://github.com/Arkava-AI/gamma-mcp-server/actions)\n[![MCP SDK](https://img.shields.io/badge/MCP%20SDK-1.0-blue)](https://modelcontextprotocol.io)\n\nA 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.\n\nWorks with: **Claude Code**, **Claude Desktop**, **OpenCode**, **GitHub Copilot CLI**, **Google Gemini CLI**, and any other MCP-compatible AI assistant.\n\n## Features\n\n- **Generate Content**: Create professional presentations, documents, webpages, and social posts from text prompts\n- **Theme Support**: Browse and apply visual themes to your content\n- **Folder Organization**: Save generated content to specific folders\n- **Template Remix**: Create variations of existing Gamma templates\n- **Email Sharing**: Share generated content directly via email\n\n## Quick Start\n\n### 1. Clone and Install\n\n```bash\ngit clone https://github.com/Arkava-AI/gamma-mcp-server.git\ncd gamma-mcp-server\nnpm install\nnpm run build\n```\n\n### 2. Get Your Gamma API Key\n\n1. Log in to [gamma.app](https://gamma.app)\n2. Go to **Settings > API** (or Settings > Members > API tab)\n3. Click **Create API key**\n4. Copy the key (format: `sk-gamma-xxxxxxxx`)\n\n> **Note**: Requires Gamma Pro, Ultra, Team, or Business account.\n\n### 3. Configure Your AI Assistant\n\nChoose your AI assistant below for setup instructions.\n\n---\n\n## Claude Desktop (macOS / Windows / Linux)\n\n### Config File\n\n| OS | Path |\n|---|---|\n| macOS | `~/Library/Application Support/Claude/claude_desktop_config.json` |\n| Linux | `~/.config/Claude/claude_desktop_config.json` |\n| Windows | `%APPDATA%\\Claude\\claude_desktop_config.json` |\n\nAdd to the `mcpServers` object:\n\n```json\n{\n  \"mcpServers\": {\n    \"gamma\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/gamma-mcp-server/dist/index.js\"],\n      \"env\": {\n        \"GAMMA_API_KEY\": \"sk-gamma-your-api-key-here\"\n      }\n    }\n  }\n}\n```\n\n### Restart Claude Desktop\n\nRestart Claude Desktop to load the new MCP server. You should see \"gamma\" in your MCP servers list.\n\n---\n\n## Claude Code\n\nClaude Code uses the same MCP configuration as Claude Desktop. If you've already configured Claude Desktop, you're all set.\n\nFor **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.\n\n---\n\n## OpenCode\n\n### Config File\n\n| Scope | Path |\n|---|---|\n| Global (user) | `~/.config/opencode/opencode.json` |\n| Project | `./opencode.json` (in your project root) |\n\n### JSON Structure\n\n```json\n{\n  \"mcp\": {\n    \"gamma\": {\n      \"type\": \"local\",\n      \"command\": [\"node\", \"/absolute/path/to/gamma-mcp-server/dist/index.js\"],\n      \"enabled\": true,\n      \"environment\": {\n        \"GAMMA_API_KEY\": \"sk-gamma-your-api-key-here\"\n      }\n    }\n  }\n}\n```\n\n> **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`.\n\nRestart OpenCode after editing the config to load the server.\n\n---\n\n## GitHub Copilot CLI\n\n### Config File\n\n- `~/.copilot/mcp-config.json`\n\n### JSON Structure\n\n```json\n{\n  \"mcpServers\": {\n    \"gamma\": {\n      \"type\": \"local\",\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/gamma-mcp-server/dist/index.js\"],\n      \"env\": {\n        \"GAMMA_API_KEY\": \"sk-gamma-your-api-key-here\"\n      },\n      \"tools\": [\"*\"]\n    }\n  }\n}\n```\n\n> **Note**: Requires the GitHub Copilot CLI (`gh copilot`) — not the same as OpenAI Codex.\n\n---\n\n## OpenAI Codex\n\n### Config File\n\n- `~/.codex/config.toml` (TOML format, not JSON)\n\n### TOML Structure\n\n```toml\n[mcp_servers.gamma]\ncommand = \"node\"\nargs = [\"/absolute/path/to/gamma-mcp-server/dist/index.js\"]\nenabled = true\n\n[mcp_servers.gamma.env]\nGAMMA_API_KEY = \"sk-gamma-your-api-key-here\"\n```\n\n> **Note**: Codex uses TOML format, not JSON. The `env` section is a separate table under `[mcp_servers.gamma.env]`.\n\n---\n\n## Google Gemini CLI\n\n### Config File\n\n| Scope | Path |\n|---|---|\n| User | `~/.gemini/settings.json` |\n| Project | `.gemini/settings.json` (in your project root) |\n\n### JSON Structure\n\n```json\n{\n  \"mcpServers\": {\n    \"gamma\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/gamma-mcp-server/dist/index.js\"],\n      \"cwd\": \"/absolute/path/to/gamma-mcp-server\",\n      \"env\": {\n        \"GAMMA_API_KEY\": \"sk-gamma-your-api-key-here\"\n      },\n      \"timeout\": 30000\n    }\n  }\n}\n```\n\nRestart Gemini CLI after editing the config to load the server.\n\n---\n\n## Available Tools\n\n| Tool | Description |\n|------|-------------|\n| `gamma_generate` | Create presentations, documents, webpages, or social posts |\n| `gamma_get_status` | Check generation progress (with optional polling) |\n| `gamma_from_template` | Remix existing Gamma templates |\n| `gamma_list_themes` | Browse available visual themes |\n| `gamma_list_folders` | List your Gamma folders |\n| `gamma_share_email` | Share content via email |\n| `gamma_health` | Verify server and API are reachable |\n| `gamma_archive` | Archive a Gamma from your workspace |\n\n### gamma_generate\n\nCreate new content using Gamma's AI.\n\n**Formats & Sizes:**\n- `presentation`: fluid, 16x9, 4x3\n- `document`: fluid, pageless, letter, a4\n- `social`: 1x1, 4x5, 9x16\n- `webpage`: fluid\n\n**Example prompts in your AI assistant:**\n- \"Create a 5-slide presentation about sustainable energy\"\n- \"Generate a document explaining our Q1 results\"\n- \"Make a social media post announcing our new product\"\n\n### gamma_get_status\n\nCheck if a generation has completed. Set `waitForCompletion: true` to automatically poll until done.\n\n### gamma_from_template\n\nRemix an existing Gamma with new content or variable substitutions.\n\n```json\n{\n  \"templateId\": \"gamma_xyz789\",\n  \"prompt\": \"Update for Q1 2025\",\n  \"variables\": { \"company_name\": \"Acme Corp\" }\n}\n```\n\n---\n\n## Multi-Machine Setup\n\nThis repository is designed for easy deployment across multiple machines:\n\n```bash\n# On each machine:\ngit clone https://github.com/Arkava-AI/gamma-mcp-server.git\ncd gamma-mcp-server\nnpm install && npm run build\n\n# Then configure your AI assistant with the local path\n```\n\nTo update on any machine:\n```bash\ngit pull\nnpm install\nnpm run build\n# Restart your AI assistant\n```\n\n---\n\n## Environment Variables\n\n| Variable | Default | Description |\n|---|---|---|\n| `GAMMA_API_KEY` | (required) | Your Gamma API key (`sk-gamma-...`) |\n| `GAMMA_API_BASE_URL` | `https://public-api.gamma.app/v1.0` | Override for self-hosted Gamma instances |\n| `GAMMA_POLL_INTERVAL_MS` | `2000` | Milliseconds between status polls (default 2s) |\n| `GAMMA_MAX_POLL_ATTEMPTS` | `150` | Max polling attempts before timeout (default 150 × 2s = 5 min) |\n\n---\n\n## Development\n\n```bash\n# Run in development mode with auto-reload\nnpm run dev\n\n# Build for production\nnpm run build\n\n# Run linting\nnpm run lint\n\n# Format code\nnpm run format\n\n# Type check\nnpm run typecheck\n\n# Test with MCP Inspector\nnpm run inspect\n```\n\n---\n\n## Project Structure\n\n```\ngamma-mcp-server/\n├── src/\n│   ├── index.ts          # Main entry point\n│   ├── constants.ts      # Configuration constants\n│   ├── types.ts          # TypeScript interfaces\n│   ├── schemas/          # Zod validation schemas\n│   ├── services/         # API client and formatters\n│   └── tools/            # MCP tool implementations\n├── dist/                 # Compiled JavaScript (generated)\n├── package.json\n├── tsconfig.json\n└── eslint.config.js\n```\n\n---\n\n## API Credits\n\nGamma 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.\n\n---\n\n## Troubleshooting\n\n| Error | Solution |\n|-------|----------|\n| \"GAMMA_API_KEY environment variable is required\" | Ensure `env.GAMMA_API_KEY` is set in your AI assistant's MCP config |\n| \"Invalid API key\" | Keys should start with `sk-gamma-`. Verify the complete key. |\n| \"Rate limit exceeded\" | Wait a few minutes. Contact Gamma support for higher limits. |\n| \"Insufficient credits\" | Top up credits or enable auto-recharge in Gamma settings. |\n\n---\n\n## Requirements\n\n- **Node.js 18+**\n- **Gamma Pro/Ultra/Team/Business account** (for API access)\n- **MCP-compatible AI assistant** (Claude Code, Claude Desktop, OpenCode, GitHub Copilot CLI, Gemini CLI, etc.)\n\n---\n\n## Maintainer\n\n**Arkava Ltd** — [engage@arkava.ai](mailto:engage@arkava.ai)\n\n---\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details.\n\n---\n\n## Links\n\n- [Gamma Developer Docs](https://developers.gamma.app)\n- [MCP Specification](https://modelcontextprotocol.io)\n- [Gamma.app](https://gamma.app)",
  "bytes": 9449,
  "sha": "32f339e7aafdf3bfc59a1878100013d74920bf65234fc3df6faf7badf1dd554a",
  "repo_slug": "arkava-ai/gamma-mcp-server",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_amer_prog_gamma_mcp_server_5243d31b/readme"
}