#!/usr/bin/env python3 """ Comparison script to validate that all initial design functionality is implemented """ import re from pathlib import Path def extract_tool_names_from_file(file_path): """Extract tool names from a Python file using regex""" tools = [] try: with open(file_path) as f: content = f.read() # Find all @mcp_tool decorators tool_patterns = re.findall(r'@mcp_tool\(name="([^"]+)"', content) tools.extend(tool_patterns) except Exception as e: print(f"Error reading {file_path}: {e}") return tools def compare_implementations(): """Compare the initial design with current implementation""" print("Enhanced MCP Tools - Implementation Validation") print("=" * 60) # Extract tools from initial design initial_design_file = Path("/home/rpm/claude/enhanced-mcp-tools/.initial-design/scaffold.py") initial_tools = extract_tool_names_from_file(initial_design_file) # Extract tools from current implementation (enhanced_mcp modules) enhanced_mcp_dir = Path("/home/rpm/claude/enhanced-mcp-tools/enhanced_mcp") current_tools = [] # Extract tools from all enhanced_mcp modules for module_file in enhanced_mcp_dir.glob("*.py"): if module_file.name != "__init__.py": module_tools = extract_tool_names_from_file(module_file) current_tools.extend(module_tools) print(f"\nInitial Design Tools: {len(initial_tools)}") print(f"Current Implementation Tools: {len(current_tools)}") # Compare tools initial_set = set(initial_tools) current_set = set(current_tools) missing_tools = initial_set - current_set extra_tools = current_set - initial_set common_tools = initial_set & current_set print(f"\nCommon Tools: {len(common_tools)}") print(f"Missing from Implementation: {len(missing_tools)}") print(f"Extra in Implementation: {len(extra_tools)}") if missing_tools: print("\n❌ Missing Tools:") for tool in sorted(missing_tools): print(f" - {tool}") if extra_tools: print("\n✅ Extra Tools (improvements):") for tool in sorted(extra_tools): print(f" - {tool}") if common_tools: print(f"\n✅ Implemented Tools ({len(common_tools)}):") for tool in sorted(common_tools): print(f" - {tool}") # Overall status print("\n" + "=" * 60) coverage = len(common_tools) / len(initial_tools) * 100 if initial_tools else 0 print(f"Implementation Coverage: {coverage:.1f}%") if coverage >= 100: print("✅ ALL initial design tools are implemented!") elif coverage >= 80: print("✅ Good coverage - most tools implemented") else: print("⚠️ Significant tools still need implementation") if __name__ == "__main__": compare_implementations()