Skip to content

feat: Add an MCP server#516

Merged
simeonoff merged 43 commits intomasterfrom
simeonoff/mcp-server
Feb 20, 2026
Merged

feat: Add an MCP server#516
simeonoff merged 43 commits intomasterfrom
simeonoff/mcp-server

Conversation

@simeonoff
Copy link
Copy Markdown
Contributor

@simeonoff simeonoff commented Dec 12, 2025

Closes #521

@simeonoff simeonoff force-pushed the simeonoff/mcp-server branch from 835cea5 to a308d95 Compare December 19, 2025 11:02
simeonoff and others added 24 commits January 19, 2026 17:01
Add designSystem and variant parameters to create_component_theme tool,
enabling component themes to use the correct schema (e.g., -bootstrap-schema,
-material-schema) based on the user's design system choice.

Changes:
- Add designSystem and variant parameters (default to material/light)
- Pass schema as first parameter to component theme functions
- Import schemas module in CSS generator for compilation
- Update tool descriptions with design system examples
- Add comprehensive tests for different design systems and variants

BREAKING CHANGE: All component theme function calls now include schema parameter
- Add MCP Server section to main README.md with overview, quick start, and client setup instructions
- Expand src/mcp/README.md with React and Blazor platform support
- Document all 8 tools including get_component_design_tokens and create_component_theme
- Add 2-5 meaningful prompt examples for each tool
- Include setup instructions for VS Code, WebStorm, Claude Desktop, and Cursor
- Provide both local development and published package (npx) configuration paths
- Rename PLAN.md to ROADMAP.md for clarity
- Remove outdated IMPROVEMENTS.md file
- Update package.json to remove unused mcp:dev script
Add new MCP tool that retrieves Ignite UI Theming palette colors as CSS
variable references with optional contrast and opacity variations.

Features:
- Retrieves any palette color (primary, secondary, gray, surface, info, success, warn, error)
- Supports all shade variants (50-900, A100-A700)
- Returns contrast colors via 'contrast' parameter
- Applies opacity using CSS relative color syntax
- Validates gray colors don't use accent shades

This consolidates the planned get_color and get_contrast_color tools from
the roadmap into a single, more versatile tool using a contrast boolean flag.

Changes:
- Add getColorSchema with Zod validation and gray shade validation
- Implement handleGetColor handler with usage examples
- Register get_color tool in MCP server
- Update ROADMAP.md to reflect tool consolidation and progress
- add `licensed` parameter to all theming tools for Angular projects
- update Sass generator to use `@infragistics/igniteui-angular/theming`
import
- enhance platform detection to identify licensed package usage
- update tool schemas and parameter descriptions
Adds set_size, set_spacing, and set_roundness tools to the MCP server for controlling component sizing, spacing multipliers, and border-radius factors via CSS variables. This implementation includes:
- Global and component-scoped CSS variable overrides.
- Semantic size keyword support (small, medium, large) mapped to framework defaults.
- New layout documentation resources and detailed tool descriptions.
- Comprehensive schema validation and unit tests for the new handlers.

Also updates the ROADMAP and README to reflect the new capabilities and resource URIs.
…neration

- Add required checklist to get_component_design_tokens for compound components
- Mark missing selectors with skip messaging to handle TODO cases gracefully
- Update create_component_theme guidance with compound completeness rules
- Include canonical combo example demonstrating full multi-call workflow
- Update MCP README documentation with compound checklist and example interaction
- Ensure guidance reduces model variance for compound component expansion
- Add artifact change set with proposal, design, specs, and tasks
…s to main

- Archive compound-theme-guidance to openspec/changes/archive/2026-01-29-compound-theme-guidance/
- Sync delta spec changes to main component-theming spec:
  - MODIFIED: Component token schemas requirement with compound checklist scenarios
  - MODIFIED: Component theming requirement with compound completeness rules
  - ADDED: Compound checklist ordering and minimalism requirement
- All artifacts complete, all tasks complete, delta specs synced
…components

- Refactor component selector infrastructure to support compound component discovery
- Update component theme handlers to integrate compound component workflows
- Modify component documentation generation script
- Update input theme generation with compound component context
- Add test coverage for updated selectors and theme generation
- Add date-picker-theme function with comprehensive tokens documentation
- Refactor date picker and date range picker compound component selectors
- Update input group schema with corrected CSS variable naming
- Add related themes for date picker components (flat-button, calendar)
- Improve selector mapping for Angular and Web Components platforms
- Add file-input compound component with Angular and WC selectors
- Expand grid related themes (combo, calendar, select, icon-button variants)
- Fix CSS selectors for paginator, grid-summary, and grid-toolbar
- Add missing WebComponents selectors for action-strip, paginator, toolbar
- Introduce read_resource tool to fetch MCP resources by URI
- Add new read_resource handler (src/mcp/tools/handlers/resource.ts)
- Add readResourceSchema and ReadResourceParams (validation for the
tool)
- Wire read_resource into the MCP tool suite (exports, registration,
dynamic description)
- Extend tests: resource handler tests and readResourceSchema tests
- Update README with read_resource documentation and usage notes
- Update tests to reflect new CSS fallback prefix (igx- wrapping in
var() fallbacks)
- Update resource descriptions to be driven dynamically from
RESOURCE_DEFINITIONS
… theming into a single COMPONENT_METADATA map
…rnal markdown files and replace tsc with Vite 7.x

- Extract 10 markdown documentation constants from 4 TypeScript files to organized .md files in src/mcp/knowledge/docs/
- Create hierarchical documentation structure: docs/layout/ (functions/, mixins/) and docs/colors/
- Replace TypeScript compiler (tsc) with Vite 7.x for better maintainability and proper markdown tooling support
- Use Vite's native ?raw import feature to load markdown as strings at build time
- Configure Vite with preserveModules to maintain same directory structure as tsc output (no breaking changes)
- Add custom chmodPlugin to set executable permissions on dist/mcp/index.js (replaces inline shell command)
- Keep runtime dependencies external (sass-embedded, zod, @modelcontextprotocol/sdk) as they must be resolved from node_modules
- Add vite-plugin-dts to generate TypeScript declaration files with same structure
- Update package.json build:mcp script to use 'vite build' instead of 'tsc'
- Add markdown module declarations in src/mcp/vite-env.d.ts for TypeScript support
- Update tsconfig.json with vite/client types

Breaking changes: None - build output structure and API remain identical
…mports

- Update src/mcp/resources/presets.ts to import directly from knowledge submodules instead of knowledge/index.js
- Update src/mcp/tools/handlers/platform.ts to import from knowledge/platforms/index.js directly
- Update src/mcp/generators/sass.ts to import from specific knowledge modules
- Use import aliases (e.g. SCHEMAS as SCHEMA_PRESETS) to maintain API compatibility
- Eliminates 7 Rollup circular dependency warnings during Vite build with preserveModules
- Build output and runtime behavior remain unchanged
@simeonoff simeonoff marked this pull request as ready for review February 17, 2026 16:02
@simeonoff simeonoff requested review from Copilot, desig9stein and didimmova and removed request for desig9stein February 17, 2026 16:02
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds an MCP (Model Context Protocol) server to provide AI agents with theming generation capabilities, including platform detection, palette/theme generation, component theming, and documentation resources.

Changes:

  • Added comprehensive OpenSpec documentation for all MCP capabilities
  • Added workflow automation skills and commands for OpenSpec change management
  • Added Biome linting with Prettier integration
  • Updated CI workflows to build before testing

Reviewed changes

Copilot reviewed 174 out of 333 changed files in this pull request and generated no comments.

Show a summary per file
File Description
openspec/specs/*/spec.md Baseline specifications documenting MCP server capabilities (typography, themes, palettes, components, resources, platform detection, layout, elevations, color reference, CSS output)
openspec/changes/*/*.md Change proposals, designs, tasks, and delta specs for refactoring efforts (metadata unification, compound theming, token descriptions, documentation migration, Biome linting)
openspec/config.yaml OpenSpec configuration defining tech stack and spec rules
.opencode/skills/*/SKILL.md Agent skills for OpenSpec workflow operations (new, continue, ff, archive, sync)
.opencode/command/*.md Command definitions for OpenSpec operations
.github/skills/*/SKILL.md GitHub Copilot skill definitions (duplicates of .opencode skills)
.github/prompts/*.prompt.md GitHub prompt definitions for OpenSpec commands
.github/workflows/*.yml CI workflow updates to run build before tests
.crush/skills/*/SKILL.md Crush skill definitions (duplicates)
.crush/commands/opsx/*.md Crush command definitions (duplicates)
.claude/skills/*/SKILL.md Claude skill definitions (duplicates)
.claude/commands/opsx/*.md Claude command definitions (duplicates)
biome.json Biome linting configuration
index.js Re-ordered and reformatted exports
.prettierrc.json Added trailingComma and arrowParens config
.stylelintrc.json Disabled value-no-vendor-prefix rule
.eslintrc.json Reformatted configuration

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@simeonoff simeonoff force-pushed the simeonoff/mcp-server branch from 3ef2a42 to 4da9421 Compare February 18, 2026 08:11
@simeonoff simeonoff added this pull request to the merge queue Feb 20, 2026
Merged via the queue into master with commit 4edf481 Feb 20, 2026
3 checks passed
@simeonoff simeonoff deleted the simeonoff/mcp-server branch February 20, 2026 07:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

MCP Server

3 participants