使用说明

项目简介

MkDocs MCP Server Plugin 是一个 MkDocs 插件,它将你的 MkDocs 文档站点转换为一个 MCP (Model Context Protocol) 服务器。这意味着你可以使用支持 MCP 协议的 LLM 客户端(如 Claude Desktop)连接到这个插件,并让 LLM 访问你的文档内容作为上下文信息。该插件将 MkDocs 站点中的每个页面都作为一个独立的 MCP 资源提供,LLM 可以通过资源 URI (例如 'docs://<page_title>') 来获取页面的 Markdown 内容。

主要功能点

  • 文档即资源: 将 MkDocs 网站的每个页面自动注册为 MCP 资源。
  • 内容访问: LLM 客户端可以通过标准的 MCP 协议访问和获取文档页面的 Markdown 内容。
  • Stdio/SSE 传输: 支持 Stdio 和 SSE 两种 MCP 服务器传输协议。
  • 易于集成: 作为 MkDocs 插件,可以方便地集成到现有的 MkDocs 项目中。

安装步骤

  1. 确保已安装 uv: 该项目使用 'uv' 进行依赖管理,请先安装 'uv' (参考 uv GitHub 仓库)。

  2. 安装插件: 将 'mkdocs-mcp' 仓库克隆到本地,或者作为子模块添加到你的 MkDocs 项目中。

  3. 配置 MkDocs: 在你的 'mkdocs.yml' 文件中,将 'mcp' 插件添加到 'plugins' 列表中:

    plugins:
      - mcp

服务器配置

要让 MCP 客户端(例如 Claude Desktop)连接到 MkDocs MCP 服务器,你需要配置客户端的 MCP 服务器连接信息。以 Claude Desktop 为例,你需要编辑 'claude_desktop_config.json' 文件,添加如下配置 (请根据你的实际路径进行调整):

{
  "mcpServers": {
    "mkdocs": {
      "command": "uv",  // 启动 MCP 服务器的命令,这里使用 uv
      "args": [
        "run",
        "python",
        "src/mkdocs_mcp/", //  指向 mkdocs_mcp 插件的 src 目录,假设你当前位于 mkdocs-mcp 仓库根目录
        "-mt",
        "stdio" // 指定 MCP 传输协议为 stdio,也可以选择 "sse"
      ]
    }
  }
}

配置参数说明:

  • '"mkdocs"': MCP 服务器的名称,可以自定义,用于在客户端中标识不同的 MCP 服务器连接。
  • '"command": "uv"': 指定用于启动 MCP 服务器的命令为 'uv'。 你需要确保 'uv' 命令在你的系统 PATH 环境变量中,或者使用绝对路径。
  • '"args"': 一个字符串数组,包含了传递给 'uv run' 命令的参数:
    • '"run"': 'uv' 的子命令,用于运行 Python 脚本。
    • '"python"': 指定使用 Python 解释器。
    • '"src/mkdocs_mcp/"': 指定要运行的 Python 脚本的路径,这里指向 'mkdocs_mcp' 插件的 'src' 目录,'main.py' 文件会自动被执行。
    • '"-mt"': MCP 服务器传输协议参数。
    • '"stdio"': 指定使用 Stdio 传输协议。 你也可以替换为 '"sse"' 使用 SSE 协议。

基本使用方法

  1. 启动 MkDocs MCP 服务器: 在你的 MkDocs 项目根目录(或者 'mkdocs-mcp' 仓库根目录)中,根据 'README.md' 的 Quick Start 部分,使用 'uv' 命令启动 MCP 服务器。 例如使用 stdio 传输协议:

    uv run python src/mkdocs_mcp/ -mt stdio
  2. 配置 MCP 客户端: 根据你的 MCP 客户端 (例如 Claude Desktop) 的文档,配置连接到名为 "mkdocs" 的 MCP 服务器。 确保客户端的配置与你在 'claude_desktop_config.json' 中设置的 'command' 和 'args' 一致。

  3. 在 LLM 中使用文档上下文: 连接成功后,你就可以在 LLM 客户端中指示 LLM 使用 'docs://<page_title>' 格式的 URI 来访问你的 MkDocs 文档页面内容。 '<page_title>' 需要替换为你的 MkDocs 文档页面的标题。 例如,如果你的文档中有一个标题为 "Getting Started" 的页面,你可以在 LLM 中使用 'docs://Getting Started' 来引用该页面的内容。

注意:

  • 这是一个 Proof-of-Concept 项目,可能还存在一些不完善的地方。
  • 目前该插件主要提供文档页面的 Markdown 内容作为资源,暂未实现 Tool 和 Prompt Template 功能。
  • 请参考 'README.md' 获取更详细的信息和最新的使用方法。

信息

分类

AI与计算