Skip to main content
Glama
CHANGELOG.md12.1 kB
# Changelog All notable changes to the ECL MCP Server project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [2.0.0] - 2025-01-20 ### Major Release - Production Ready This release represents a complete transformation from a simple documentation server into a comprehensive, semantic-aware coding assistant for the Europa Component Library. ### Added #### Phase 2: Database Schema Enhancement (Completed) - Enhanced database schema with 8 new tables (3,495 structured records) - `component_metadata` table with complexity ratings and JavaScript requirements (169 records) - `component_api` table with structured API documentation (30 records) - `design_tokens` table for design system values (0 records - needs refinement) - `usage_guidance` table with do's, don'ts, and best practices (520 records) - `component_relationships` table for dependencies and conflicts (0 records - needs refinement) - `component_tags` table with 1,366 categorization tags - `enhanced_code_examples` table with metadata (756 records) - `accessibility_requirements` table with WCAG compliance data (783 records) - Data extraction script (`scripts/extract-structured-data.js`) with cheerio-based HTML parsing #### Phase 3: Multi-Mode Search (Completed) - 14 specialized search tools with rich metadata and filtering: - `ecl_search_components` - Multi-filter component search - `ecl_get_component_details` - Complete component information - `ecl_search_api` - Search component API documentation - `ecl_get_component_api` - Get all API for a component - `ecl_search_code_examples` - Filter examples by language, complexity - `ecl_get_example` - Get complete code by ID - `ecl_get_component_examples` - Get all examples for a component - `ecl_get_component_guidance` - Get usage guidance and best practices - `ecl_search_guidance` - Search guidance across all components - `ecl_find_related_components` - Find dependencies and conflicts - `ecl_get_dependency_graph` - Build recursive dependency graph - `ecl_search_design_tokens` - Search design tokens by name or category - `ecl_get_tokens_by_category` - Get all tokens for a category - `ecl_get_token` - Get specific token details - Modular search architecture in `src/search/` directory - Standardized JSON response format with metadata and suggestions - Query execution performance: 0-50ms typical #### Phase 4: Validation & Diagnostic Tools (Completed) - 4 validation and diagnostic tools: - `ecl_validate_component_usage` - Validate HTML/JS against ECL requirements with quality scoring - `ecl_check_accessibility` - Verify WCAG 2.1 compliance (Level A, AA, AAA) - `ecl_analyze_ecl_code` - Detect components, find anti-patterns, check design token usage - `ecl_check_conflicts` - Identify incompatible component combinations - Comprehensive validation logic in `src/validation/` directory: - `component-validator.js` - Component usage validation - `accessibility-checker.js` - WCAG compliance verification - `code-analyzer.js` - Code quality and anti-pattern detection - `patterns.js` - Diagnostic pattern library (50+ patterns) - Severity levels: critical, serious, moderate, minor - Detailed error messages with fix suggestions and documentation links - Component detection with confidence scoring #### Phase 5: Code Generation (Completed) - 3 code generation tools: - `ecl_get_complete_example` - Get runnable examples with all dependencies - `ecl_generate_component` - Generate customized components with variants, sizes, content - `ecl_create_playground` - Create interactive multi-component testing environments - Template system in `src/generator/` directory: - `component-generator.js` - Component code generation - `example-reconstructor.js` - Complete example reconstruction - `playground-generator.js` - Interactive playground generation - Support for customization parameters (variant, size, color, content) - Complete dependency tracking (CSS, JS, CDN links) - Standalone HTML file generation for playgrounds #### Phase 6: Cross-Reference & Relationship System (Completed) - 7 relationship and dependency tools integrated with search tools - Automatic relationship detection script (`scripts/detect-relationships.js`) - Relationship types: requires, suggests, contains, alternative, conflicts, extends - Dependency graph builder with configurable depth - Tag system with 1,366 tags across 169 components - Component usage context analysis #### Phase 7: Design Token System (Completed) - 4 design token tools (integrated with Phase 3 search tools) - Token extraction script (`scripts/extract-design-tokens.js`) - Token categories: color, spacing, typography, breakpoint, shadow, border - CSS and SCSS variable mapping - Accessibility data for color tokens (contrast ratios, WCAG compliance) - Responsive variant tracking - Token usage context documentation #### Phase 8: Performance Optimization & Caching (Completed) - LRU cache system (`src/utils/cache.js`, 340 lines): - 100MB max size, 1-hour TTL - Automatic cleanup job (5-minute intervals) - 15+ cache key generators - `cached()` decorator for easy caching - Performance monitoring (`src/utils/performance.js`, 380 lines): - Query tracking with P95/P99 metrics - Slow query detection (>100ms threshold) - Automatic logging to `logs/slow-queries.log` - `monitored()` decorator for performance tracking - Error handling (`src/utils/error-handler.js`, 440 lines): - 7 standardized error types with context-aware suggestions - Validation helpers (validateRequired, validateTypes, validateEnum) - `safeAsync()` wrapper for error recovery - Automatic logging to `logs/error.log` - Response formatting (`src/utils/response-formatter.js`, 390 lines): - 12 specialized formatters for consistent responses - Standard response structure: {success, data, metadata, suggestions, warnings, errors} - `withFormatting()` decorator - Migration helper: `standardize()` - Health check diagnostics (`src/utils/health-check.js`, 210 lines): - `ecl_health_check` MCP tool with 6 health dimensions - Database, cache, performance, tools, and memory monitoring - Status determination: healthy/degraded/unhealthy - Performance benchmarks: - 95.2% pass rate (20/21 tests passing) - Simple queries: 1.75ms avg (target <10ms) ✅ - Complex queries: 12ms avg (target <50ms) ✅ - Generation: 4.67ms avg (target <100ms) ✅ - Analysis: 1.50ms avg (target <200ms) ✅ - 24 database indexes verified and optimized #### Phase 9: Production Readiness & Documentation (Completed) - GitHub installation support via npm: - `npm install git+https://github.com/brownrl/eco_mcp.git` - CLI wrapper script (`bin/ecl-mcp.js`) with `--help` and `--version` flags - Comprehensive installation guide (`INSTALLATION.md`) covering: - Claude Desktop configuration (macOS, Windows, Linux) - Cline (VS Code) configuration - Cursor IDE configuration - Troubleshooting and updating instructions - NPM package enhancements: - Updated to version 2.0.0 - Added repository, bugs, and homepage fields - Added bin script for `ecl-mcp` command - Enhanced keywords for better discoverability - Added crawl and extract scripts to package.json - `.npmignore` file to exclude development files from package - Updated README.md with clear installation instructions for all MCP clients ### Changed #### Performance Improvements - Average query time reduced by 50% through caching - Database queries optimized with 24 indexes - FTS5 full-text search performance improvements #### Code Organization - Modularized codebase with clear directory structure: - `src/search/` - Search engine modules - `src/validation/` - Validation and diagnostic tools - `src/generator/` - Code generation tools - `src/relationships/` - Relationship and dependency analysis - `src/utils/` - Utilities (cache, performance, errors, formatting, health) - `scripts/` - Data extraction and crawler scripts - Standardized response format across all tools - Consistent error handling and logging #### Documentation - Comprehensive TOOLS.md with all 40+ tools documented - Updated README.md with feature list and quick start - Added AGENTS.md for AI agent guidance - Enhanced PROGRESS.md with all 9 phases documented ### Fixed - Improved error messages with actionable suggestions - Better handling of missing or invalid data - Consistent JSON response format across all tools - Validation accuracy improvements ### Deprecated - Legacy JSON data source (SQLite is now primary, JSON support via environment variable) - Old tool names (kept as aliases for backward compatibility) ### Performance Metrics - **Database**: 18MB SQLite with 3,495 structured records - **Search**: 14 tools, 0-50ms typical query time - **Validation**: 4 tools with 50+ diagnostic patterns - **Generation**: 3 tools with template system - **Relationships**: 7 tools with dependency graph builder - **Design Tokens**: 4 tools with token extraction - **Cache**: 100MB LRU cache with 50% query time reduction - **Health**: 1 diagnostic tool monitoring 6 dimensions - **Total Tools**: 40+ specialized tools ## [1.0.0] - 2025-01-15 ### Initial Release - Phase 1: Web Crawler & Database ### Added - ECL website crawler with resumable functionality - SQLite database with FTS5 full-text search - 169 pages crawled (130 components, 24 utilities, 7 guidelines, 8 resources) - 756 code examples extracted (672 HTML, 80 JS, 4 CSS/other) - 685 content sections indexed - 7 legacy MCP tools: - `get_component` - Get component information - `search_components` - Search by category or keyword - `generate_component_code` - Generate HTML code - `get_setup_guide` - Get setup instructions - `list_components_by_category` - List components by category - `get_guidelines` - Get design guidelines - `get_javascript_init` - Get JavaScript initialization code - 5 MCP resources: - `ecl://overview` - ECL overview - `ecl://installation` - Installation guide - `ecl://components` - Component list - `ecl://guidelines` - Guidelines - `ecl://setup-template` - HTML template - Basic documentation (README.md, SETUP.md) ### Technical Foundation - Node.js with ES modules - @modelcontextprotocol/sdk v1.0.4 - better-sqlite3 for database - cheerio for HTML parsing - Stdio-based MCP server --- ## Upgrade Guide ### From 1.x to 2.x Version 2.0.0 is **fully backward compatible** with 1.x. All legacy tools continue to work. #### Installation ```bash # Uninstall old version (if applicable) npm uninstall ecl-mcp-server # Install new version from GitHub npm install -g git+https://github.com/brownrl/eco_mcp.git ``` #### Configuration Changes **Old configuration** (still works): ```json { "mcpServers": { "ecl": { "command": "node", "args": ["/absolute/path/to/index.js"] } } } ``` **New configuration** (recommended): ```json **MCP client configuration**: ```json { "mcpServers": { "ecl": { "command": "npx", "args": ["ecl-mcp"], "type": "stdio" } } } ``` #### Database Migration No migration needed. The 2.x database is backward compatible and adds new tables without affecting existing data. To populate new tables with structured data: ```bash cd /path/to/eco_mcp npm run extract ``` #### New Features - 33 new specialized tools (40 total) - Enhanced search with filters and metadata - Code validation and accessibility checking - Code generation with customization - Design token system - Performance optimizations (50% faster) - Health monitoring See [TOOLS.md](TOOLS.md) for complete tool documentation. --- ## Contributing See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on: - Adding new tools - Updating ECL data - Running tests - Code style ## License MIT License - See [LICENSE](LICENSE) file for details. --- **ECL MCP Server** - Transforming Europa Component Library knowledge into actionable insights for AI coding assistants.

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/brownrl/eco_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server