Skip to main content
Glama
slidev-orchestrator-mcp

slidev-orchestrator-mcp

by death-joke

slidev-orchestrator-mcp

MCP (TypeScript) server to orchestrate multiple Slidev presentations:

  • list the presentations under a root folder (mainfolder/presentation1, mainfolder/presentation2, ...)

  • create a new presentation (scaffold + npm install)

  • start / stop / list Slidev dev servers (automatic port allocation)

  • target a presentation: the server connects to that presentation's official Slidev MCP (slidev mcp slides.md) and dynamically re-exposes its tools (prefixed slidev_*) via tools/list_changed.

Expected structure

mainfolder/
├── presentation1/
│   ├── slides.md        <- required (this is what identifies a presentation)
│   └── package.json     <- @slidev/cli as a local dependency (recommended)
└── presentation2/
    └── slides.md

Related MCP server: slideless-mcp

Installation

The package is published on npm as slidev-orchestrator-mcp, so no local clone or build is required — just run it with npx.

Root folder configuration

Priority order:

  1. CLI argument: --dir /path/to/mainfolder (or -d, or the first positional argument)

  2. Environment variable: SLIDEV_PRESENTATIONS_DIR

Optional: SLIDEV_BASE_PORT (default 3030) — first port tried for dev servers.

Integration

Claude Code

claude mcp add slidev-orchestrator -- npx -y slidev-orchestrator-mcp --dir /path/to/mainfolder

or with the environment variable:

claude mcp add slidev-orchestrator -e SLIDEV_PRESENTATIONS_DIR=/path/to/mainfolder -- npx -y slidev-orchestrator-mcp

OpenCode (opencode.json)

{
  "mcp": {
    "slidev-orchestrator": {
      "type": "local",
      "command": ["npx", "-y", "slidev-orchestrator-mcp"],
      "environment": { "SLIDEV_PRESENTATIONS_DIR": "/path/to/mainfolder" }
    }
  }
}

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "slidev-orchestrator": {
      "command": "npx",
      "args": ["-y", "slidev-orchestrator-mcp", "--dir", "/path/to/mainfolder"]
    }
  }
}

Exposed tools

Tool

Description

list_presentations

List presentations (title/theme read from frontmatter, dev server status, current target)

create_presentation

Scaffold slides.md + package.json + install (name, title?, theme?, install?)

start_server

Start slidev --port N for a presentation, returns the URL

stop_server

Stop a presentation's dev server

server_status

List running dev servers

select_presentation

Target a presentation → spawns slidev mcp slides.md, re-exposes its tools as slidev_* and sends tools/list_changed

call_slidev_tool

Generic passthrough to the targeted Slidev MCP (fallback for clients that ignore list_changed, e.g. Claude Desktop)

Notes

  • Claude Code (>= 2.1.0) and OpenCode support tools/list_changed: after select_presentation, the slidev_* tools appear directly. Claude Desktop ignores it: use call_slidev_tool instead.

  • The presentation's local Slidev binary (node_modules/.bin/slidev) is preferred; falls back to npx -y @slidev/cli (the package is named @slidev/cli, not slidev).

  • All child processes (dev servers + Slidev MCP) are cleanly killed on shutdown.

Development

To work on the server itself (not just use it):

git clone https://github.com/death-joke/slidev-orchestrator-mcp.git
cd slidev-orchestrator-mcp
npm install
npm run build
node dist/index.js --dir /path/to/mainfolder

See CLAUDE.md for the full architecture overview and contribution guidelines.

Available Tools

7 tools
call_slidev_toolA

Fallback passthrough: call a tool of the currently targeted presentation's official Slidev MCP by its original name. Useful for MCP clients that do not support dynamic tool list updates (tools/list_changed).

Inputs: tool (required), args.

create_presentationA

Scaffold a new Slidev presentation (folder + slides.md + package.json) in the root directory. Runs npm install unless install=false.

Inputs: name (required), theme, title, install.

list_presentationsA

List all Slidev presentations found in the presentations root directory (/app). A presentation is any sub-folder containing a slides.md.

Inputs: no named parameters.

select_presentationA

Target a presentation: connects to its official slidev mcp server and dynamically exposes its tools (prefixed slidev_*) for inspecting/editing the slides. Selecting a new presentation replaces the previous target.

Inputs: name (required).

server_statusA

List all currently running Slidev dev servers (name, port, URL, pid).

Inputs: no named parameters.

start_serverA

Start the Slidev dev server for a presentation. Returns the local URL. Ports are allocated automatically unless port is given.

Inputs: name (required), port.

stop_serverB

Stop the running Slidev dev server of a presentation.

Inputs: name (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4/5.0

    Scored across 7 tools

    Disambiguation5/5

    Each tool targets a distinct action: listing presentations, creating presentations, starting/stopping servers, checking server status, selecting a presentation, and calling a slidev tool. No two tools have overlapping purposes.

    Naming Consistency4/5

    Most tools follow a clear verb_noun pattern (list_presentations, create_presentation, start_server, stop_server, select_presentation, call_slidev_tool). The exception is server_status, which is noun_noun; renaming it to get_server_status or list_servers would make the naming fully consistent.

    Tool Count5/5

    With 7 tools, the server is well-scoped for its purpose of orchestrating Slidev presentations and their dev servers. Each tool earns its place and the count is not overwhelming.

    Completeness5/5

    The server covers the full lifecycle of presentation scaffolding and server management (create, list, start, stop, status), and provides access to the official Slidev MCP for editing slides. No major gaps are apparent for the stated purpose.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      B
      maintenance
      A flexible proxy server that aggregates multiple backend MCP servers into a single interface using STDIO or SSE transports. It supports dynamic server management via an HTTP API and utilizes namespacing to prevent tool conflicts across connected services.
      3
      1
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Local-first MCP server & CLI for authoring Bento decks (single-file PPT) with AI agents and live browser preview. Enables programmatic creation, editing, validation, and presentation of Bento HTML decks.
      26 npm
      1
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables managing multiple MCP service nodes over SSE or stdio and aggregating them into a single unified SSE endpoint, allowing compatible clients to access all integrated MCP tools through one address.
      Apache 2.0