mcp-refactoring
MCP server exposing Martin Fowler's refactoring catalog to LLMs with 71+ refactorings
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"mcp-refactoring": {
"args": [
"mcp-refactoring@0.1.2"
],
"command": "uvx"
}
}
}
可用工具 (5 个)
该服务在 MCP 协议中暴露的工具,AI 可按需调用
tavily_search 14 个参数 需填 1 项
Search the web for current information on any topic. Use for news, facts, or data beyond your knowledge cutoff. Returns snippets and source URLs.
必填参数:query
tavily_extract 6 个参数 需填 1 项
Extract content from URLs. Returns raw page content in markdown or text format.
必填参数:urls
tavily_crawl 11 个参数 需填 1 项
Crawl a website starting from a URL. Extracts content from pages with configurable depth and breadth.
必填参数:url
tavily_map 8 个参数 需填 1 项
Map a website's structure. Returns a list of URLs found starting from the base URL.
必填参数:url
tavily_research 2 个参数 需填 1 项
Perform comprehensive research on a given topic or question. Use this tool when you need to gather information from multiple sources to answer a question or complete a task. Returns a detailed response based on the research findings.
必填参数:input
服务介绍
mcp-refactoring
<!- - mcp-name: io.github.marshally/mcp-refactoring - ->
An MCP (Model Context Protocol) server that exposes Martin Fowler's refactoring catalog to LLMs through a pluggable, language-agnostic architecture.
# Features
- 71+ Refactorings: Full implementation of Martin Fowler's refactoring catalog
- Pluggable Architecture: Support for multiple languages (Python first, Ruby/Java/Go planned)
- Safe by Default: Preview mode shows changes before applying
- LLM-Optimized: TOON output format for token efficiency
# Installation
# Using uvx (recommended)
uvx mcp-refactoring
# Using pip
pip install mcp-refactoring
# Using pipx
pipx install mcp-refactoring
# Requirements
- Python 3.10+
- A language backend (e.g.,
molting-clifor Python)
Install the Python backend:
pip install molting-cli
# Claude Desktop Configuration
Add to your Claude Desktop config:
{
"mcpServers": {
"refactoring": {
"command": "uvx",
"args": ["mcp-refactoring"]
}
}
}
# Available Tools
# # list_refactorings
List available refactorings with their parameter contracts.
list_refactorings(language="python", category="composing_methods")
# # preview_refactoring
Preview what changes a refactoring would make (dry-run).
preview_refactoring(
refactoring="extract-method",
target="src/order.py::Order::calculate# L10-L15",
params={"name": "calculate_tax"}
)
# # apply_refactoring
Apply a refactoring to the codebase.
apply_refactoring(
refactoring="rename-method",
target="src/order.py::Order::calc",
params={"new_name": "calculate_total"}
)
# # inspect_structure
Get structural information about code.
inspect_structure(path="src/order.py", depth="method")
# # analyze_code
Analyze code for smells and suggest refactorings.
analyze_code(path="src/order.py", smells=["long-method"])
# Target Specification
Each language uses its native conventions:
# # Python
src/order.py::Order::calculate_total # Method
src/order.py::Order::calculate_total# L10-L15 # Line range
src/order.py::Order # Class
# Configuration
Create ~/.mcp-refactoring/config.toml:
[backends.python]
enabled = true
command = "molting"
[backends.ruby]
enabled = false
command = "molting-rb"
Environment variable overrides:
MCP_REFACTORING_PYTHON_COMMAND=/path/to/molting
MCP_REFACTORING_PYTHON_ENABLED=true
# Refactoring Categories
Based on Martin Fowler's catalog:
- Composing Methods: extract-method, inline-method, etc.
- Moving Features: move-method, extract-class, etc.
- Organizing Data: encapsulate-field, replace-type-code, etc.
- Simplifying Conditionals: decompose-conditional, guard-clauses, etc.
- Simplifying Method Calls: rename-method, add-parameter, etc.
- Dealing with Generalization: pull-up-method, extract-interface, etc.
# Development
# Clone the repository
git clone https://github.com/marshally/mcp-refactoring.git
cd mcp-refactoring
# Install in development mode
pip install -e ".[dev]"
# Run tests
pytest
# Run linter
ruff check .
# Run type checker
mypy src/
# License
MIT License - see LICENSE for details.