mcpField
R
Refactoring MCP Server

Refactoring MCP Server

ローカル
github.com/marshally開発ツール548 週間前に更新

Refactoring MCP Server について

Refactoring MCP Serverは、言語に依存しない設計でMartin FowlerのリファクタリングカタログをLLMに提供します。開発者はコードの検査、コードスメルの分析、変更のプレビューと適用を行えます。説明されているバックエンドはPythonです。

主な機能

  1. 01リファクタリングとパラメーター仕様を一覧表示
  2. 02適用前に変更をプレビュー
  3. 03コードにリファクタリングを適用
  4. 04コード構造を検査
  5. 05コードスメルを分析してリファクタリングを提案

活用シーン

  1. 01コードベースに適用できるリファクタリングを探す
  2. 02ファイル変更前に編集内容を確認
  3. 03メソッド名の変更や抽出を適用
  4. 04リファクタリングの計画時にコード構造を調査

MCP 対応

このMCPサーバーは、リファクタリングの一覧表示、プレビュー、適用、コード構造の検査、コード分析のツールを公開します。言語バックエンドに接続し、最初のバックエンドとしてPythonが説明されています。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"marshally-mcp-refactoring": {
"command": "uvx",
"args": [
"mcp-refactoring"
]
}
}
}
起動コマンドuvx mcp-refactoring

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypimcp-refactoring0.1.2

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

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 を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。