{
  "markdown": "# mcp-refactoring\n\n<!-- mcp-name: io.github.marshally/mcp-refactoring -->\n\nAn MCP (Model Context Protocol) server that exposes Martin Fowler's refactoring catalog to LLMs through a pluggable, language-agnostic architecture.\n\n## Features\n\n- **71+ Refactorings**: Full implementation of Martin Fowler's refactoring catalog\n- **Pluggable Architecture**: Support for multiple languages (Python first, Ruby/Java/Go planned)\n- **Safe by Default**: Preview mode shows changes before applying\n- **LLM-Optimized**: TOON output format for token efficiency\n\n## Installation\n\n```bash\n# Using uvx (recommended)\nuvx mcp-refactoring\n\n# Using pip\npip install mcp-refactoring\n\n# Using pipx\npipx install mcp-refactoring\n```\n\n## Requirements\n\n- Python 3.10+\n- A language backend (e.g., `molting-cli` for Python)\n\nInstall the Python backend:\n```bash\npip install molting-cli\n```\n\n## Claude Desktop Configuration\n\nAdd to your Claude Desktop config:\n\n```json\n{\n  \"mcpServers\": {\n    \"refactoring\": {\n      \"command\": \"uvx\",\n      \"args\": [\"mcp-refactoring\"]\n    }\n  }\n}\n```\n\n## Available Tools\n\n### list_refactorings\n\nList available refactorings with their parameter contracts.\n\n```\nlist_refactorings(language=\"python\", category=\"composing_methods\")\n```\n\n### preview_refactoring\n\nPreview what changes a refactoring would make (dry-run).\n\n```\npreview_refactoring(\n    refactoring=\"extract-method\",\n    target=\"src/order.py::Order::calculate#L10-L15\",\n    params={\"name\": \"calculate_tax\"}\n)\n```\n\n### apply_refactoring\n\nApply a refactoring to the codebase.\n\n```\napply_refactoring(\n    refactoring=\"rename-method\",\n    target=\"src/order.py::Order::calc\",\n    params={\"new_name\": \"calculate_total\"}\n)\n```\n\n### inspect_structure\n\nGet structural information about code.\n\n```\ninspect_structure(path=\"src/order.py\", depth=\"method\")\n```\n\n### analyze_code\n\nAnalyze code for smells and suggest refactorings.\n\n```\nanalyze_code(path=\"src/order.py\", smells=[\"long-method\"])\n```\n\n## Target Specification\n\nEach language uses its native conventions:\n\n### Python\n```\nsrc/order.py::Order::calculate_total        # Method\nsrc/order.py::Order::calculate_total#L10-L15  # Line range\nsrc/order.py::Order                         # Class\n```\n\n## Configuration\n\nCreate `~/.mcp-refactoring/config.toml`:\n\n```toml\n[backends.python]\nenabled = true\ncommand = \"molting\"\n\n[backends.ruby]\nenabled = false\ncommand = \"molting-rb\"\n```\n\nEnvironment variable overrides:\n\n```bash\nMCP_REFACTORING_PYTHON_COMMAND=/path/to/molting\nMCP_REFACTORING_PYTHON_ENABLED=true\n```\n\n## Refactoring Categories\n\nBased on Martin Fowler's catalog:\n\n- **Composing Methods**: extract-method, inline-method, etc.\n- **Moving Features**: move-method, extract-class, etc.\n- **Organizing Data**: encapsulate-field, replace-type-code, etc.\n- **Simplifying Conditionals**: decompose-conditional, guard-clauses, etc.\n- **Simplifying Method Calls**: rename-method, add-parameter, etc.\n- **Dealing with Generalization**: pull-up-method, extract-interface, etc.\n\n## Development\n\n```bash\n# Clone the repository\ngit clone https://github.com/marshally/mcp-refactoring.git\ncd mcp-refactoring\n\n# Install in development mode\npip install -e \".[dev]\"\n\n# Run tests\npytest\n\n# Run linter\nruff check .\n\n# Run type checker\nmypy src/\n```\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details.\n",
  "bytes": 3293,
  "sha": "0bffb4bfde5db0306c606abc1401e967be46fb29f4396211c955d80d27f8140a",
  "repo_slug": "marshally/mcp-refactoring",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_marshally_mcp_refactoring_f32ef19b/readme"
}