mkslides-mcp-server

by bsmnyk

212 downloads Not rated yet

About

MCP (Model Context Protocol) server for generating HTML slides from Markdown content

Explore

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.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name mkslides-mcp-server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

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).

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:

{
  "mcpServers": {
    "mkslides-mcp-local": {
      "command": "python",
      "args": ["src/mkslides_mcp_server/server.py"],
      "disabled": false,
      "autoApprove": []
    }
  }
}

If you built the Docker image, you can configure it to run the container:

{
  "mcpServers": {
    "mkslides-mcp-local": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-v",
        "/path/to/your/output:/app/mkslides_output", // IMPORTANT: Replace with your desired output path
        "mkslides-mkslides-server:latest"
      ],
      "disabled": false,
      "autoApprove": []
    }
  }
}
Note: Ensure the volume mount path (/path/to/your/output) is correctly set to a directory on your host machine where you want the generated slides to be saved. The server will save files to /app/mkslides_output inside the container, which is mapped to your host path.

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

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.

markdown_content

(string, **required**): Raw Markdown text for the slides.

slides_theme

(string, optional): Theme name for the slides. This overrides the default theme in mkslides.

slides_highlight_theme

(string, optional): Syntax highlighting theme for code blocks.

revealjs_options

(object, optional): A dictionary containing Reveal.js config options to merge/override the `revealjs` section of the mkslides configuration.

Generates HTML slides from Markdown input using mkslides.

Parameters:

markdown_content (string, required): Raw Markdown text for the slides.
slides_theme (string, optional): Theme name for the slides. This overrides the default theme in mkslides.
slides_highlight_theme (string, optional): Syntax highlighting theme for code blocks.
revealjs_options (object, optional): A dictionary containing Reveal.js config options to merge/override the revealjs section of the mkslides configuration.

Example Usage:

<use_mcp_tool>
<server_name>mkslides-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.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "mkslides-mcp-server": {
            "mkslides-mcp": {
                "command": "uv",
                "args": [
                    "sync"
                ]
            }
        }
    }
}

McpServers

{
    "mkslides-mcp": {
        "command": "uv",
        "args": [
            "sync"
        ]
    }
}

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.

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/mkslides-mcp-server.git # Replace with actual repo URL
cd mkslides-mcp-server

2. Install using pip and uv (recommended):
    uv sync

Or using pip:
    pip install .

Using Docker

1. Build the Docker image from the repository root:

    docker build -t mkslides-mcp-server:latest .

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:

{
  "mcpServers": {
    "mkslides-mcp-local": {
      "command": "python",
      "args": ["src/mkslides_mcp_server/server.py"],
      "disabled": false,
      "autoApprove": []
    }
  }
}

If you built the Docker image, you can configure it to run the container:

{
  "mcpServers": {
    "mkslides-mcp-local": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-v",
        "/path/to/your/output:/app/mkslides_output", // IMPORTANT: Replace with your desired output path
        "mkslides-mkslides-server:latest"
      ],
      "disabled": false,
      "autoApprove": []
    }
  }
}
Note: Ensure the volume mount path (/path/to/your/output) is correctly set to a directory on your host machine where you want the generated slides to be saved. The server will save files to /app/mkslides_output inside the container, which is mapped to your host path.

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 slides from Markdown input using mkslides.

Parameters:

markdown_content (string, required): Raw Markdown text for the slides.
slides_theme (string, optional): Theme name for the slides. This overrides the default theme in mkslides.
slides_highlight_theme (string, optional): Syntax highlighting theme for code blocks.
revealjs_options (object, optional): A dictionary containing Reveal.js config options to merge/override the revealjs section of the mkslides configuration.

Example Usage:

<use_mcp_tool>
<server_name>mkslides-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

mkslides for the core slide generation functionality.
Model Context Protocol for enabling server integration.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.