Some checks failed
DSS Project Analysis / dss-context-update (push) Has been cancelled
This reverts commit 72cb7319f5.
168 lines
4.6 KiB
Python
168 lines
4.6 KiB
Python
"""
|
|
MCP Integration Layer for DSS Context Compiler
|
|
Provides MCP-compliant tool wrappers for the 5 new context tools.
|
|
"""
|
|
|
|
from typing import Dict, Any
|
|
import json
|
|
from . import (
|
|
get_active_context,
|
|
resolve_token,
|
|
validate_manifest,
|
|
list_skins,
|
|
get_compiler_status
|
|
)
|
|
|
|
# MCP Tool Definitions
|
|
|
|
def mcp_get_resolved_context(manifest_path: str, debug: bool = False, force_refresh: bool = False) -> str:
|
|
"""
|
|
MCP Tool: Get Active Context
|
|
|
|
Returns the fully resolved JSON context for a project.
|
|
Set debug=True to see provenance (which layer defined which token).
|
|
Set force_refresh=True to bypass cache (for long-running servers).
|
|
|
|
Args:
|
|
manifest_path: Path to ds.config.json
|
|
debug: Enable debug provenance tracking
|
|
force_refresh: Bypass cache and recompile
|
|
|
|
Returns:
|
|
JSON string with resolved context
|
|
"""
|
|
try:
|
|
return get_active_context(manifest_path, debug, force_refresh)
|
|
except Exception as e:
|
|
return json.dumps({"error": str(e), "status": "failed"})
|
|
|
|
|
|
def mcp_resolve_token(manifest_path: str, token_path: str, force_refresh: bool = False) -> str:
|
|
"""
|
|
MCP Tool: Resolve Token
|
|
|
|
Resolves a specific token value (e.g. 'colors.primary') through the cascade.
|
|
Set force_refresh=True to bypass cache (for long-running servers).
|
|
|
|
Args:
|
|
manifest_path: Path to ds.config.json
|
|
token_path: Dot-notation path to token (e.g. 'colors.primary')
|
|
force_refresh: Bypass cache and recompile
|
|
|
|
Returns:
|
|
Resolved token value or error message
|
|
"""
|
|
try:
|
|
return resolve_token(manifest_path, token_path, force_refresh)
|
|
except Exception as e:
|
|
return f"Error resolving token: {str(e)}"
|
|
|
|
|
|
def mcp_validate_manifest(manifest_path: str) -> str:
|
|
"""
|
|
MCP Tool: Validate Manifest
|
|
|
|
Validates the ds.config.json against the schema.
|
|
|
|
Args:
|
|
manifest_path: Path to ds.config.json
|
|
|
|
Returns:
|
|
Validation result message
|
|
"""
|
|
try:
|
|
return validate_manifest(manifest_path)
|
|
except Exception as e:
|
|
return f"Validation error: {str(e)}"
|
|
|
|
|
|
def mcp_list_skins() -> str:
|
|
"""
|
|
MCP Tool: List Skins
|
|
|
|
Lists all available skins in the registry.
|
|
|
|
Returns:
|
|
JSON array of skin IDs
|
|
"""
|
|
try:
|
|
return list_skins()
|
|
except Exception as e:
|
|
return json.dumps({"error": str(e), "skins": []})
|
|
|
|
|
|
def mcp_get_compiler_status() -> str:
|
|
"""
|
|
MCP Tool: Get Compiler Status
|
|
|
|
Returns the health and configuration of the Context Compiler.
|
|
|
|
Returns:
|
|
JSON object with compiler status
|
|
"""
|
|
try:
|
|
return get_compiler_status()
|
|
except Exception as e:
|
|
return json.dumps({"error": str(e), "status": "error"})
|
|
|
|
|
|
# MCP Tool Registry
|
|
# This can be imported by dss-mcp-server.py to register the tools
|
|
|
|
MCP_TOOLS = {
|
|
"dss_get_resolved_context": {
|
|
"function": mcp_get_resolved_context,
|
|
"description": "Get fully resolved design system context for a project",
|
|
"parameters": {
|
|
"manifest_path": {
|
|
"type": "string",
|
|
"description": "Path to ds.config.json",
|
|
"required": True
|
|
},
|
|
"debug": {
|
|
"type": "boolean",
|
|
"description": "Enable debug provenance tracking",
|
|
"required": False,
|
|
"default": False
|
|
}
|
|
}
|
|
},
|
|
"dss_resolve_token": {
|
|
"function": mcp_resolve_token,
|
|
"description": "Resolve a specific design token through the cascade",
|
|
"parameters": {
|
|
"manifest_path": {
|
|
"type": "string",
|
|
"description": "Path to ds.config.json",
|
|
"required": True
|
|
},
|
|
"token_path": {
|
|
"type": "string",
|
|
"description": "Dot-notation path to token (e.g. 'colors.primary')",
|
|
"required": True
|
|
}
|
|
}
|
|
},
|
|
"dss_validate_manifest": {
|
|
"function": mcp_validate_manifest,
|
|
"description": "Validate project manifest against schema",
|
|
"parameters": {
|
|
"manifest_path": {
|
|
"type": "string",
|
|
"description": "Path to ds.config.json",
|
|
"required": True
|
|
}
|
|
}
|
|
},
|
|
"dss_list_skins": {
|
|
"function": mcp_list_skins,
|
|
"description": "List all available design system skins",
|
|
"parameters": {}
|
|
},
|
|
"dss_get_compiler_status": {
|
|
"function": mcp_get_compiler_status,
|
|
"description": "Get Context Compiler health and configuration",
|
|
"parameters": {}
|
|
}
|
|
}
|