Run the MkDocs MCP Server locally for development and testing.
git clone https://github.com/ejsinfuego/mkdocs-mcp.git
cd mkdocs-mcp
pip install -r requirements.txt
export MKDOCS_DOCS_PATH=/path/to/your/docs
export MKDOCS_CONFIG_PATH=/path/to/your/mkdocs.yml
Or create a .env file:
# .env
MKDOCS_DOCS_PATH=/Users/you/my-project/docs
MKDOCS_CONFIG_PATH=/Users/you/my-project/mkdocs.yml
fastmcp run server.py:mcp
Output:
✅ MkDocs MCP Server ready for deployment
📁 Documentation path: /Users/you/my-project/docs
⚙️ Config path: /Users/you/my-project/mkdocs.yml
🚀 Server running at http://localhost:8000/mcp
Point your MCP client to the local server:
{
"mcpServers": {
"mkdocs-local": {
"url": "http://localhost:8000/mcp",
"env": {
"MKDOCS_DOCS_PATH": "/Users/you/project/docs",
"MKDOCS_CONFIG_PATH": "/Users/you/project/mkdocs.yml"
}
}
}
}
{
"mcpServers": {
"mkdocs-local": {
"url": "http://localhost:8000/mcp",
"env": {
"MKDOCS_DOCS_PATH": "/Users/you/workspace/docs",
"MKDOCS_CONFIG_PATH": "/Users/you/workspace/mkdocs.yml"
}
}
}
}
Edit server.py to add features or fix bugs.
# Restart the server
fastmcp run server.py:mcp
Test with your MCP client by asking the AI to use the tools.
pip install mypy
mypy server.py
pip install black
black server.py
You can test tools manually using the FastMCP CLI:
# Test list_docs
fastmcp test server.py:mcp list_docs
# Test with parameters
fastmcp test server.py:mcp search_docs '{"query": "test"}'
FastMCP supports hot reload during development:
fastmcp dev server.py:mcp
Changes to server.py will automatically reload the server.
export FASTMCP_LOG_LEVEL=DEBUG
fastmcp run server.py:mcp
Add print statements in your tool functions:
@mcp.tool()
def list_docs(pattern: str = "**/*.md") -> str:
print(f"DEBUG: pattern={pattern}") # Debug output
# ... rest of function
Test path resolution:
if __name__ == "__main__":
docs_dir, config_file, error = get_paths()
print(f"Docs: {docs_dir}")
print(f"Config: {config_file}")
print(f"Error: {error}")
Run with:
python server.py
mkdocs-mcp/
├── server.py # Main MCP server
├── requirements.txt # Python dependencies
├── mkdocs.yml # MkDocs config (for project docs)
├── docs/ # Project documentation
└── README.md # Project README
pip install --upgrade fastmcp pyyaml
Verify environment variables:
echo $MKDOCS_DOCS_PATH
echo $MKDOCS_CONFIG_PATH
Change the port:
fastmcp run server.py:mcp --port 8001