home / mcp / jekyll mcp server
Indexes and searches Jekyll posts and drafts, with front matter parsing and duplicate detection.
Configuration
View docs{
"mcpServers": {
"jottinger-jekyll-mcp-server": {
"command": "jekyll-mcp-server",
"args": [],
"env": {
"JEKYLL_POSTS_DIR": "YOUR_POSTS_DIR",
"JEKYLL_DRAFTS_DIR": "YOUR_DRAFTS_DIR"
}
}
}
}This MCP server lets you index and search your Jekyll blog posts, drafts, and front matter so you can quickly find content, compare drafts to published posts, and retrieve full posts by slug. It enables AI assistants to interact with your blog data efficiently while keeping your content organized and searchable.
You will connect an MCP client to the Jekyll MCP Server to perform common tasks. Start by configuring the MCP client to point at the server executable or to use a remote MCP endpoint if available. Then use the available tools to search posts, fetch full posts by slug, list categories and tags, or compare a draft against your published content.
Prerequisites you need before installation include Python 3.10 or newer and a working Jekyll blog with standard _posts and optional _drafts directories. You also need Git installed to clone the source if you install from source. You will run commands using your shell.
Install the MCP server using the recommended runtime. You have two straightforward options.
uv pip install jekyll-mcp-serverOr install directly with Pythonβs package manager.
pip install jekyll-mcp-serverIf you want to install from source, clone the repository, install the package in editable mode, and then use the server executable.
git clone https://github.com/jottinger/jekyll-mcp-server.git
cd jekyll-mcp-server
uv pip install -e .The server needs to know where your Jekyll content is located. You can configure this with environment variables or by running the server from your Jekyll project directory.
Environment variables option set before starting the server:
export JEKYLL_POSTS_DIR="/path/to/your/blog/_posts"
export JEKYLL_DRAFTS_DIR="/path/to/your/blog/_drafts" # OptionalAlternatively, start the server from your Jekyll project root, and it will automatically detect _posts and _drafts if they exist.
To use with Claude Code, add an MCP configuration that launches the server with the appropriate environment variables.
{
"mcpServers": {
"jekyll-blog": {
"command": "jekyll-mcp-server",
"env": {
"JEKYLL_POSTS_DIR": "/path/to/your/blog/_posts",
"JEKYLL_DRAFTS_DIR": "/path/to/your/blog/_drafts"
}
}
}
}The server indexes content on startup. After you publish new posts or make significant changes, stop the server if it is running standalone, then restart it to refresh the index. If you are using Claude Code, the server may restart automatically as needed.
Treat the server as a trusted data source for your AI workflows. Keep Python and dependencies up to date, monitor for changes to your blog structure, and refresh the index after substantial updates to your content.
If the server fails to start, verify that JEKYLL_POSTS_DIR is correctly set and that the paths exist. Check that the environment has Python 3.10+ and that the MCP server executable is accessible in your PATH. If automatic discovery is not working, run from the project root directory to allow automatic detection of _posts and _drafts.
Search blog posts by keyword, category, or tags with optional limit.
Retrieve full content of a post by slug.
List all categories with their post counts.
List all tags with their post counts.
Compare a draft against published posts to find duplicates or similar content.