list_decks
Returns owned deck summaries ordered by newest first.
Returns
Deck summaries are returned in data; meta contains page, per_page, and total.
Connect MCP-compatible AI tools to Slides to access your decks and account data.
Create and manage API keys from your API key management page.
MCP is available at mcp.slides.com with Bearer authentication. The server exposes the same deck operations as REST as named tools, plus an MCP App viewer tool.
Authentication
Authorization: Bearer YOUR_API_KEY
Server URL
https://mcp.slides.com/
Transport
Streamable HTTP
Remote HTTP clients can connect directly. Clients that only launch local MCP processes can use a bridge such as mcp-remote.
Claude Desktop Example
{
"mcpServers": {
"slides": {
"command": "npx",
"args": [
"-y",
"mcp-remote@latest",
"https://mcp.slides.com/",
"--header",
"Authorization: Bearer YOUR_API_KEY"
]
}
}
}
list_decks
Returns owned deck summaries ordered by newest first.
Returns
Deck summaries are returned in data; meta contains page, per_page, and total.
list_trashed_decks
Returns owned decks in trash, ordered by the time they were trashed.
Returns
Deck summaries are returned in data with trashed_at and without url; meta contains page, per_page, and total.
get_deck
Returns details for an owned deck.
Example JSON Content (include_deck_html=true)
{
"id": 456,
"title": "Quarterly Review",
"description": "Q1 business update",
"thumbnail_url": "https://...",
"url": "https://slides.com/alice/q1-review",
"urls": {
"default": "https://slides.com/alice/q1-review",
"fullscreen": "https://slides.com/alice/q1-review/fullscreen",
"edit": "https://slides.com/alice/q1-review/edit",
"present": "https://slides.com/alice/q1-review/live"
},
"slug": "q1-review",
"visibility": "self",
"slide_count": 12,
"notes": "",
"css": ".slides h1 { color: #ff0000; }",
"width": 1280,
"height": 720,
"margin": 0.05,
"transition": "slide",
"background_transition": "slide",
"rtl": false,
"loop": false,
"theme_font": "montserrat",
"theme_color": "white-blue",
"language": "en",
"created_at": "2026-03-01T12:00:00Z",
"updated_at": "2026-03-05T09:00:00Z",
"deck_html": "<section>...</section>"
}
Returns
Returns deck details. deck_html is present only when include_deck_html is true.
view_deck
Returns deck metadata and a short-lived MCP App embed URL for an owned deck.
Example Structured Content
{
"id": 456,
"title": "Quarterly Review",
"description": "Q1 business update",
"thumbnail_url": "https://...",
"url": "https://slides.com/alice/q1-review",
"urls": {
"default": "https://slides.com/alice/q1-review",
"fullscreen": "https://slides.com/alice/q1-review/fullscreen",
"edit": "https://slides.com/alice/q1-review/edit",
"present": "https://slides.com/alice/q1-review/live"
},
"slug": "q1-review",
"visibility": "self",
"slide_count": 12,
"width": 1280,
"height": 720,
"ephemeral_embed_url": "https://mcp.slides.com/decks/456/embed?embed_token=...",
"ephemeral_embed_url_expires_at": "2030-08-01T09:40:00Z"
}
Returns
Structured content containing deck summary fields, an ephemeral embed URL, and its expiration.
create_deck
Creates a new deck.
Example Arguments
{
"title": "Quarterly Review",
"description": "Q1 business update",
"width": 1280,
"height": 720,
"deck_html": "<section>...</section>",
"visibility": "self"
}
Returns
Returns the created deck, including deck_html. Validation failures return an error.
update_deck
Updates selected fields on an owned deck.
Example Arguments
{
"id": 456,
"title": "Updated title",
"visibility": "all"
}
Returns
Returns the updated deck, including deck_html. Read-only keys and validation failures return an error.
trash_deck
Moves an owned deck to trash without permanently deleting it.
Example JSON Content
{
"id": 456,
"trashed": true
}
Returns
JSON content confirming the deck ID and trashed state.
recover_deck
Recovers an owned deck from trash.
Example JSON Content
{
"id": 456,
"recovered": true
}
Returns
JSON content confirming the deck ID and recovered state.
list_deck_shares
Returns all private share links for an owned deck, ordered newest first.
Returns
Private share links are returned in data; meta contains total. Each link includes default and fullscreen URLs.
create_deck_share
Creates a private share link for an owned private or team-visible deck.
Example Arguments
{
"name": "Customer review",
"password": "optional-password",
"expires_at": "2030-08-01T12:00:00Z",
"notify_on_view": true,
"deck_id": 456
}
Returns
Returns the new private share link with default and fullscreen URLs. Passwords are never returned. Each deck is limited to 100 private share links.
revoke_deck_share
Revokes a private share link for an owned deck.
Example JSON Content
{
"id": 789,
"revoked": true
}
Returns
JSON content confirming the private share link ID and revoked state.
create_deck_export
Starts an asynchronous PDF or ZIP export for an owned deck.
Example Arguments
{
"format": "pdf",
"margin": 0.05,
"slide_number": true,
"slide_notes": false,
"separate_fragments": false,
"deck_id": 456
}
Returns
Returns a pending export; meta contains poll_after_seconds.
get_deck_export
Returns the current state of a PDF or ZIP export for an owned deck.
Returns
Returns a pending, completed, or failed export. Completed exports include a temporary download URL and its expiration time.
list_team_decks
Returns team-visible and public decks from the authenticated user’s team.
Returns
Deck summaries are returned in data; meta contains page, per_page, and total. Every summary includes visibility and deck owner identity.
get_team_deck
Returns a team-visible or public deck.
Returns
Returns the same fields as get_deck, plus deck owner identity. deck_html is present only when include_deck_html is true.