mcpField
M
mkdocs-mcp

mkdocs-mcp

Local
github.com/ubaumannDeveloper Tools9Updated 58w ago

About mkdocs-mcp

mkdocs-mcp is an experimental MkDocs plugin that launches an MCP server to serve documentation pages. It is for MkDocs project maintainers who want pages available through MCP, using a separate script because the native serve command cannot be overridden.

Key features

  1. 01MkDocs plugin for MCP serving
  2. 02Configurable page naming style
  3. 03Prefer source Markdown or converted HTML
  4. 04Combine pages across a project or folders

Use cases

  1. 01Expose MkDocs documentation pages to MCP clients
  2. 02Choose names for served pages
  3. 03Aggregate documentation pages into combined resources

MCP support

It launches an MCP server that serves MkDocs pages as resources. The project uses the mkdocs_mcp script to build and start the server.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"ubaumann-mkdocs": {
"command": "uvx",
"args": [
"mkdocs-mcp"
],
"env": {
"MKDOCS_PROJECT_PATH": "<MKDOCS_PROJECT_PATH>"
}
}
}
}
Run commanduvx mkdocs-mcp
Environment variables to set
MKDOCS_PROJECT_PATHPath to the MkDocs project

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypimkdocs-mcp0.1.2

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

mkdocs-mcp

MkDocs Plugin to Serve MCP
A proof-of-concept — feedback welcome!


mkdocs-mcp is an experimental plugin designed to integrate an MCP server into the MkDocs workflow. Due to limitations in MkDocs, the native mkdocs serve command cannot be overridden. Instead, this project provides the mkdocs_mcp script to handle the build process and launch the MCP server.

Quick Start

Requirements

This project uses uv for dependency management and virtual environments.

Running the MCP Server

To start the MCP server:

uv run mkdocs-mcp -mt stdio

Use the --mkdocs-project-path option to specify the path to your MkDocs project if it's not in the current directory. The environment variable MKDOCS_PROJECT_PATH can also be set for this purpose.

MkDocs Configuration

Make sure to include mcp in your mkdocs.yml plugin list:

plugins:
  - mcp:
      naming_style: src_file  # "src_file"(default), "dst_url" or "title"
      prefer_markdown: True  # By default the source markdown is used, set to False to convert the output HTML to markdown
      combine_all_pages: False  # Aggregate all pages into one file
      combine_by_folder: False  # Aggregate each folder

Using Claude Desktop with WSL

If you're working with Claude Desktop and WSL, configure your claude_desktop_config.json as follows (adjust paths as needed):

{
  "mcpServers": {
    "mkdocs": {
      "command": "wsl.exe",
      "args": [
        "bash",
        "-c",
        "/home/urs/.cargo/bin/uv run --directory /home/urs/projects/mkdocs-mcp mkdocs-mcp -mt stdio"
      ]
    }
  }
}

Inspecting the MCP Server

For development and debugging, you can directly inspect the MCP server:

uv run mcp dev src/mkdocs_mcp/__main__.py

Notes

  • This project is still in the early proof-of-concept stage.
  • Contributions and feedback are highly encouraged!

Thanks for checking out mkdocs-mcp!


GitHub MCP Registry mcp-name: io.github.ubaumann/mkdocs-mcp

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.