ECL MCP Server

ECL MCP Server

Provides comprehensive access to the Europa Component Library (ECL) design system with semantic search across 50+ components, code examples, accessibility requirements, design tokens, and validation tools for building European Commission websites.

Category
Visit Server

README

EC Europa Component Library MCP Server

A Model Context Protocol (MCP) server that provides AI agents with access to the European Commission's Component Library documentation.

Features

  • Full-text search across 159 documentation pages
  • Structured data with categories and hierarchical paths
  • Code examples extraction - 270 clean HTML examples from 85 pages
  • Complete coverage of EC components, forms, media, navigation, utilities, and layouts

Installation

Install from GitHub:

npm install github:brownrl/ecl_mcp

Configuration

Charm Crush

Create a .crush.json file in your project root:

{
  "$schema": "https://charm.land/crush.json",
  "mcp": {
    "ecl": {
      "command": "npx",
      "type": "stdio",
      "args": [
        "ecl-mcp"
      ]
    }
  }
}

VSCode with MCP Extension

Create a .vscode/mcp.json file in your project root:

{
  "servers": {
    "ecl": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "ecl-mcp"
      ]
    }
  }
}

Claude Desktop

Add to your Claude Desktop configuration:

{
  "mcpServers": {
    "ecl": {
      "command": "npx",
      "type": "stdio",
      "args": [
        "ecl-mcp"
      ]
    }
  }
}

Available Tools

start_here

CALL THIS FIRST! Essential setup guide with asset download script and quick start instructions. Returns complete workflow for building ECL pages. ALL other tools assume you have to read this first.

Parameters: None


search_documentation_pages

Search the EC Europa Component Library documentation. Returns matching pages with their titles, URLs, categories, and hierarchy information.

Parameters:

  • query (string, required): Search query to find relevant documentation pages
  • limit (number, optional): Maximum number of results to return (default: 10)

get_documentation_page

Get the complete HTML content of a specific documentation page by URL. Use this after searching to retrieve full code examples and detailed documentation.

Parameters:

  • url (string, required): The full URL of the page to retrieve (from search results)
  • content (boolean, optional): If true (default), returns cleaned page content. If false, returns raw HTML.

get_documentation_page_examples

Get code examples from a specific documentation page by URL. Returns only the code blocks with their labels, making it faster than parsing full HTML.

Parameters:

  • url (string, required): The full URL of the page to retrieve examples from (from search results)

get_starter_template

Get a basic HTML starter template with proper ECL local assets setup, ready to use. Use this as the foundation before adding ECL components. Returns a complete HTML page with correct script tags, CSS links, and local asset URLs.

Parameters:

  • title (string, optional): Page title (optional, defaults to "ECL Page")

get_documentation_pages_list

Get the complete list of all pages in the ECL documentation database. Returns URL, title, category, and hierarchy information for all 159 pages.

Parameters: None


list_recipes

List all ECL recipes - pre-built component combinations and patterns. Returns all recipes sorted by ID with metadata. More comprehensive than individual component docs.

Parameters: None


get_recipe

Get the complete recipe by ID. Returns full markdown content with step-by-step instructions, code examples, and best practices. Use this after recipe_search to get implementation details.

Parameters:

  • id (number, required): Recipe ID from recipe_search results

search_examples

Search all code examples using natural language queries. Returns matching examples with their code, labels, and source page URLs. Useful for finding specific HTML patterns, component implementations, or usage examples.

Parameters:

  • query (string, required): Search query to find relevant code examples (e.g., "button primary", "checkbox required", "form validation")
  • limit (number, optional): Maximum number of results to return (default: 10)

get_example

Get a specific code example by its ID. Use this after search_examples to retrieve the full code for a specific example.

Parameters:

  • id (number, required): The example ID from search_examples results

Database

The server uses a SQLite database (ecl-database.sqlite, ~21MB) containing:

Documentation:

  • 159 crawled documentation pages
  • Full HTML content and cleaned content versions
  • Metadata (titles, categories, hierarchical paths)
  • FTS5 full-text search index

Code Examples:

  • 270 extracted code examples from 85 pages
  • Labeled examples with positions
  • Separate FTS5 index for fast code search

Recipes:

  • Curated implementation patterns and workflows
  • Step-by-step guides with code
  • Difficulty levels and component lists
  • FTS5 indexed for search

Technical Details

MCP Protocol: Model Context Protocol v1.0
Transport: stdio
ECL Version: v4.11.1
Database: SQLite 3 with FTS5 full-text search
CDN: Official EC CDN (cdn1.fpfis.tech.ec.europa.eu)

License

None, I'm just sharing this as-is for educational purposes. please clone and use as you see fit!

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured