项目简介

这个项目是一个基于Model Context Protocol (MCP) 的服务器,它允许大型语言模型(如Claude)通过调用工具的方式,将Markdown文本转换成基于Reveal.js的HTML幻灯片。转换完成后,服务器会通过内置的HTTP服务提供访问链接。

主要功能点

  • 接受Markdown内容作为输入。
  • 利用mkslides库将Markdown转换为HTML幻灯片。
  • 支持配置幻灯片主题、代码高亮主题以及Reveal.js选项。
  • 自动清理生成的临时文件。
  • 通过内置的HTTP服务器提供生成的幻灯片访问链接。
  • 支持通过Docker容器化部署。

安装步骤

要使用此服务器,您需要先安装以下依赖项:

  1. Python 3.12 或更高版本。
  2. 'mkslides' 命令行工具,并确保其在系统PATH中可访问。您可以访问 mkslides GitHub仓库 查看安装说明。
  3. 一个Model Context Protocol (MCP) 客户端,例如VSCode中的Claude插件。

安装服务器本身有两种方法:

  • 使用 pip: 克隆仓库代码,然后在项目根目录运行 'pip install .' 或使用 'uv sync' (如果安装了 uv)。
  • 使用 Docker: 确保您安装了 Docker。从克隆的项目根目录运行部署脚本 './deploy_mdslides_docker.sh'。这个脚本会自动构建Docker镜像并启动一个名为 'mdslides-mcp-instance' 的容器。

服务器配置

您需要在您的MCP客户端(如VSCode的设置文件)中添加服务器配置。MCP客户端需要知道如何启动或连接到MCP服务器。通常需要指定服务器的唯一名称、启动服务器的命令('command')及其参数('args')。以下是两种安装方式对应的配置示例:

  • 如果使用 pip 安装并直接运行: 您需要配置客户端来启动服务器脚本。
    {
      "mcpServers": {
        "mdslides-mcp-local": { // 服务器的唯一名称,供客户端调用时指定
          "command": "python", // 启动服务器的命令
          "args": ["src/mdslides_mcp_server/server.py"], // 启动服务器脚本的路径
          "disabled": false // 是否启用此服务器 (false表示启用)
          // 其他可选配置如 autoApprove, timeout 等可以根据客户端文档添加
        }
      }
    }
  • 如果使用 Docker 部署脚本启动的容器: 您需要配置客户端连接到正在运行的Docker容器的标准输入输出。
    {
      "mcpServers": {
        "mdslides-mcp-local": { // 服务器的唯一名称,供客户端调用时指定
          "autoApprove": [], // 自动批准的请求列表,通常留空或根据需要配置
          "disabled": false, // 是否启用此服务器 (false表示启用)
          "timeout": 60, // 连接超时时间 (秒)
          "command": "docker", // 用于连接的命令
          "args": [ // 连接命令的参数
            "attach", // Docker命令,表示连接到正在运行的容器
            "mdslides-mcp-instance" // 要连接的容器名称,由部署脚本设定
          ],
          "transportType": "stdio" // 使用标准输入输出进行通信
        }
      }
    }

请将上述JSON配置片段添加到您MCP客户端的相应设置位置。

基本使用方法

配置完成后,在支持MCP的AI客户端界面中(例如VSCode的Claude聊天窗口),您可以直接通过工具调用来生成幻灯片。

调用工具的通用格式通常类似于(具体语法取决于您的客户端):

<use_mcp_tool>
<server_name>mdslides-mcp-local</server_name> <!-- 这里填写您配置的服务器名称 -->
<tool_name>generate_slides</tool_name> <!-- 要调用的工具名称 -->
<arguments>
{
  "markdown_content": "# 幻灯片标题\n\n---\n\n## 第二页\n\n- 列表项", // 您的Markdown内容,必需参数
  "slides_theme": "black", // 可选参数,幻灯片主题名称
  "revealjs_options": { // 可选参数,用于自定义Reveal.js的配置
    "transition": "slide"
  }
}
</arguments>
</use_mcp_tool>

AI客户端调用该工具后,如果成功,服务器将返回一个URL(例如 'http://localhost:8080/latest/index.html')。您可以在浏览器中打开这个URL来查看生成的幻灯片。

信息

分类

AI与计算