

How to Use OpenClaw with the 2Slides MCP Server (2026 Guide)
Quick answer (≤60 words): OpenClaw can generate real PowerPoint files by adding the 2Slides MCP server under the
mcp.serverskey in~/.openclaw/openclaw.json. Get a key at 2slides.com/api, add a stdio server (command: "npx",args: ["2slides-mcp"],env.API_KEY) or a remote one (url+transport: "streamable-http"), then ask your OpenClaw agent to build a deck.
OpenClaw is an open-source AI agent framework, and it is a full Model Context Protocol (MCP) client. Wire in the 2Slides MCP server and any OpenClaw agent gains the ability to turn a brief — or a document it can read — into a finished, editable .pptx.
This guide covers the exact openclaw.json schema for both transports (local stdio and remote Streamable HTTP), the openclaw mcp CLI shortcuts, how MCP tools surface into agent tool profiles, and how to verify everything with a live probe.
Why give OpenClaw the 2Slides server?
OpenClaw agents reason, plan, and read your files. They don't render binary slide files — that's a job for a dedicated generator. With 2Slides attached:
- OpenClaw decides the slide structure, copy, and narrative from your source material.
- The 2Slides MCP server produces the actual PowerPoint — theme-based Fast PPT, or image-designed slides with optional AI voice narration and an exportable asset bundle.
What you need first
- OpenClaw installed (
openclawon your PATH). - A 2Slides API key from 2slides.com/api.
- Node.js for the stdio transport (
npx -y 2slides-mcp@latest). The HTTP transport needs nothing local.
Stdio vs Streamable HTTP: which transport?
The 2Slides MCP server supports both. In OpenClaw, the two are distinguished simply by which fields you set — there is no type field:
| Stdio (local) | Streamable HTTP (remote) | |
|---|---|---|
| Identifying field | command present | url present |
| Transport field | n/a | transport: "streamable-http" |
| Local Node.js | Required | Not required |
| Best for | Local agents, full control | Remote/hosted agents, CI |
Method 1: stdio in openclaw.json
OpenClaw's config lives at ~/.openclaw/openclaw.json. MCP servers go under the top-level mcp key, in a name-keyed servers object:
{
"mcp": {
"servers": {
"2slides": {
"command": "npx",
"args": ["-y", "2slides-mcp@latest"],
"env": { "API_KEY": "YOUR_2SLIDES_API_KEY" }
}
}
}
}That's it — the presence of command marks it as a local stdio server.
Method 2: Streamable HTTP in openclaw.json
For the hosted endpoint, set url and the canonical transport field:
{
"mcp": {
"servers": {
"2slides": {
"url": "https://2slides.com/api/mcp?apikey=YOUR_2SLIDES_API_KEY",
"transport": "streamable-http"
}
}
}
}Note: OpenClaw's canonical transport value is
"streamable-http"(a legacytype: "http"alias is accepted but normalized away — writetransport). If your key belongs in a header rather than the URL, use"headers": { "Authorization": "Bearer YOUR_2SLIDES_API_KEY" }instead of the?apikey=query.
Or use the openclaw mcp CLI
These write to the same mcp.servers config:
# stdio
openclaw mcp add 2slides --command npx --arg 2slides-mcp --env API_KEY=YOUR_2SLIDES_API_KEY
# remote (set the full server object as JSON)
openclaw mcp set 2slides '{"url":"https://2slides.com/api/mcp?apikey=YOUR_2SLIDES_API_KEY","transport":"streamable-http"}'Verify the connection
OpenClaw ships dedicated MCP diagnostics:
openclaw mcp status --verbose # resolved transport/auth/timeouts (static, no connection)
openclaw mcp doctor 2slides --probe # static checks, then a live connection test
openclaw mcp probe 2slides --json # connect live and list the exposed tools
openclaw mcp reload # drop cached in-process MCP runtimesA successful probe lists the 2Slides tools (slides_generate, themes_search, and the rest), confirming the agent can call them.
How the tools reach your agent
Configured MCP tools are exposed automatically in OpenClaw's coding and messaging tool profiles. Notes:
- The
minimalprofile hides MCP tools; switch profiles if you don't see them. - To disable MCP tools explicitly, add
"bundle-mcp"totools.deny. - To expose only some 2Slides tools, use per-server
toolFilter.include/toolFilter.exclude(exact names or*globs):
{
"mcp": {
"servers": {
"2slides": {
"command": "npx",
"args": ["-y", "2slides-mcp@latest"],
"env": { "API_KEY": "YOUR_2SLIDES_API_KEY" },
"toolFilter": { "include": ["themes_search", "slides_generate", "jobs_get"] }
}
}
}
}To keep a server defined but inactive, set "enabled": false.
Generate your first deck
Ask your OpenClaw agent in plain language:
Read PROJECT_BRIEF.md and generate an 8-slide overview deck.
Find a clean "minimal" theme from 2slides first, then create
the PowerPoint and give me the download link.OpenClaw calls themes_search → slides_generate (Fast PPT) → returns the downloadUrl. For custom image-designed slides it uses slides_create_pdf_slides and polls jobs_get (about every 20 seconds) until ready.
The 2Slides MCP tool surface
| Tool | What it does | Credits |
|---|---|---|
themes_search | Find a themeId for Fast PPT | Free |
slides_generate | Theme-based PowerPoint (Fast PPT), sync/async | 10 / page |
slides_create_pdf_slides | Custom image-designed slides from text (Nano Banana) | 100 / page (1K/2K), 200 (4K) |
slides_create_like_this | Slides matching a reference image's style | 100 / page (1K/2K), 200 (4K) |
slides_generate_narration | Add AI voice narration to a Nano Banana job | 210 / page |
slides_download_slides_pages_voices | Export pages + audio as a ZIP | Free |
jobs_get | Poll an async job to completion | Free |
Common mistakes and troubleshooting
- Used
mcpServersinstead ofmcp.servers. In OpenClaw config, the key ismcp.servers. (mcpServersis a different, external-client concept — running OpenClaw as a server.) - Wrote
typeinstead oftransport.typeis a legacy alias; the canonical field istransport: "streamable-http". - Tools don't appear. You're likely on the
minimalprofile, ortools.denycontainsbundle-mcp. Switch tocoding/messagingand runopenclaw mcp reload. - stdio server won't start. Confirm Node.js is installed and
API_KEYis set inenv. - Polling async jobs. Let the agent poll
jobs_getevery ~20s; Nano Banana and narration jobs are async by default.
Frequently asked questions
Does OpenClaw support custom MCP servers?
Yes. OpenClaw is a native MCP client. Add servers under the mcp.servers key in ~/.openclaw/openclaw.json, or via openclaw mcp add / openclaw mcp set. Both stdio and Streamable HTTP transports are supported.
What's the config key for MCP servers in OpenClaw?
mcp.servers — a name-keyed object inside the top-level mcp object. Local servers use command/args/env; remote servers use url + transport: "streamable-http".
How do I confirm 2Slides is connected?
Run openclaw mcp probe 2slides --json for a live connection that lists the exposed tools, or openclaw mcp doctor 2slides --probe for static checks plus a connection test.
Does it generate a real PowerPoint?
Yes. slides_generate returns an editable .pptx; the Nano Banana tools return image-designed decks with optional AI narration and an exportable bundle.
Where do I get the key and config?
At 2slides.com/api?tab=mcp — your key, a copy-paste config, and the Streamable HTTP endpoint.
The takeaway
One
mcp.serversentry inopenclaw.jsongives every OpenClaw agent a slide generator. Stdio for local,transport: "streamable-http"for remote — thenopenclaw mcp probeto prove it works.
For the wider context, see how MCP is changing presentation workflows and the PowerPoint MCP server ecosystem map. Comparing agents? See how to use Claude Code and OpenAI Codex with the same server.
Get your key and config at 2slides.com/api?tab=mcp and give your OpenClaw agent a one-sentence path to a finished deck.
Sources:
About 2Slides
Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.
Try For Free