Skip to content

Configuration ​

Slidev MCP is configured via environment variables. Set them in your .env file or pass them directly to Docker Compose.

Environment Variables ​

Server ​

VariableDefaultDescription
SERVER_TRANSPORTstdioTransport mode: stdio or streamable-http
SERVER_HOST0.0.0.0Bind host (streamable-http mode only)
SERVER_PORT8000Bind port (streamable-http mode only)

Domain ​

VariableDefaultDescription
DOMAINlocalhostPublic domain for the MCP API
SLIDES_DOMAIN(falls back to DOMAIN)Separate domain for serving slides. Recommended for production to prevent same-origin XSS from user-generated slide content.

Database ​

VariableDefaultDescription
DATABASE_URLpostgresql+asyncpg://slidev:slidev@localhost:5432/slidevPostgreSQL connection string
POSTGRES_PASSWORD—PostgreSQL password (required for production)

Builder ​

VariableDefaultDescription
BUILDER_HOSTbuilderBuilder HTTP server hostname
BUILDER_PORT3000Builder HTTP server port
BUILD_TIMEOUT120Maximum seconds per build
MAX_CONCURRENT_BUILDS3Not used by the MCP server; concurrency is enforced by the builder (see below)
SLIDES_DIR/data/slidesDirectory for built slide files

Builder limits ​

These are read by the builder container itself, not the MCP server. Every slidev run is stopped when it exceeds its limit (the whole process tree, including Chromium), and stopped early if the client disconnects. When all slots and the queue are full, the builder answers immediately with a "concurrent limit" error instead of piling up work.

VariableDefaultDescription
BUILDER_BUILD_TIMEOUT_SECONDS90Hard limit for slidev build
BUILDER_PREVIEW_TIMEOUT_SECONDS25Hard limit for the first-slide preview after a build (best effort)
BUILDER_EXPORT_TIMEOUT_SECONDS170Hard limit for a PDF or screenshot export
BUILDER_MAX_CONCURRENT2Jobs running at once (the container has 2 CPUs)
BUILDER_MAX_QUEUED8Jobs allowed to wait for a slot before new ones are rejected

Keep the build limits below the MCP server's own timeouts (BUILD_TIMEOUT + 5 s for builds, 180 s for exports), or the server gives up first.

Lifecycle ​

VariableDefaultDescription
SLIDE_TTL_DAYS30Days since last update before slides are garbage-collected
GC_INTERVAL_HOURS6How often the garbage collector runs

Logging ​

VariableDefaultDescription
LOG_LEVELINFOPython log level (DEBUG, INFO, WARNING, ERROR)
LOG_FORMATjsonLog format: json or text

TLS (Production) ​

VariableDefaultDescription
ACME_EMAIL—Email for Let's Encrypt certificate registration

Operated by LatentSpace Labs GmbH · Built by Souverana, AI Consulting for teams shipping with LLMs · Legal Notice