MCP server that lets AI agents build and edit Marp slide decks via structured tools.
{
"mcpServers": {
"marp-mcp": {
"args": [
"-y",
"@masaki39/marp-mcp@latest"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
> This package includes a Claude Code Skill. After installing, Claude Code can create Marp presentations via the /marp command using the built-in CLI — no MCP server configuration required! > Auto-updating plugin install: > /plugin marketplace add masaki39/marp-mcp > /plugin install marp@marp-mcp
Is it safe?
No known CVEs for @masaki39/marp-mcp.
No authentication — any process on your machine can connect.
MIT. View license →
Is it maintained?
Last commit 2 days ago. 7 stars. 242 weekly downloads.
Will it work with my client?
Transport: stdio, sse. Works with Claude Desktop, Cursor, Claude Code, and most MCP clients.
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
npx -y '@masaki39/marp-mcp' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
No known vulnerabilities.
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Dynamic problem-solving through sequential thought chains
A Model Context Protocol server for searching and analyzing arXiv papers
An open-source AI agent that brings the power of Gemini directly into your terminal.
The official Python SDK for Model Context Protocol servers and clients
MCP Security Weekly
Get CVE alerts and security updates for Marp Mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
[!TIP] This package includes a Claude Code Skill. After installing, Claude Code can create Marp presentations via the
/marpcommand using the built-in CLI — no MCP server configuration required!Auto-updating plugin install:
/plugin marketplace add masaki39/marp-mcp /plugin install marp@marp-mcp
An MCP server for creating and editing Marp presentations with AI assistance. This MCP server allows LLMs to edit Markdown files according to a specified layout, and now supports the default Marp theme along with Gaia, Uncover, and the Academic in this repository.
Option 1 — CLI, user scope (recommended):
claude mcp add marp-mcp -- npx -y @masaki39/marp-mcp@latest
Option 2 — CLI, project scope (shareable with team via .mcp.json):
claude mcp add --scope project marp-mcp -- npx -y @masaki39/marp-mcp@latest
Option 3 — Manual config (~/.claude/settings.json or .mcp.json):
{
"mcpServers": {
"marp-mcp": {
"command": "npx",
"args": ["-y", "@masaki39/marp-mcp@latest"]
}
}
}
{
"mcpServers": {
"marp-mcp": {
"command": "npx",
"args": ["-y", "@masaki39/marp-mcp@latest"]
}
}
}
Use -t / --theme and -s / --style args to set the server-wide default. Choose from themes: default, gaia, uncover, academic. Styles: default, rich, minimal, dark, corporate, academic, tech:
{
"mcpServers": {
"marp-mcp": {
"command": "npx",
"args": ["-y", "@masaki39/marp-mcp@latest", "-t", "default", "-s", "academic"]
}
}
}
Omitting these flags defaults to default theme and default style.
| Tool | Description |
|------|-------------|
| list_themes_and_styles | List all available themes and styles; shows current server defaults |
| list_layouts | List available slide layouts for a theme/style combination |
| create_presentation | Create a new presentation with frontmatter and title slide in one step |
| manage_slide | Insert, replace, or delete slides using slide IDs (ID-based operations) |
| set_frontmatter | Ensure marp, theme, header, and paginate frontmatter fields are present |
| read_slide | Read slide content by ID or list all slides with their IDs and positions |
| generate_slide_ids | Generate stable UUIDs for every slide (safe to re-run) |
| export_slide | Export to HTML, PDF, or PPTX using marp-cli |
list_layouts, manage_slide, and set_frontmatter accept optional theme and style parameters to override the server default for a single call. This lets one server instance handle all theme/style combinations without restarting:
{ "theme": "gaia", "style": "rich" }
Omit either parameter to fall back to the server default.
Rendered samples (GitHub Pages):