Skip to main content
Glama

jekyll-component-mcp

AI-native development MCP server for Jekyll projects and reusable Liquid/SCSS/JavaScript components.

npm version npm downloads Node.js Version GitHub Repo stars GitHub release License: MIT Issues Dependabot Status

Production-ready Model Context Protocol (MCP) server that lets AI agents understand, inspect, create, validate, build, and document Jekyll component frameworks.

Related MCP server: craft

Features

  • Jekyll-aware tools — not a generic filesystem wrapper

  • Component lifecycle — list, get, create, validate, delete

  • SCSS + design tokens — architecture detection and safe updates

  • Secure by default — project-root sandbox, allowlisted commands, write modes

  • Dry-run support — preview mutations before writing

  • Resources & prompts — structured context and review workflows for agents

Requirements

  • Node.js 20+

  • A Jekyll project (optional Gemfile / Bundler)

Install

npm install -g jekyll-component-mcp
# or use locally
npx jekyll-component-mcp --root /path/to/jekyll-project

AI Skill

The package includes a skill with instructions for AI agents to install, configure, and use this MCP server. After the package is published, share this URL with an AI agent that can access web links:

https://unpkg.com/jekyll-component-mcp@latest/skills/SKILL.md

For repeatable instructions, replace latest with a published version, for example @1.0.0. You can ask the agent: "Read and follow this skill to set up and use jekyll-component-mcp: https://unpkg.com/jekyll-component-mcp@latest/skills/SKILL.md".

Quick start

# Generate .jekyll-mcp.json (detects standard Jekyll, Chirpy, or Minimal Mistakes)
jekyll-component-mcp init

# From your Jekyll project root
jekyll-component-mcp --root .

# Or via environment
JEKYLL_PROJECT_ROOT=/path/to/project jekyll-component-mcp

MCP Inspector

npm run build
npx @modelcontextprotocol/inspector node dist/index.js --root /path/to/jekyll-project

Write modes

Mode

Create / Update

Delete / Destructive

read-only

❌

❌

safe-write (default)

✅

❌

full-write

✅

✅ (requires confirm: true)

CLI options

jekyll-component-mcp init [--root <path>] [--preset auto|standard|chirpy|minimal-mistakes] [--force] [--yes]

--root <path>           Project root
--readonly              read-only mode
--safe-write            safe-write mode (default)
--full-write            full-write mode
--timeout <ms>          Build timeout (default 120000)
--max-file-size <bytes> Max file size (default 2MiB)
--debug                 Debug logging to stderr

init detects common Jekyll include, Sass, layout, and data directories, then writes a ready-to-use .jekyll-mcp.json. It preserves an existing configuration unless --force is supplied. In an interactive terminal, the detected theme preset can be confirmed or changed.

Configuration file

Optional .jekyll-mcp.json in the project root:

{
  "root": ".",
  "writeMode": "safe-write",
  "build": {
    "command": "bundle exec jekyll build",
    "timeout": 120000
  },
  "paths": {
    "components": "_includes/components",
    "scss": "assets/scss",
    "docs": "docs",
    "layouts": "_layouts"
  }
}

Tools (overview)

Tool

Purpose

jekyll_project_info

High-level project summary

jekyll_project_scan

Full architecture map

jekyll_config_get

Sanitized config

jekyll_component_list

List components

jekyll_component_get

Component details + sources

jekyll_component_create

Create component + SCSS + docs

jekyll_component_validate

Structured validation

list_components / inspect_component

Aliases for component discovery and inspection

create_component / validate_component

Aliases for generation and validation

jekyll_component_delete

Destructive delete (full-write + confirm)

jekyll_build

Run Jekyll build

jekyll_doctor

Run jekyll doctor

Resources

  • jekyll://project

  • jekyll://components

  • jekyll://config

Prompts

  • jekyll_component_review

  • jekyll_accessibility_review

  • jekyll_performance_review

  • jekyll_production_review

Security

  • Filesystem sandbox: every path is resolved under the project root; traversal and symlink escapes are rejected.

  • Command allowlist: only jekyll build|clean|doctor (and bundle exec variants). No arbitrary shell.

  • Write policy: configurable; destructive ops require full-write + confirm: true.

  • Secrets: config reads redact common secret keys; process output is scrubbed.

  • stdio: stdout is reserved for MCP JSON-RPC; all logs go to stderr.

Client configuration examples

Claude Desktop / Claude Code

{
  "mcpServers": {
    "jekyll-component": {
      "command": "npx",
      "args": ["-y", "jekyll-component-mcp", "--root", "/path/to/jekyll-project"]
    }
  }
}

Cursor / VS Code

Add an MCP server entry pointing at node /path/to/jekyll-component-mcp/dist/index.js with --root args as needed.

Development

npm install
npm run typecheck
npm run build
npm test
npm run dev -- --root ./examples/jekyll-component-framework

License

MIT

Available Tools

23 tools
jekyll_buildA

Run a Jekyll build (bundle exec jekyll build when Gemfile present). Captures exit code, stdout, stderr, duration, and _site path. Does not accept arbitrary shell commands. Use after creating or modifying components to verify the site builds. May take up to the configured timeout (default 120s).

Inputs: clean.

jekyll_component_createA

Create a reusable Jekyll Liquid component and its associated SCSS, documentation, and example files. Use when the user asks to create a new reusable UI component. Do not use for one-off page markup. This operation modifies project files. Supports dry_run. Names are normalized to kebab-case.

Inputs: name (required), dry_run, example, category, +3 more.

jekyll_component_deleteA

Delete a component and its associated files (Liquid, SCSS, JS, docs, example). DESTRUCTIVE. Requires confirm: true and full-write mode. Prefer dry reasoning before calling.

Inputs: name (required), confirm (required).

jekyll_component_getA

Get full details for one component by name: Liquid/SCSS/JS/docs source, detected parameters (include.*), variants, accessibility notes, and class names. Use before editing or reviewing a component. Read-only.

Inputs: name (required).

jekyll_component_listA

List all detected reusable components with paths to Liquid, SCSS, JavaScript, documentation, and examples. Use to discover existing components before creating new ones. Read-only.

Inputs: no named parameters.

jekyll_component_validateA

Validate a component: file existence, Liquid syntax patterns, SCSS presence, documentation, accessibility hints, and parameter consistency. Returns structured errors and warnings. Read-only.

Inputs: name (required).

jekyll_config_getA

Read Jekyll configuration (_config.yml etc.) with sensitive keys redacted. Use to understand site settings. Never returns API keys, tokens, or credentials. Read-only.

Inputs: no named parameters.

jekyll_docs_createB

Create component documentation (Overview, Usage, Parameters, Variants, Example, Accessibility, Notes). Modifies project files. Supports dry_run.

Inputs: name (required), dry_run, overview, variants, +1 more.

jekyll_docs_updateC

Update or regenerate documentation for a component. Fills gaps from detected Liquid parameters when possible. Modifies project files. Supports dry_run.

Inputs: name (required), notes, dry_run, overview, +3 more.

jekyll_doctorA

Run jekyll doctor to check for common configuration and environment issues. Read-only regarding project source files.

Inputs: no named parameters.

jekyll_include_getA

Read a Liquid include by name or relative path. Returns source, front matter, parameter analysis, and basic syntax checks. Read-only. Never executes Liquid.

Inputs: name (required).

jekyll_include_listA

List Liquid includes under _includes (excluding the components/ and sections/ subtrees, which have dedicated tools). Read-only. Never executes Liquid.

Inputs: no named parameters.

jekyll_layout_getA

Read a Liquid layout by name or relative path. Returns source, front matter, and analysis. Read-only. Never executes Liquid.

Inputs: name (required).

jekyll_layout_listA

List Liquid layouts under _layouts. Read-only. Never executes Liquid.

Inputs: no named parameters.

jekyll_project_infoA

Return a high-level summary of the Jekyll project: whether it is a Jekyll site, counts of layouts/includes/components, presence of SCSS/JS/docs, and current write mode. Use this first to orient yourself. Does not modify any files. Never exposes secrets.

Inputs: no named parameters.

jekyll_project_scanA

Scan the project and return a structured architecture map: config files, key directories, layouts, includes, components (with liquid/scss/js/docs paths), sections, SCSS and JS files. Use when you need a detailed map before creating or modifying components. Read-only.

Inputs: force.

jekyll_scss_createB

Create a new SCSS partial (e.g. component or utility). Writes under the configured SCSS tree. Modifies project files. Supports dry_run.

Inputs: name (required), content, dry_run, category.

jekyll_scss_getA

Read an SCSS file and return its source plus analysis (imports, variables, CSS custom properties, mixins, selectors). Provide a path relative to the project root (from jekyll_scss_list). Read-only.

Inputs: path (required).

jekyll_scss_listA

List SCSS/CSS files under the project SCSS root and detect architecture layers (tokens, mixins, base, utilities, components, sections). Use to understand stylesheet structure before editing. Read-only.

Inputs: no named parameters.

jekyll_token_getA

Get tokens matching a name or category (e.g. 'color', 'spacing', '--color-primary'). Read-only.

Inputs: name (required).

jekyll_token_listA

List design tokens discovered in SCSS (CSS custom properties and Sass variables), categorized by color, spacing, radius, shadow, typography, breakpoints, motion, etc. Read-only.

Inputs: no named parameters.

jekyll_token_updateB

Update or append a design token declaration in an SCSS/CSS file. Prefer CSS custom properties. Modifies project files. Supports dry_run.

Inputs: file (required), name (required), value (required), dry_run.

jekyll_validateA

Run safe project-level validation: component structure, Liquid patterns, front matter, optional Jekyll build. Returns structured errors and warnings. Does not execute arbitrary shell.

Inputs: run_build.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 23 tools

    Disambiguation4/5

    Tools are cleanly partitioned by resource (project, layout, include, component, scss, token, docs) with distinct actions. A few pairs invite mild confusion—jekyll_project_info vs jekyll_project_scan, jekyll_validate vs jekyll_component_validate, and jekyll_validate vs jekyll_build vs jekyll_doctor—but their descriptions clearly delineate scope.

    Naming Consistency5/5

    Every tool follows the exact jekyll_{resource}_{action} snake_case convention (e.g. jekyll_component_create, jekyll_scss_list, jekyll_token_update). The pattern is uniform across all 23 tools with no camelCase or verb-style deviations.

    Tool Count4/5

    23 tools is on the higher side but the domain (components, layouts, includes, SCSS, tokens, docs, validation, build) is genuinely broad and the tools are cleanly grouped. Each entry has a distinct function, so the count is defensible rather than bloated.

    Completeness4/5

    Strong coverage of a read-and-manage workflow: full list/get/create/delete/validate for components plus project info, tokens, docs, build, and doctor. Notable gap: no jekyll_component_update (and no SCSS update/delete), so editing an existing component's files has no dedicated tool despite guidance to 'use before editing.'

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      Acts as the 'Hands and Eyes' for an Autonomous AI Agent, bridging Large Language Models and your local development environment to enable safe file manipulation, context reading, command execution, and documentation verification.
      9
      2
      ISC
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI agents to index and search local skill libraries, persist and resume task checkpoints, and run validated workflow plans with controlled approval and write permissions.
      34 npm
      MIT