Slidev MCP is an MCP server that generates, renders, and hosts Slidev presentations from Markdown. It is represented as a Model Context Protocol (MCP) server with toolCount: 8, and is associated with topics including mcp, mcp-server, model-context-protocol, and slidev.
๐ ๏ธ Key Features
Generate Slidev presentations from Markdown
Render presentations
Host shareable presentation links
๐ Use Cases
Create a presentation by providing Markdown input
Produce a link that can be shared externally
โก Developer Benefits
Built as an MCP server (toolCount: 8)
Fits the Model Context Protocol ecosystem (topics include model-context-protocol and mcp-server)
โ ๏ธ Limitations
No additional constraints or supported clients/themes are described in the provided excerpt beyond linking to documentation.
Topics
mcpmcp-servermodel-context-protocolslidev
Captured live from the server via tools/list.
render_slides
Render a Slidev presentation from markdown and return its hosted URL.
IMPORTANT: Before calling this tool, you MUST call get_theme with the theme
name you plan to use. Each theme has unique layouts, components, and
frontmatter options. Apply the theme's specific features in your markdown
to produce high-quality slides that match the theme's design.
If the user has not specified a theme, call list_themes to pick one.
If you are unfamiliar with Slidev markdown syntax, call get_slidev_guide.
Images must be remote URLs or base64-encoded inline. Local file paths are not supported.
Parameters4
markdown
string
required
Full Slidev markdown including frontmatter. Use layouts, components, and features specific to the chosen theme.
theme
string
required
Theme name (e.g. 'seriph', 'default', 'neocarbon'). Read slidev://themes/installed for the full list of available themes.
uuid
any
optional
UUID of an existing presentation to update in-place (same URL). Omit to create a new presentation.
color_schema
string
optional
Color scheme: 'light' (default), 'dark', or 'auto'. Controls whether slides render in light or dark mode.
Raw schema
{
"type": "object",
"properties": {
"markdown": {
"description": "Full Slidev markdown including frontmatter. Use layouts, components, and features specific to the chosen theme.",
"type": "string"
},
"theme": {
"description": "Theme name (e.g. 'seriph', 'default', 'neocarbon'). Read slidev://themes/installed for the full list of available themes.",
"type": "string"
},
"uuid": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "UUID of an existing presentation to update in-place (same URL). Omit to create a new presentation."
},
"color_schema": {
"default": "light",
"description": "Color scheme: 'light' (default), 'dark', or 'auto'. Controls whether slides render in light or dark mode.",
"type": "string"
}
},
"required": [
"markdown",
"theme"
],
"additionalProperties": false
}
list_session_slides
List all slide presentations created in the current MCP session.
Returns URLs, themes, and timestamps for each presentation you've created.
Get a list of all available themes with style descriptions and recommendations.
Call this to decide which theme to use. Returns a guide organized by style
(dark, academic, modern, playful, etc.) with "best for" recommendations.
After picking a theme, call get_theme with the theme name to read its
full documentation (layouts, components, examples) before rendering.
This tool does NOT display anything to the user โ it is for your own
reference when choosing a theme.
Show the user a visual theme gallery with preview images.
ONLY call this when the user explicitly asks to SEE or BROWSE themes
visually (e.g. "show me the themes", "what do they look like", "let me
pick a theme"). This renders an interactive gallery in the user's UI.
To show a filtered subset (e.g. only dark themes), first call list_themes
to identify matching themes, then pass their names here.
Do NOT call this to decide which theme to use yourself โ use list_themes
for that instead.
Parameters1
themes
any
optional
Optional list of theme names to show (e.g. ['dracula', 'neocarbon', 'vibe']). If omitted, all themes are shown. Use list_themes first to find matching themes, then pass the filtered names here.
Raw schema
{
"type": "object",
"properties": {
"themes": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional list of theme names to show (e.g. ['dracula', 'neocarbon', 'vibe']). If omitted, all themes are shown. Use list_themes first to find matching themes, then pass the filtered names here."
}
},
"additionalProperties": false
}
get_theme
Get full documentation for a specific theme: layouts, components, and examples.
Call this BEFORE render_slides to learn the theme's unique features.
Each theme has different layouts, components, and frontmatter options.
Use what you learn here to produce high-quality, theme-specific slides.
This is the primary tool for preparing to render slides. When the user
specifies a theme, call this directly โ no need to call browse_themes.
Get the Slidev syntax guide: how to write slides in markdown.
Returns the official Slidev syntax reference (frontmatter, slide separators,
speaker notes, layouts, code blocks) plus built-in layout documentation and
an example deck. Call this once to learn how to write Slidev presentations.
Export a presentation as a downloadable PDF.
The presentation must have been created in the current session.
Returns a URL to download the PDF.
Parameters1
uuid
string
required
UUID of the presentation to export. Must be from the current session.
Raw schema
{
"type": "object",
"properties": {
"uuid": {
"description": "UUID of the presentation to export. Must be from the current session.",
"type": "string"
}
},
"required": [
"uuid"
],
"additionalProperties": false
}
screenshot_slides
Render all slides as PNG images and return them.
Use this to visually review a presentation. Returns one image per
slide so you can see exactly what each slide looks like and give
specific feedback.
Parameters1
uuid
string
required
UUID of the presentation to screenshot.
Raw schema
{
"type": "object",
"properties": {
"uuid": {
"description": "UUID of the presentation to screenshot.",
"type": "string"
}
},
"required": [
"uuid"
],
"additionalProperties": false
}
Slidev MCP can be self-hosted on your own server. See the deployment guide for Docker Compose setup with Let's Encrypt TLS.
Development
bash
make install # Install Python dependencies
make docker-dev-up # Start Postgres + Builder
make serve # Run MCP server locally
make pr-ready # Lint + format + test
License
FSL-1.1-ALv2 โ Functional Source License, converting to Apache 2.0 after two years.