{
  "markdown": "# Alai - AI Presentation Maker MCP Server\n\n[![Alai MCP server](https://glama.ai/mcp/servers/getalai/Alai/badges/card.svg)](https://glama.ai/mcp/servers/getalai/Alai)\n\nAI presentation maker and slide generator for Claude, Cursor, and MCP clients. Create designer-level presentations, pitch decks, and slides from text. Export to PowerPoint (PPTX) and PDF.\n\n## What is Alai?\n\nAlai is an **AI presentation maker** and the fastest way to create high-quality, beautiful slides without design skills.\n\n- **Generate slides from text** - Turn notes, markdown, URLs, or documents into polished presentations\n- **Beautify existing slides** - Restyle and improve your PowerPoint presentations with AI\n- **Export anywhere** - Download as PowerPoint (PPTX), PDF, or shareable link\n- **Professional themes** - Designer-level templates for any occasion\n- **Speaker notes** - AI-generated talking points for each slide\n- **Nano Banana Pro Image Slides** - Theme-aware image slide generation that matches your deck's visual style\n- **Edit and iterate** - Make targeted changes to text, icons, and images on existing slides\n\n## Use Cases\n\n- **Pitch decks** - Create investor-ready presentations from your notes\n- **Sales presentations** - Generate compelling slides for prospects\n- **Meeting notes to slides** - Transform your notes into shareable decks\n- **PowerPoint beautification** - Restyle existing slides with professional themes\n- **Marketing presentations** - Build product and campaign decks quickly\n\n## Features\n\n- Generate designer-level presentations from text, markdown, or meeting notes\n- AI-powered slide beautification and restyling\n- Export to PowerPoint (PPTX) or PDF\n- Professional pitch deck themes\n- Add and remove slides from existing presentations\n- Edit and iterate on existing slides with targeted prompts\n- Generate speaker notes automatically\n\n## Server URL\n\n```\nhttps://slides-api.getalai.com/mcp/\n```\n\n## Glama / Local Wrapper\n\nThis repository includes a local MCP wrapper so Glama can build, start, and inspect the server automatically.\n\nThe wrapper runs over stdio and forwards tool calls to the hosted Alai MCP endpoint:\n\n- `ALAI_MCP_URL` - optional override for the upstream MCP URL\n- `ALAI_API_KEY` - optional API key used when forwarding tool calls upstream\n- `api_key` - alternate env var name supported for Glama placeholder arguments\n\nTool introspection works without credentials, which is enough for Glama to inspect the server. Real tool execution requires a valid API key.\n\n### Run locally\n\n```bash\nnpm install\nnpm start\n```\n\nWith upstream credentials:\n\n```bash\nALAI_API_KEY=sk_your_key npm start\n```\n\n## Authentication\n\nThe server accepts either a static API key or an OAuth 2.1 bearer token on the same endpoint.\n\n### API Key\n\nGet a key from [getalai.com](https://getalai.com) and pass it in one of these headers:\n\n- `api-key: sk_your_key`\n- `Authorization: Bearer sk_your_key`\n\n### OAuth 2.1 with Dynamic Client Registration\n\nThe server implements RFC 9728 Protected Resource Metadata and delegates authorization to Supabase, which supports RFC 7591 Dynamic Client Registration and PKCE (S256). Spec-compliant MCP clients (e.g. Claude Desktop, MCP Inspector) can auto-discover the flow:\n\n```\nGET https://slides-api.getalai.com/.well-known/oauth-protected-resource\n```\n\nThe response's `authorization_servers` entry points at the Supabase authorization server, whose `/.well-known/oauth-authorization-server` document advertises the `registration_endpoint`, `authorization_endpoint`, and `token_endpoint`. After the authorization code + PKCE flow, the client sends `Authorization: Bearer <jwt>` to the MCP endpoint.\n\n## Available Tools\n\n| Tool | Description |\n|------|-------------|\n| `ping` | Verify your API key and return your user ID |\n| `generate_presentation` | Create a presentation from text content |\n| `get_generation_status` | Check async operation status |\n| `get_themes` | List themes available to the authenticated user |\n| `get_vibes` | List vibes (visual styles) available to the authenticated user |\n| `get_presentations` | List all your presentations |\n| `create_slide` | Add a slide (classic or creative) to an existing presentation |\n| `delete_slide` | Remove a slide from a presentation |\n| `export_presentation` | Export to PDF, PPTX, or shareable link |\n| `generate_transcripts` | Generate speaker notes for slides |\n| `delete_presentation` | Permanently delete a presentation |\n\n## Workflow\n\n1. Call `generate_presentation` with your content\n2. Poll `get_generation_status` every 2-5 seconds until status is `completed`\n3. Use the returned `presentation_id` for further operations\n\n## Example Usage\n\n### Generate a Presentation\n\nCall `get_themes` and `get_vibes` first to discover the IDs available to your account, then pass them in:\n\n```json\n{\n  \"input_text\": \"Benefits of AI in the workplace: increased productivity, enhanced creativity, improved efficiency\",\n  \"title\": \"AI in the Workplace\",\n  \"theme_id\": \"<id from get_themes>\",\n  \"vibe_id\": \"<id from get_vibes>\",\n  \"slide_range\": \"2-5\",\n  \"include_ai_images\": true,\n  \"num_creative_variants\": 1,\n  \"total_variants_per_slide\": 1,\n  \"image_ids\": [],\n  \"export_formats\": [\"link\"],\n  \"language\": \"English\"\n}\n```\n\nOnly `input_text` is required. `num_creative_variants` must be 0–2 (set to ≥1 when using `vibe_id`). `total_variants_per_slide` must be 1–4. `export_formats` accepts `\"link\"`, `\"pdf\"`, `\"ppt\"`.\n\n### Check Generation Status\n\n```json\n{\n  \"generation_id\": \"abc123-def456\"\n}\n```\n\n### Export Presentation\n\n```json\n{\n  \"presentation_id\": \"xyz789\",\n  \"formats\": [\"pdf\", \"link\"]\n}\n```\n\n## Available Themes\n\nCall `get_themes` to discover the themes available to your account (returns theme IDs and display names). A handful of built-in legacy theme names you can pass directly as `theme_id`:\n\n- `AURORA_FLUX`\n- `MIDNIGHT_EMBER`\n- `EMERALD_FOREST`\n- `DESERT_BLOOM`\n- `DONUT`\n- `OAK`\n- `PRISMATICA`\n- `SIMPLE_LIGHT`\n- `SIMPLE_DARK`\n- `CYBERPUNK`\n\n## Configuration\n\n### For Claude Desktop / MCP Clients\n\nOAuth-capable clients (Claude Desktop, MCP Inspector, Cursor, etc.) can use just the URL — the client will discover and run the OAuth 2.1 + DCR flow on first connect:\n\n```json\n{\n  \"mcpServers\": {\n    \"alai-presentations\": {\n      \"url\": \"https://slides-api.getalai.com/mcp/\",\n      \"transport\": \"streamable-http\"\n    }\n  }\n}\n```\n\nIf you prefer to skip OAuth and use a static API key, add a header block:\n\n```json\n{\n  \"mcpServers\": {\n    \"alai-presentations\": {\n      \"url\": \"https://slides-api.getalai.com/mcp/\",\n      \"transport\": \"streamable-http\",\n      \"headers\": {\n        \"api-key\": \"sk_your_api_key\"\n      }\n    }\n  }\n}\n```\n\n## Links\n\n- [Website](https://getalai.com)\n- [Get API Key](https://app.getalai.com)\n- [API Documentation](https://docs.getalai.com/api)\n\n## License\n\nMIT License - See [LICENSE](LICENSE) file for details.\n",
  "bytes": 6844,
  "sha": "74b8a406f63419ea53f0f40945ee0220d5259cc898da1bfdc143379ce2efb7e3",
  "repo_slug": "getalai/alai-mcp-server",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_com_getalai_presentations_b6512d93/readme"
}