Refactoring MCP Server について
Refactoring MCP Serverは、言語に依存しない設計でMartin FowlerのリファクタリングカタログをLLMに提供します。開発者はコードの検査、コードスメルの分析、変更のプレビューと適用を行えます。説明されているバックエンドはPythonです。
主な機能
- 01リファクタリングとパラメーター仕様を一覧表示
- 02適用前に変更をプレビュー
- 03コードにリファクタリングを適用
- 04コード構造を検査
- 05コードスメルを分析してリファクタリングを提案
活用シーン
- 01コードベースに適用できるリファクタリングを探す
- 02ファイル変更前に編集内容を確認
- 03メソッド名の変更や抽出を適用
- 04リファクタリングの計画時にコード構造を調査
MCP 対応
このMCPサーバーは、リファクタリングの一覧表示、プレビュー、適用、コード構造の検査、コード分析のツールを公開します。言語バックエンドに接続し、最初のバックエンドとしてPythonが説明されています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-refactoring
LLM に対して、プラグイン可能で言語に依存しないアーキテクチャを通じて Martin Fowler のリファクタリングカタログを提供する MCP(Model Context Protocol)サーバーです。
機能
- 71 種類以上のリファクタリング:Martin Fowler のリファクタリングカタログを完全に実装
- プラグイン可能なアーキテクチャ:複数の言語をサポート(まず Python に対応、Ruby/Java/Go は今後対応予定)
- デフォルトで安全:プレビュー機能で、適用前に変更内容を確認できます
- LLM に最適化:トークン効率に優れた TOON 出力形式
インストール
# Using uvx (recommended)
uvx mcp-refactoring
# Using pip
pip install mcp-refactoring
# Using pipx
pipx install mcp-refactoring
要件
- Python 3.10+
- 言語バックエンド(例:Python 用の
molting-cli)
Python バックエンドをインストールします:
pip install molting-cli
Claude Desktop の設定
Claude Desktop の設定に追加します:
{
"mcpServers": {
"refactoring": {
"command": "uvx",
"args": ["mcp-refactoring"]
}
}
}
利用可能なツール
list_refactorings
パラメーターの仕様とともに、利用可能なリファクタリングを一覧表示します。
list_refactorings(language="python", category="composing_methods")
preview_refactoring
リファクタリングによって行われる変更をプレビューします(ドライラン)。
preview_refactoring(
refactoring="extract-method",
target="src/order.py::Order::calculate#L10-L15",
params={"name": "calculate_tax"}
)
apply_refactoring
コードベースにリファクタリングを適用します。
apply_refactoring(
refactoring="rename-method",
target="src/order.py::Order::calc",
params={"new_name": "calculate_total"}
)
inspect_structure
コードの構造情報を取得します。
inspect_structure(path="src/order.py", depth="method")
analyze_code
コードの問題を分析し、リファクタリングを提案します。
analyze_code(path="src/order.py", smells=["long-method"])
対象の仕様
各言語のネイティブな規約を使用します:
Python
src/order.py::Order::calculate_total # Method
src/order.py::Order::calculate_total#L10-L15 # Line range
src/order.py::Order # Class
設定
~/.mcp-refactoring/config.toml を作成します:
[backends.python]
enabled = true
command = "molting"
[backends.ruby]
enabled = false
command = "molting-rb"
環境変数による上書き:
MCP_REFACTORING_PYTHON_COMMAND=/path/to/molting
MCP_REFACTORING_PYTHON_ENABLED=true
リファクタリングのカテゴリ
Martin Fowler のカタログに基づいています:
- メソッドの構成:extract-method、inline-method など
- 機能の移動:move-method、extract-class など
- データの整理:encapsulate-field、replace-type-code など
- 条件式の簡素化:decompose-conditional、guard-clauses など
- メソッド呼び出しの簡素化:rename-method、add-parameter など
- 汎化への対応:pull-up-method、extract-interface など
開発
# 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/
ライセンス
MIT License。詳細は LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。