{
  "markdown": "<div align=\"center\">\n\n<img src=\"https://raw.githubusercontent.com/murugarajr/ohm-mcp/main/image/ohm-mcp.png\" alt=\"OHM-MCP\" width=\"300\">\n\n# OHM-MCP\n\n**AI-Powered Python Refactoring & Code Quality Assistant**\n\nWorks with **GitHub Copilot**, **Cursor IDE**, **Cline**, and any MCP-compatible AI assistant.\n\n[![MCP Registry](https://img.shields.io/badge/MCP_Registry-Official-blue?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyIDJMMyA3VjE3TDEyIDIyTDIxIDE3VjdMMTIgMloiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMiIgZmlsbD0ibm9uZSIvPgo8L3N2Zz4=)](https://registry.modelcontextprotocol.io/v0.1/servers/io.github.Murugarajr%2Fohm-mcp/versions/1.0.1)\n[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)\n[![MCP](https://img.shields.io/badge/MCP-0.1.0+-green.svg)](https://modelcontextprotocol.io)\n[![AST-Based](https://img.shields.io/badge/AST--Based-100%25-brightgreen.svg)]()\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)]()\n\n</div>\n\n---\n\n## ✨ Core Capabilities\n\n<table>\n<tr>\n<td width=\"50%\">\n\n### 🏗️ **Architecture**\n- God Object Detection\n- SOLID Violation Analysis\n- Design Pattern Suggestions\n- Dependency Injection Refactoring\n\n### 🔧 **Code Quality**\n- AST Extract Method (100% accurate)\n- Dead Code Elimination\n- Import Refactoring\n- Symbol Renaming (project-wide)\n- Duplication Detection\n\n</td>\n<td width=\"50%\">\n\n### 📊 **Type Safety**\n- Type Coverage Analysis\n- Type Stub Generation\n- Auto Test Generation\n\n### ⚡ **Performance**\n- O(n²) Pattern Detection\n- Hotspot Analysis\n- Coverage-Driven Prioritization\n\n### 🤖 **Automation**\n- Auto-Apply with Rollback\n- Operation History\n- Quality Dashboard\n\n</td>\n</tr>\n</table>\n\n---\n\n## 🚀 Quick Start\n\n### Installation\n\n#### 📦 **Recommended: NPM Method (Auto-installs dependencies)**\n\nNo installation required! Use NPX to run the latest version automatically:\n\n```bash\nnpx -y ohm-mcp@latest\n```\n\nThis is the easiest way to get started. Just add the configuration to your AI assistant (see [IDE Configuration](#ide-configuration) below).\n\n**MCP Registry:** mcp-name: io.github.Murugarajr/ohm-mcp\n\n#### 🐍 **Alternative: PyPI Method (For local development)**\n\nUse this method when you need to:\n- Develop locally with the Python package\n- Use a specific Python virtual environment\n- Install from source for customization\n\n**Install from PyPI:**\n```bash\npip install ohm-mcp\n```\n\n**Install from source (for development):**\n```bash\npip install -e .\n```\n\n### IDE Configuration\n\n#### 📦 **Option 1: NPX (Recommended - Auto-installs dependencies)**\n\n<details>\n<summary><b>🔵 GitHub Copilot (VS Code) with NPX</b></summary>\n\n**After publishing to npm:**\n```json\n{\n  \"mcpServers\": {\n    \"ohm-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"ohm-mcp@latest\"]\n    }\n  }\n}\n```\n\n**For local development:**\n```json\n{\n  \"mcpServers\": {\n    \"ohm-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"--package\", \"/path/to/ohm-mcp-npm\", \"ohm-mcp\"]\n    }\n  }\n}\n```\n\n**Usage:**\n- Open Copilot Chat\n- Type `#` and select `ohm-mcp` tools\n- Ask: \"Analyze this file and suggest refactorings\"\n\n</details>\n\n<details>\n<summary><b>🟣 Cursor IDE with NPX</b></summary>\n\n**Global (After publishing to npm):**\n```json\n{\n  \"mcpServers\": {\n    \"ohm-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"ohm-mcp@latest\"]\n    }\n  }\n}\n```\n\n**For local development:**\n```json\n{\n  \"mcpServers\": {\n    \"ohm-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"--package\", \"/path/to/ohm-mcp-npm\", \"ohm-mcp\"]\n    }\n  }\n}\n```\n\n**Usage:**\n- Open Cursor Chat (Cmd+L / Ctrl+L)\n- Tools are automatically available\n- Ask: \"Use ohm-mcp to detect dead code\"\n\n</details>\n\n<details>\n<summary><b>🟢 Cline (VS Code Extension) with NPX</b></summary>\n\n**Global (After publishing to npm):**\n```json\n{\n  \"mcpServers\": {\n    \"ohm-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"ohm-mcp@latest\"]\n    }\n  }\n}\n```\n\n**For local development:**\n```json\n{\n  \"mcpServers\": {\n    \"ohm-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"--package\", \"/path/to/ohm-mcp-npm\", \"ohm-mcp\"]\n    }\n  }\n}\n```\n\n**Usage:**\n- Open Cline panel\n- Tools are available in agent context\n- Ask: \"Analyze type coverage and suggest improvements\"\n\n</details>\n\n<details>\n<summary><b>🟠 Antigravity with NPX</b></summary>\n\n**Global (After publishing to npm):**\n```json\n{\n  \"mcpServers\": {\n    \"ohm-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"ohm-mcp@latest\"],\n      \"env\": {\n        \"PYTHONUNBUFFERED\": \"1\"\n      }\n    }\n  }\n}\n```\n\n**Usage:**\n- Tools are automatically available in Antigravity\n- Ask: \"Use ohm-mcp to analyze architecture\"\n\n</details>\n\n<details>\n<summary><b>🔴 Roo Code with NPX</b></summary>\n\n**Global (After publishing to npm):**\n```json\n{\n  \"mcpServers\": {\n    \"ohm-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"ohm-mcp@latest\"]\n    }\n  }\n}\n```\n\n**Usage:**\n- Open Roo Code panel\n- Tools are available in agent context\n- Ask: \"Use ohm-mcp to detect duplicates\"\n\n</details>\n\n<details>\n<summary><b>⚫ Codex VS Code with NPX</b></summary>\n\n**Configuration (config.toml):**\n```toml\n[mcp_servers.ohm-mcp]\nargs = [\"-y\", \"ohm-mcp@latest\"]\ncommand = \"npx\"\n```\n\n**Usage:**\n- Open Codex panel\n- Tools are automatically available\n- Ask: \"Use ohm-mcp to suggest design patterns\"\n\n</details>\n\n<details>\n<summary><b>🟡 Kilo Code with NPX (Local/Global)</b></summary>\n\n**Local (For local development with virtual environment):**\n```json\n{\n  \"mcpServers\": {\n    \"ohm-mcp\": {\n      \"command\": \"/Users/username/project/venv/bin/python\",\n      \"args\": [\"-m\", \"ohm_mcp.server\"],\n      \"disabled\": false,\n      \"alwaysAllow\": []\n    }\n  }\n}\n```\n\n**Global (After publishing to npm):**\n```json\n{\n  \"mcpServers\": {\n    \"ohm-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"ohm-mcp@latest\"]\n    }\n  }\n}\n```\n\n**Usage:**\n- Open Kilo Code panel\n- Tools are available in agent context\n- Ask: \"Use ohm-mcp for refactoring\"\n\n</details>\n\n#### 🐍 **Option 2: Direct Python (Manual setup)**\n\n<details>\n<summary><b>🔵 GitHub Copilot (VS Code) with Python</b></summary>\n\nFirst install: `pip install ohm-mcp`\n\nThen add to `.vscode/mcp.json`:\n```json\n{\n  \"servers\": {\n    \"ohm-mcp\": {\n      \"command\": \"python\",\n      \"args\": [\"-m\", \"ohm_mcp.server\"]\n    }\n  },\n  \"inputs\": []\n}\n```\n\n**Usage:**\n- Open Copilot Chat\n- Type `#` and select `ohm-mcp` tools\n- Ask: \"Analyze this file and suggest refactorings\"\n\n</details>\n\n<details>\n<summary><b>🟣 Cursor IDE with Python</b></summary>\n\nFirst install: `pip install ohm-mcp`\n\nThen add to Cursor's MCP settings file (`.cursorrules` or MCP config):\n```json\n{\n  \"mcpServers\": {\n    \"ohm-mcp\": {\n      \"command\": \"python\",\n      \"args\": [\"-m\", \"ohm_mcp.server\"]\n    }\n  },\n  \"inputs\": []\n}\n```\n\n**Example with virtual environment:**\n```json\n{\n  \"mcpServers\": {\n    \"ohm-mcp\": {\n      \"command\": \"/Users/username/projects/venv/bin/python\",\n      \"args\": [\"-m\", \"ohm_mcp.server\"]\n    }\n  }\n}\n```\n\n**Usage:**\n- Open Cursor Chat (Cmd+L / Ctrl+L)\n- Tools are automatically available\n- Ask: \"Use ohm-mcp to detect dead code\"\n\n</details>\n\n<details>\n<summary><b>🟢 Cline (VS Code Extension) with Python</b></summary>\n\nFirst install: `pip install ohm-mcp`\n\nThen add to Cline's MCP settings:\n```json\n{\n  \"mcpServers\": {\n    \"ohm-mcp\": {\n      \"command\": \"python\",\n      \"args\": [\"-m\", \"ohm_mcp.server\"]\n    }\n  }\n}\n```\n\n**Example with virtual environment:**\n```json\n{\n  \"mcpServers\": {\n    \"ohm-mcp\": {\n      \"command\": \"/Users/username/projects/venv/bin/python\",\n      \"args\": [\"-m\", \"ohm_mcp.server\"]\n    }\n  }\n}\n```\n\n**Note:** Cline requires absolute paths for both `command` and `cwd`.\n\n**Usage:**\n- Open Cline panel\n- Tools are available in agent context\n- Ask: \"Analyze type coverage and suggest improvements\"\n\n</details>\n\n<details>\n<summary><b>🔧 Other MCP-Compatible Clients</b></summary>\n\nAny MCP-compatible client can use this server. General configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"ohm-mcp\": {\n      \"command\": \"<python-interpreter-path>\",\n      \"args\": [\"<path-to-mcp_server.py>\"],\n      \"cwd\": \"<project-directory>\"\n    }\n  }\n}\n```\n\n**Finding your Python path:**\n```bash\n# Unix/Mac\nwhich python\n# or\nwhich python3\n\n# Windows\nwhere python\n```\n\n</details>\n\n---\n\n## 💡 Quick Usage Examples\n\nOnce configured, simply reference tools in your AI assistant chat using the format: use `#ohm-mcp.tool_name` on the current file or `@file_name.py`\n\n### **🗑️ Find Dead Code**\n```\nUse #ohm-mcp.detect_dead_code on @utils.py\n```\nThis will detect:\n- ✅ Unused imports (import statements never referenced)\n- ✅ Unused variables (assigned but never read)\n- ✅ Unreachable code (after return/raise/break/continue)\n- ✅ Unused functions (defined but never called)\n- ✅ Shadowed variables (inner scope hides outer scope variable)\n\n### **📋 Code Duplication Detection**\n```\nUse #ohm-mcp.detect_code_duplicates to find duplicates in /path/to/project\n```\nFinds:\n- ✅ Exact duplicates (100% identical code blocks)\n- ✅ Near duplicates (90%+ similarity)\n- ✅ Duplicate functions (same structure, different names)\n- ✅ Provides refactoring suggestions to eliminate duplication\n\n### **🏗️ Architecture Analysis**\n```\nAnalyze architecture of @my_module.py using #ohm-mcp.analyze_architecture\n```\nDetects:\n- ✅ God Objects (classes doing too much)\n- ✅ SOLID principle violations\n- ✅ Circular dependencies\n- ✅ High coupling issues\n\n### **✂️ Extract Method Refactoring**\n```\nUse #ohm-mcp.extract_method_ast to extract lines 45-60 from @handler.py into a new function called \"process_request\"\n```\nAutomatically:\n- ✅ Detects required parameters\n- ✅ Identifies return values\n- ✅ Generates refactored code\n- ✅ Creates unified diff patch\n\n### **🔄 Safe Symbol Renaming**\n```\nUse #ohm-mcp.rename_symbol to rename \"old_function_name\" to \"new_function_name\" in /path/to/project\n```\nFeatures:\n- ✅ AST-based (100% accurate)\n- ✅ Detects naming conflicts\n- ✅ Shows all occurrences before applying\n- ✅ Updates docstrings and comments\n\n### **📊 Type Coverage Analysis**\n```\nAnalyze type hints in @module.py using #ohm-mcp.analyze_type_hints\n```\nProvides:\n- ✅ Coverage percentage and grade\n- ✅ Functions missing type hints\n- ✅ Suggested type annotations\n- ✅ Migration plan with priorities\n\n### **⚡ Performance Optimization**\n```\nUse #ohm-mcp.analyze_performance on @slow_module.py\n```\nDetects:\n- ✅ Nested loops (O(n²) complexity)\n- ✅ Quadratic list operations\n- ✅ Repeated function calls (missing caching)\n- ✅ Mutable default arguments\n- ✅ Inefficient string concatenation\n\n### **🧪 Auto-Generate Tests**\n```\nGenerate tests for @calculator.py using #ohm-mcp.generate_characterization_tests\n```\nCreates:\n- ✅ Happy path test cases\n- ✅ Edge cases (None, zero, negative, empty)\n- ✅ Ready-to-run pytest code\n- ✅ Preserves current behavior before refactoring\n\n### **🎨 Design Pattern Suggestions**\n```\nSuggest design patterns for @legacy_code.py using #ohm-mcp.suggest_design_patterns\n```\nRecommends:\n- ✅ Strategy pattern for long if/elif chains\n- ✅ Factory pattern for repetitive object creation\n- ✅ Observer pattern for callback hell\n- ✅ Decorator pattern for cross-cutting concerns\n\n### **🔧 Import Refactoring**\n```\nUse #ohm-mcp.refactor_imports to update all files in /path/to/project from \"old.module\" to \"new.module\"\n```\nHandles:\n- ✅ Direct imports (`import old.module`)\n- ✅ From imports (`from old.module import X`)\n- ✅ Submodule imports\n- ✅ Import aliases\n\n---\n\n## 🎯 Key Tools (30 Total)\n\n<details>\n<summary><b>📋 General Analysis & Planning (4 tools)</b></summary>\n\n| Tool | Purpose | Output |\n|------|---------|--------|\n| `analyze_codebase` | Comprehensive code analysis | Issues + refactoring plan |\n| `propose_function_refactor` | Function-level refactor planning | Detailed refactor proposal |\n| `explain_refactoring` | Explain refactoring patterns | Educational guidance |\n| `create_refactor_patch` | Generate unified diff patches | Patch file |\n\n</details>\n\n<details>\n<summary><b>🏗️ Architecture & Design (4 tools)</b></summary>\n\n| Tool | Purpose | Output |\n|------|---------|--------|\n| `analyze_architecture` | Detect God Objects, SOLID violations | Detailed issue report |\n| `suggest_design_patterns` | Recommend patterns (Strategy, Factory, Observer) | Pattern suggestions + examples |\n| `analyze_tight_coupling` | Find coupling issues | DI recommendations |\n| `suggest_di_refactor` | Generate DI code | Before/after refactor |\n\n</details>\n\n<details>\n<summary><b>🔧 Code Quality & Refactoring (10 tools)</b></summary>\n\n| Tool | Purpose | Key Feature |\n|------|---------|-------------|\n| `extract_method_ast` | Extract code into function | 100% AST-based accuracy |\n| `suggest_extractable_methods` | Find extractable blocks | Cohesion scoring |\n| `detect_dead_code` | Find unused code | 5 types of dead code |\n| `refactor_imports` | Update imports project-wide | Safe module renaming |\n| `refactor_single_file_imports` | Refactor imports in one file | Single file focus |\n| `analyze_wildcard_imports` | Find wildcard imports | Explicit replacements |\n| `rename_symbol` | Rename across codebase | Conflict detection |\n| `detect_code_duplicates` | Find DRY violations | Exact + near duplicates |\n| `extract_function_code` | Extract single function code | Code extraction utility |\n| `apply_function_refactor` | Apply function-level refactor | Direct code modification |\n\n**Example - Extract Method:**\n```python\n# Input: Lines 45-60\nresult = extract_method_ast(code, 45, 60, \"calculate_total\")\n\n# Output: Refactored code + patch + auto-detected params/returns\n```\n\n</details>\n\n<details>\n<summary><b>📊 Type Safety & Testing (5 tools)</b></summary>\n\n| Tool | Purpose | Benefit |\n|------|---------|---------|\n| `analyze_type_hints` | Check type coverage | Migration plan |\n| `generate_type_stub` | Create .pyi files | Gradual typing |\n| `generate_characterization_tests` | Auto-generate tests | Safe refactoring |\n| `generate_test_for_function` | Single function tests | Targeted testing |\n| `suggest_tests` | Suggest test strategies | Test planning |\n\n</details>\n\n<details>\n<summary><b>⚡ Performance & Prioritization (2 tools)</b></summary>\n\n| Tool | Purpose | Detects |\n|------|---------|---------|\n| `analyze_performance` | Find bottlenecks | Nested loops, mutable defaults, O(n²) |\n| `prioritize_by_coverage` | Risk-based prioritization | High-risk uncovered code |\n\n</details>\n\n<details>\n<summary><b>🤖 Automated Execution & History (4 tools)</b></summary>\n\n```mermaid\ngraph LR\n    A[apply_refactoring] --> B{Dry Run?}\n    B -->|Yes| C[Show Preview]\n    B -->|No| D[Create Backup]\n    D --> E[Apply Changes]\n    E --> F{Run Tests}\n    F -->|Pass| G[Success]\n    F -->|Fail| H[Auto Rollback]\n    H --> I[rollback_refactoring]\n```\n\n| Tool | Purpose |\n|------|--------|\n| `apply_refactoring` | Auto-apply refactoring with safety checks |\n| `rollback_refactoring` | Rollback previous refactoring |\n| `show_refactoring_history` | View refactoring audit trail |\n| `cleanup_old_backups` | Clean up old backup files |\n\n**Features:**\n- ✅ Automatic backup before changes\n- ✅ Test execution validation\n- ✅ Auto-rollback on failure\n- ✅ Full audit trail with history\n- ✅ Automatic backup cleanup\n\n</details>\n\n<details>\n<summary><b>📈 Metrics & Reporting (1 tool)</b></summary>\n\n**`generate_quality_report`** - Comprehensive dashboard in HTML/Markdown/JSON\n\n**Output Preview:**\n\n```\n📊 Health Score: 85/100 (Good)\n📁 Files: 47 | Lines: 12,450 | Tech Debt: 23 pts\n\n📊 Type Coverage: 67%\n🗑️ Dead Code: 8 imports, 12 variables, 3 functions\n⚡ Performance: 4 nested loops, 2 mutable defaults\n📋 Duplication: 3 exact, 5 near-duplicates\n```\n\n**Visual Dashboard:**\n- 🎨 Circular health gauge\n- 📊 Color-coded metrics (🟢🟡🔴)\n- 📈 Trend tracking ready\n- 🔗 CI/CD integration (JSON export)\n\n</details>\n\n---\n\n## 💡 Common Workflows\n\n### 1️⃣ **Safe Refactoring**\n```bash\ngenerate_characterization_tests → pytest → extract_method_ast → pytest\n```\n\n### 2️⃣ **Eliminate Duplication**\n```bash\ndetect_code_duplicates → review suggestions → extract_method_ast\n```\n\n### 3️⃣ **Type Migration**\n```bash\nanalyze_type_hints → follow migration plan → generate_type_stub\n```\n\n### 4️⃣ **Performance Optimization**\n```bash\nanalyze_performance → prioritize_by_coverage → apply fixes\n```\n\n### 5️⃣ **Module Refactoring**\n```bash\nrefactor_imports(old=\"myapp.old\", new=\"myapp.new\") → review patches\n```\n\n### 6️⃣ **Symbol Renaming**\n```bash\nrename_symbol(old=\"calc\", new=\"calculate\", preview_only=True) → apply\n```\n\n### 7️⃣ **Quality Tracking**\n```bash\ngenerate_quality_report(format=\"html\") → open dashboard → track trends\n```\n\n---\n\n## 🎨 Visual Examples\n\n### Quality Dashboard Preview\n\n```\n┌─────────────────────────────────────────────┐\n│  🔍 Code Quality Dashboard                  │\n├─────────────────────────────────────────────┤\n│                                             │\n│       ╭─────────╮     📁 Overview           │\n│       │   85    │     Files: 47             │\n│       │  /100   │     Lines: 12,450         │\n│       ╰─────────╯     Tech Debt: 23         │\n│     Health Score                            │\n│                                             │\n├─────────────────────────────────────────────┤\n│  📊 Type Coverage       ⚡ Performance       │\n│  ████████░░ 67%         🔴 4 nested loops   │\n│  120/180 typed          🟡 2 mutable args   │\n├─────────────────────────────────────────────┤\n│  🗑️ Dead Code           📋 Duplication      │\n│  8 imports              3 exact             │\n│  12 variables           5 near              │\n│  3 functions                                │\n└─────────────────────────────────────────────┘\n```\n\n### Symbol Rename Preview\n\n```diff\n# Before\n- def calc(x, y):\n-     return x + y\n- result = calc(5, 3)\n\n# After\n+ def calculate_sum(x, y):\n+     return x + y\n+ result = calculate_sum(5, 3)\n\n✅ 1 function renamed\n✅ 3 call sites updated\n✅ 0 conflicts detected\n```\n\n---\n\n## 🧠 Design Principles\n\n| Principle | Implementation |\n|-----------|----------------|\n| 🧪 **Test-First** | Auto-generate characterization tests before refactoring |\n| ↩️ **Reversible** | Every change = backup + rollback capability |\n| 🎯 **AST-Driven** | 100% accurate (no regex) |\n| 📊 **Risk-Aware** | Coverage + complexity = prioritization |\n| 🏛️ **SOLID** | Detect violations + concrete fixes |\n| 🚫 **No Blindness** | Analyze → Plan → Validate |\n\n---\n\n## 🔌 IDE Compatibility\n\n<table>\n<tr>\n<td align=\"center\" width=\"100%\">\n<b>🤖 Any MCP Client</b><br>\n✅ Standard Protocol<br>\n✅ Easy Setup<br>\n✅ Works with all MCP-compatible AI assistants\n</td>\n</tr>\n</table>\n\n---\n\n\n## 📊 Comparison\n\n| Feature | OHM MCP | Traditional Tools |\n|---------|---------|-------------------|\n| Accuracy | 100% AST | ~70% Regex |\n| Safety | Auto backup/rollback | Manual |\n| Testing | Auto-generates | Manual |\n| Automation | Full | Suggestions only |\n| Dashboard | HTML/JSON/MD | Text logs |\n| IDE Support | Copilot/Cursor/Cline | Limited |\n\n---\n\n## 🎯 Use Cases\n\n<table>\n<tr>\n<td><b>👨‍💻 Developers</b><br>• Refactor legacy code safely<br>• Find dead code<br>• Optimize performance</td>\n<td><b>👥 Teams</b><br>• Track tech debt<br>• Enforce standards<br>• Design patterns</td>\n<td><b>🚀 CI/CD</b><br>• Quality gates<br>• Trend tracking<br>• Block bad PRs</td>\n</tr>\n</table>\n\n---\n\n## 📈 Metrics\n\n```\n✅ 30 MCP Tools\n✅ 40+ Static Checks\n✅ 100% AST Accuracy\n✅ Zero Regex Patterns\n✅ Automated Execution with Rollback\n✅ Beautiful Dashboards (HTML/JSON/MD)\n✅ Universal MCP Compatibility\n✅ Safe Refactoring with Auto-Backup\n```\n\n---\n\n## 🛠️ Troubleshooting\n\n<details>\n<summary><b>MCP Connection Issues</b></summary>\n\n1. **Verify Python path:**\n   ```bash\n   which python  # Unix/Mac\n   where python  # Windows\n   ```\n\n2. **Test MCP server directly:**\n   ```bash\n   python -m ohm_mcp.server\n   ```\n\n3. **Check logs:**\n   - VS Code: Check Output panel\n   - Cursor: Check Cursor logs\n   - Cline: Check Cline settings panel\n\n4. **Common issues:**\n   - ❌ Relative paths in `command` → Use absolute paths\n   - ❌ Missing virtual environment → Activate venv first\n   - ❌ Wrong `cwd` for Cline → Must be absolute path\n\n</details>\n\n---\n\n## 🤝 Contributing\n\nRun before submitting:\n```bash\n./static_analyser.sh  # Runs ruff, mypy, pylint, flake8\npytest                 # All tests must pass\n```\n\n---\n\n## 🙏 Credits\n\nBuilt with [Model Context Protocol](https://modelcontextprotocol.io) • Python AST • Compatible with GitHub Copilot, Cursor IDE, Cline\n\n---\n\n<div align=\"center\">\n\n**Made with ❤️ for better code quality**\n\n⭐ **Star this repo** if it helps you write cleaner code!\n\n[Documentation](https://www.ohm-mcp.dev) \n\n</div>\n",
  "bytes": 20527,
  "sha": "6ddf4ed45c44ea835d23f8db9f62be402758079944f01e275513882a861beee3",
  "repo_slug": "murugarajr/ohm-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_murugarajr_ohm_mcp_d022a1f4/readme"
}