mirror of
https://github.com/SuperClaude-Org/SuperClaude_Framework.git
synced 2025-12-29 16:16:08 +00:00
refactor: consolidate MCP integration to unified gateway
**Changes**: - Remove individual MCP server docs (superclaude/mcp/*.md) - Remove MCP server configs (superclaude/mcp/configs/*.json) - Delete MCP docs component (setup/components/mcp_docs.py) - Simplify installer (setup/core/installer.py) - Update components for unified gateway approach **Rationale**: - Unified gateway (airis-mcp-gateway) provides all MCP servers - Individual docs/configs no longer needed (managed centrally) - Reduces maintenance burden and file count - Simplifies installation process **Files Removed**: 17 MCP files (docs + configs) **Installer Changes**: Removed legacy MCP installation logic 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -138,12 +138,12 @@ def get_components_to_install(
|
||||
# Explicit components specified
|
||||
if args.components:
|
||||
if "all" in args.components:
|
||||
components = ["framework_docs", "commands", "agents", "modes", "mcp", "mcp_docs"]
|
||||
components = ["framework_docs", "commands", "agents", "modes", "mcp"]
|
||||
else:
|
||||
components = args.components
|
||||
|
||||
# If mcp or mcp_docs is specified, handle MCP server selection
|
||||
if ("mcp" in components or "mcp_docs" in components) and not args.yes:
|
||||
# If mcp is specified, handle MCP server selection
|
||||
if "mcp" in components and not args.yes:
|
||||
selected_servers = select_mcp_servers(registry)
|
||||
if not hasattr(config_manager, "_installation_context"):
|
||||
config_manager._installation_context = {}
|
||||
@@ -151,26 +151,16 @@ def get_components_to_install(
|
||||
selected_servers
|
||||
)
|
||||
|
||||
# If the user selected some servers, ensure both mcp and mcp_docs are included
|
||||
# If the user selected some servers, ensure mcp is included
|
||||
if selected_servers:
|
||||
if "mcp" not in components:
|
||||
components.append("mcp")
|
||||
logger.debug(
|
||||
f"Auto-added 'mcp' component for selected servers: {selected_servers}"
|
||||
)
|
||||
if "mcp_docs" not in components:
|
||||
components.append("mcp_docs")
|
||||
logger.debug(
|
||||
f"Auto-added 'mcp_docs' component for selected servers: {selected_servers}"
|
||||
)
|
||||
|
||||
logger.info(f"Final components to install: {components}")
|
||||
|
||||
# If mcp_docs was explicitly requested but no servers selected, allow auto-detection
|
||||
elif not selected_servers and "mcp_docs" in components:
|
||||
logger.info("mcp_docs component will auto-detect existing MCP servers")
|
||||
logger.info("Documentation will be installed for any detected servers")
|
||||
|
||||
return components
|
||||
|
||||
# Interactive two-stage selection
|
||||
@@ -227,7 +217,7 @@ def select_mcp_servers(registry: ComponentRegistry) -> List[str]:
|
||||
try:
|
||||
# Get MCP component to access server list
|
||||
mcp_instance = registry.get_component_instance(
|
||||
"mcp", get_home_directory() / ".claude"
|
||||
"mcp", DEFAULT_INSTALL_DIR
|
||||
)
|
||||
if not mcp_instance or not hasattr(mcp_instance, "mcp_servers"):
|
||||
logger.error("Could not access MCP server information")
|
||||
@@ -325,16 +315,7 @@ def select_framework_components(
|
||||
component_options.append(f"{component_name} - {description}")
|
||||
component_info[component_name] = metadata
|
||||
|
||||
# Add MCP documentation option
|
||||
if selected_mcp_servers:
|
||||
mcp_docs_desc = f"MCP documentation for {', '.join(selected_mcp_servers)} (auto-selected)"
|
||||
component_options.append(f"mcp_docs - {mcp_docs_desc}")
|
||||
auto_selected_mcp_docs = True
|
||||
else:
|
||||
component_options.append(
|
||||
"mcp_docs - MCP server documentation (none selected)"
|
||||
)
|
||||
auto_selected_mcp_docs = False
|
||||
# MCP documentation is integrated into airis-mcp-gateway, no separate component needed
|
||||
|
||||
print(f"\n{Colors.CYAN}{Colors.BRIGHT}{'='*51}{Colors.RESET}")
|
||||
print(
|
||||
@@ -358,21 +339,12 @@ def select_framework_components(
|
||||
selected_components = ["framework_docs"]
|
||||
else:
|
||||
selected_components = []
|
||||
all_components = framework_components + ["mcp_docs"]
|
||||
all_components = framework_components
|
||||
|
||||
for i in selections:
|
||||
if i < len(all_components):
|
||||
selected_components.append(all_components[i])
|
||||
|
||||
# Auto-select MCP docs if not explicitly deselected and we have MCP servers
|
||||
if auto_selected_mcp_docs and "mcp_docs" not in selected_components:
|
||||
# Check if user explicitly deselected it
|
||||
mcp_docs_index = len(framework_components) # Index of mcp_docs in the menu
|
||||
if mcp_docs_index not in selections:
|
||||
# User didn't select it, but we auto-select it
|
||||
selected_components.append("mcp_docs")
|
||||
logger.info("Auto-selected MCP documentation for configured servers")
|
||||
|
||||
# Always include MCP component if servers were selected
|
||||
if selected_mcp_servers and "mcp" not in selected_components:
|
||||
selected_components.append("mcp")
|
||||
@@ -601,9 +573,6 @@ def perform_installation(
|
||||
if summary["installed"]:
|
||||
logger.info(f"Installed components: {', '.join(summary['installed'])}")
|
||||
|
||||
if summary["backup_path"]:
|
||||
logger.info(f"Backup created: {summary['backup_path']}")
|
||||
|
||||
else:
|
||||
logger.error(
|
||||
f"Installation completed with errors in {duration:.1f} seconds"
|
||||
|
||||
@@ -79,14 +79,6 @@ def verify_superclaude_file(file_path: Path, component: str) -> bool:
|
||||
"MODE_Task_Management.md",
|
||||
"MODE_Token_Efficiency.md",
|
||||
],
|
||||
"mcp_docs": [
|
||||
"MCP_Context7.md",
|
||||
"MCP_Sequential.md",
|
||||
"MCP_Magic.md",
|
||||
"MCP_Playwright.md",
|
||||
"MCP_Morphllm.md",
|
||||
"MCP_Serena.md",
|
||||
],
|
||||
}
|
||||
|
||||
# For commands component, verify it's in the sc/ subdirectory
|
||||
@@ -427,8 +419,7 @@ def _custom_component_selection(
|
||||
"core": "Core Framework Files (CLAUDE.md, FLAGS.md, PRINCIPLES.md, etc.)",
|
||||
"commands": "superclaude Commands (commands/sc/*.md)",
|
||||
"agents": "Specialized Agents (agents/*.md)",
|
||||
"mcp": "MCP Server Configurations",
|
||||
"mcp_docs": "MCP Documentation",
|
||||
"mcp": "MCP Server Configurations (airis-mcp-gateway)",
|
||||
"modes": "superclaude Modes",
|
||||
}
|
||||
|
||||
@@ -568,9 +559,8 @@ def display_component_details(component: str, info: Dict[str, Any]) -> Dict[str,
|
||||
},
|
||||
"mcp": {
|
||||
"files": "MCP server configurations in .claude.json",
|
||||
"description": "MCP server configurations",
|
||||
"description": "MCP server configurations (airis-mcp-gateway)",
|
||||
},
|
||||
"mcp_docs": {"files": "MCP/*.md", "description": "MCP documentation files"},
|
||||
"modes": {"files": "MODE_*.md", "description": "superclaude operational modes"},
|
||||
}
|
||||
|
||||
|
||||
@@ -389,9 +389,6 @@ def perform_update(
|
||||
if summary.get("updated"):
|
||||
logger.info(f"Updated components: {', '.join(summary['updated'])}")
|
||||
|
||||
if summary.get("backup_path"):
|
||||
logger.info(f"Backup created: {summary['backup_path']}")
|
||||
|
||||
else:
|
||||
logger.error(f"Update completed with errors in {duration:.1f} seconds")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user