mdslides-mcp-server

mdslides-mcp-server

An MCP server for generating HTML presentation slides from Markdown content using the mkslides library, enabling integration with tools like Claude in VSCode to create and manage presentations.

Category
Visit Server

README

mdslides-mcp-server

An MCP (Model Context Protocol) server for generating HTML slides from Markdown content using the mkslides library.

What it Does

This server provides a simple interface to the mkslides command-line tool, allowing you to generate presentation slides directly from Markdown input via the Model Context Protocol. This enables integration with tools like Claude in VSCode to easily create and manage presentations.

Demo

mcp-demo.webm

Features

  • Generate HTML slides from Markdown.
  • Support for various mkslides configuration options (themes, highlight themes, Reveal.js options).
  • Clean handling of temporary files.
  • Containerized deployment option using Docker.

Installation

Prerequisites

  • Python 3.12 or higher
  • mkslides installed and available in your PATH.
  • Model Context Protocol (MCP) client (e.g., Claude in VSCode).
  • Docker (if using the Docker installation method).

Installation Methods

Using pip

  1. Clone the repository:
    git clone https://github.com/your-repo/mdslides-mcp-server.git
    cd mdslides-mcp-server
    
  2. Install using pip and uv (recommended):
    uv sync
    
    Or using pip:
    pip install .
    

Using Docker

  1. Ensure Docker is installed and running.
  2. From the repository root, run the deployment script:

./deploy_mdslides_docker.sh

This script will build the Docker image (if not already built) and start a container instance named `mdslides-mcp-instance`. The server inside the container will be running and ready to accept connections via MCP. The script also handles creating the necessary output directory (`./mkslides_output`) on the host.

### Configuration in MCP Settings

To use the server with your MCP client (like Claude in VSCode), you need to add it to your MCP settings.

If you installed using pip, you can run the server directly:

```json
{
  "mcpServers": {
    "mdslides-mcp-local": {
      "command": "python",
      "args": ["src/mdslides_mcp_server/server.py"],
      "disabled": false,
      "autoApprove": []
    }
  }
}

If you are using the Docker deployment via the script:

Configure your MCP client to attach to the running container instance:

{
  "mcpServers": {
    "mdslides-mcp-local": {
      "autoApprove": [],
      "disabled": false,
      "timeout": 60,
      "command": "docker",
      "args": [
        "attach",
        "mdslides-mcp-instance"
      ],
      "transportType": "stdio"
    }
  }
}

Usage with Claude/VSCode

Once configured in your MCP settings, you can use the generate_slides tool directly within your Claude chat interface in VSCode.

Available Tool: generate_slides

Generates HTML presentation slides from Markdown input using mkslides and serves them via a local HTTP server.

Parameters:

  • markdown_content (string, required): Raw Markdown text for the slides.
  • slides_theme (string, optional): Theme name for the slides (e.g., black, white, league, beige, night, serif, simple, solarized, moon, dracula, sky, blood). Overrides the default.
  • slides_highlight_theme (string, optional): Syntax highlighting theme for code blocks (any built-in theme from highlight.js).
  • revealjs_options (object, optional): A dictionary containing Reveal.js config options to merge/override defaults.

Returns:

  • (string): A URL (e.g., http://localhost:8080/latest/index.html) pointing to the generated HTML slides served by the MCP server's internal HTTP server. You can open this URL in your browser.

Example Usage:

<use_mcp_tool>
<server_name>mdslides-mcp-local</server_name>
<tool_name>generate_slides</tool_name>
<arguments>
{
  "markdown_content": "# My Presentation\n\n---\n\n## Slide 2\n\n- Bullet 1\n- Bullet 2",
  "slides_theme": "black",
  "revealjs_options": {
    "transition": "slide"
  }
}
</arguments>
</use_mcp_tool>

This will generate the slides in the default output directory (./mkslides_output) using the 'black' theme and a 'slide' transition.

Development

Contributing

Contributions are welcome! Please follow standard GitHub practices: fork the repository, create a feature branch, and submit a pull request.

Running Tests

Currently, there is a placeholder test file (tests/test_server.py). To run tests, you would typically use a test runner like pytest:

pytest

Remember to add actual tests to tests/test_server.py.

Building from Source

Follow the pip installation steps above to set up your development environment.

License

This project is licensed under the MIT License - see the LICENSE file for details. (Note: A LICENSE file does not currently exist in the repository. You may want to create one.)

Acknowledgements

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured