2Slides

com.2slidesPublished by 2slides.comOfficial publisherv1.0.0Updated Nov 14, 2026

Generate presentation slides with AI: decks from a topic or a file, narration, and theme search.

VerifiedStreamable HTTPWeb executableProductivity & WorkflowMedia & Design

Overview

AI-generated overview

Hosted 2Slides MCP server that lets an assistant generate PowerPoint decks and custom-designed slides, add AI voice narration, and return download links.

What you can do
  • Search pre-built themes and generate a themed PowerPoint deck from a prompt
  • Create custom-designed slides from text, or matching the style of a reference image, with aspect ratio, resolution and page count options
  • Poll generation jobs for status and the finished download link
  • Add single- or two-speaker AI voice narration to completed custom slide jobs
  • Export slide pages, narration audio and a transcript as a ZIP download link
When to use it
Useful when you want an assistant to turn a topic, outline or document into a finished slide deck, or to produce narrated slides for training or explainer videos, without leaving the chat.
Requirements
A remote Streamable HTTP endpoint at 2slides.com, or the local stdio package via npx with Node.js 18+. A 2Slides API key is required, sent as an Authorization bearer header (or the API_KEY environment variable for the stdio package). A 2Slides account with credits is needed.
Before you install
Generation consumes paid credits: 1 per page for themed decks, 100 per page (1K/2K) or 200 per page (4K) for custom slides, and 210 per page for narration. The API key is a secret; the README's HTTP examples put it in the connection URL as a query parameter, which can leak into configs and logs. Prompts and reference image URLs are sent to 2slides.com, and download links expire after one hour.

Installation

In SourceWeft

  1. Open 2Slides in the dashboard and add it to a workspace.
  2. Connect Authorization token credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.2slides%2F2slides/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "2slides": {
      "type": "http",
      "url": "https://2slides.com/api/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

2slides MCP Server

[2slides]

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 HTTPstdio (this package)
Setupone command, nothing to installneeds Node.js 18+, npx fetches the package
Updatesserver-side, always currentre-downloaded on your machine
Runs inany remote-capable MCP clientany 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

bash
claude mcp add --transport http 2slides "https://2slides.com/api/mcp?apikey=YOUR_2SLIDES_API_KEY"

Verify with claude mcp list — the server should report ✔ Connected.

Project config (.mcp.json, shared with your team)

json
{  "mcpServers": {    "2slides": {      "type": "http",      "url": "https://2slides.com/api/mcp?apikey=YOUR_2SLIDES_API_KEY"    }  }}

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

bash
claude mcp add 2slides -e API_KEY=YOUR_2SLIDES_API_KEY -- npx -y 2slides-mcp@latest

Claude Desktop — edit ~/Library/Application Support/Claude/claude_desktop_config.json (%APPDATA%\Claude\claude_desktop_config.json on Windows):

json
{  "mcpServers": {    "2slides": {      "command": "npx",      "args": ["-y", "2slides-mcp@latest"],      "env": {        "API_KEY": "YOUR_2SLIDES_API_KEY"      }    }  }}

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:
    json
    {  "themeId": "st-1756528793701-fcg5fblt2",  "userInput": "Generate a 5-slide intro to machine learning",  "responseLanguage": "English",  "mode": "sync"}

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:
    json
    { "query": "business", "limit": 5 }

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:
    json
    { "jobId": "D8h9VYDGdTlZ6wWSEoctF" }

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
    • referenceImageUrl (string, required) — URL of the style reference image
    • responseLanguage (string, optional, default: Auto)
    • aspectRatio (string, optional, default: 16:9) — valid values: 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9
    • resolution (string, optional, default: 2K) — 1K, 2K, 4K
    • page (number, optional, default: 0) — 0 = auto-detect, 1–100 = exact page count
    • contentDetail (string, optional, default: standard) — concise or standard
    • mode (string, optional, default: async) — async returns jobId; sync returns downloadUrl immediately
  • Credits: 100 per page (1K/2K) or 200 per page (4K)
  • Example:
    json
    {  "userInput": "Create a presentation about AI trends",  "referenceImageUrl": "https://example.com/style-reference.jpg",  "aspectRatio": "16:9",  "resolution": "2K",  "page": 5,  "contentDetail": "standard",  "mode": "async"}

slides_create_pdf_slides (POST /api/v1/slides/create-pdf-slides)

Generate custom-designed slides (Nano Banana) from text content without a reference image.

  • Args:
    • userInput (string, required) — presentation content
    • designStyle (string, optional) — free-text description of the visual style; leave empty for default styling
    • responseLanguage (string, optional, default: Auto)
    • aspectRatio (string, optional, default: 16:9) — valid values: 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9
    • resolution (string, optional, default: 2K) — 1K, 2K, 4K
    • page (number, optional, default: 0) — 0 = auto-detect, 1–100 = exact page count
    • contentDetail (string, optional, default: standard) — concise or standard
    • mode (string, optional, default: async) — async returns jobId; sync returns downloadUrl immediately
  • Credits: 100 per page (1K/2K) or 200 per page (4K)
  • Example:
    json
    {  "userInput": "Quarterly business review for Q3 2025",  "designStyle": "modern, dark background, bold typography",  "aspectRatio": "16:9",  "resolution": "2K",  "page": 8,  "mode": "async"}

slides_generate_narration (POST /api/v1/slides/generate-narration)

Add AI voice narration to a completed Nano Banana job (slides_create_like_this or slides_create_pdf_slides only; Fast PPT not supported). Always async — poll result with jobs_get.

  • Args (single speaker, mode: "single" default):

    • jobId (string, required) — UUID of a completed Nano Banana job
    • mode (string, optional, default: single) — single or multi
    • speakerName (string, optional) — narrator name
    • voice (string, optional) — one of 30 voices (see list below)
    • contentMode (string, optional, default: standard) — concise or standard
    • includeIntro (boolean, optional, default: true)
  • Args (two speakers, mode: "multi"):

    • jobId (string, required)
    • mode (string, required) — multi
    • speaker1Name (string, required)
    • speaker2Name (string, required)
    • speaker1Voice (string, optional) — voice for speaker 1
    • speaker2Voice (string, optional) — voice for speaker 2
    • contentMode (string, optional, default: standard) — concise or standard
  • Supported voices (30): Puck, Aoede, Charon, Kore, Fenrir, Zephyr, Leda, Orus, Callirrhoe, Autonoe, Enceladus, Iapetus, Umbriel, Algieba, Despina, Erinome, Algenib, Rasalgethi, Laomedeia, Achernar, Alnilam, Schedar, Gacrux, Pulcherrima, Achird, Zubenelgenubi, Vindemiatrix, Sadachbia, Sadaltager, Sulafat

  • Credits: 210 per page (10 text + 200 audio)

  • Example:

    json
    {  "jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",  "mode": "multi",  "speaker1Name": "Alice",  "speaker2Name": "Bob",  "speaker1Voice": "Aoede",  "speaker2Voice": "Puck",  "contentMode": "standard"}

slides_download_slides_pages_voices (POST /api/v1/slides/download-slides-pages-voices)

Export slide pages and audio narration as a ZIP file. The job must be completed and have narration generated.

  • Args:
    • jobId (string, required) — UUID of a job with completed narration
  • Returns: downloadUrl (expires in 1 hour), fileName, expiresIn (3600 seconds)
  • ZIP contents:
    pages/  page_01.png, page_02.png, …voices/  page_01.wav, page_02.wav, …transcript.txt
  • Credits: free
  • Example:
    json
    { "jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" }

Typical Workflows

Fast PPT (theme-based PowerPoint):

  1. themes_search → get a themeId
  2. slides_generate (sync) → get downloadUrl directly

Nano Banana (custom-designed slides):

  1. slides_create_like_this or slides_create_pdf_slides (async) → get jobId
  2. jobs_get (poll every 20s) → get downloadUrl when status: "success"

Nano Banana with narration:

  1. slides_create_like_this or slides_create_pdf_slides → get jobId
  2. jobs_get → wait for slides to complete
  3. slides_generate_narration → get narration jobId
  4. jobs_get → wait for narration to complete
  5. slides_download_slides_pages_voices → get ZIP download link

Troubleshooting (Claude Desktop)

  • If tools don't appear in Claude, verify the config path is absolute and restart the app.
  • Check Claude MCP logs:
bash
tail -n 50 -f ~/Library/Logs/Claude/mcp*.log
  • For stdio MCP servers, avoid logging to stdout; this server only logs errors to stderr.

References

Source: README.md at commit 437afa6

Tools

0
SourceWeft has not read this server's tools yet.

Version history

1
  1. v1.0.0LatestNov 14, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts