2slides MCP Server
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
Expose 2slides.com tools to MCP clients: generate PowerPoint decks
and custom-designed slides, add AI voice narration, and get the finished files back as
download links.
Get Your API Key
Before connecting, get an API key from 2slides.com/api.
Connect
2slides runs a hosted **Streamable HTTP** MCP endpoint, and also ships this **stdio**
package. Both expose the same 7 tools against the same account and the same credits.
| | Streamable HTTP | stdio (this package) |
| -------------- | ----------------------------------- | ------------------------------------- |
| Setup | one command, nothing to install | needs Node.js 18+, npx fetches the package |
| Updates | server-side, always current | re-downloaded on your machine |
| Runs in | any remote-capable MCP client | any client that can spawn a local process |
Option 1 — Streamable HTTP (recommended)
Anthropic's MCP docs call HTTP "the recommended option for connecting to remote MCP
servers", and 2slides is a hosted service with no local files or processes to reach, so
start here.
**Claude Code**
Verify with claude mcp list — the server should report ✔ Connected.
**Project config** (.mcp.json, shared with your team)
**Claude Desktop / claude.ai**: add it as a custom connector at
claude.ai/customize/connectors with the same
URL.
Option 2 — stdio (local process)
Use this when the client can only spawn local processes, when the machine has no direct
route to 2slides.com, or when you want to pin and patch the server yourself.
**Claude Code**
**Claude Desktop** — edit ~/Library/Application Support/Claude/claude_desktop_config.json
(%APPDATA%\Claude\claude_desktop_config.json on Windows):
The -y flag lets npx install the package without prompting. Fully restart Claude Desktop
afterwards; in a chat, open the tools panel and you should see the tools below.
Available Tools
---
slides_generate (POST /api/v1/slides/generate)
Generate a PowerPoint presentation using a pre-built theme (Fast PPT). Use themes_search first to find a themeId.
- **Args:**
- userInput (string, required) — presentation content
- themeId (string, required) — theme ID from themes_search
- responseLanguage (string, optional, default: Auto) — output language; supported values: Auto, English, Spanish, Arabic, Portuguese, Indonesian, Japanese, Russian, Hindi, French, German, Greek, Vietnamese, Turkish, Thai, Polish, Italian, Korean, Simplified Chinese, Traditional Chinese
- mode (optional, default: sync) — sync returns downloadUrl immediately; async returns a jobId to poll with jobs_get
- **Credits:** 1 per page
- **Example:**
---
themes_search (GET /api/v1/themes/search)
Search pre-built themes to use with slides_generate.
- **Args:**
- query (string, required) — search keyword (e.g. business, minimal, dark)
- limit (number, optional, default: 10, range: 1–100)
- **Returns:** array of themes with id, name, description, previewUrl, tags
- **Credits:** free
- **Example:**
---
jobs_get (GET /api/v1/jobs/{jobId})
Poll a job's status and retrieve the result when ready.
- **Args:**
- jobId (string, required)
- **Returns:** jobId, status (pending / processing / success / failed), message, downloadUrl (when success), slidePageCount, createdAt, updatedAt, duration (ms), jobUrl (Nano Banana jobs only)
- **Credits:** free
- **Note:** Poll every 20 seconds until status is success or failed.
- **Example:**
---
slides_create_like_this (POST /api/v1/slides/create-like-this)
Generate slides (Nano Banana) that match the style of a reference image.
- **Args:**
- userInput (string, required) — presentation content