RefactorMCP

Herramientas automatizadas de refactorización para la transformación de código C# usando Roslyn.

Documentación

RefactorMCP es un servidor del Protocolo de Contexto de Modelos (MCP) que expone herramientas de refactorización basadas en Roslyn para C#.

Uso

Ejecute la aplicación de consola directamente o hosteela como servidor MCP:

dotnet run --project RefactorMCP.ConsoleApp

Para ejemplos de uso, consulte EXAMPLES.md.

Refactorizaciones disponibles

  • Extract Method –crea un nuevo método a partir del código seleccionado y reemplaza el original con una llamada (no se admiten métodos con cuerpo de expresión).
  • Introduce Field/Parameter/Variable –convierte expresiones en nuevos miembros; falla si ya existe un campo.
  • Convert to Static –convierte métodos de instancia en estáticos usando parámetros o un argumento de instancia.
  • Move Static Method –reubica un método estático y mantiene un contenedor en la clase original.
  • Move Instance Method –mueve uno o más métodos de instancia a otra clase y delega desde el origen. Si un método movido ya no accede a miembros de instancia, se convierte automáticamente en estático. Proporcione una lista methodNames junto con constructor-injections y parameter-injections opcionales para controlar dependencias.
  • Move Multiple Methods (instance) –mueve varios métodos y los mantiene como miembros de instancia de la clase destino. La instancia de origen se inyecta mediante el constructor cuando sea necesario.
  • Move Multiple Methods (static) –mueve varios métodos y los convierte en estáticos, agregando un parámetro this.
  • Make Static Then Move –convierte un método de instancia en estático y lo reubica en otra clase en un solo paso.
  • Move Type to Separate File –mueve un tipo de nivel superior a su propio archivo con el nombre del tipo.
  • Make Field Readonly –mueve la inicialización a los constructores y marca el campo como readonly.
  • Transform Setter to Init –convierte los establecedores de propiedades en solo init y los inicializa en los constructores.
  • Constructor Injection –convierte parámetros de método en campos o propiedades inyectados mediante el constructor.
  • Safe Delete –elimina campos o variables solo después de verificar dependencias.
  • Extract Class –crea una nueva clase a partir de los miembros seleccionados y la compone con la original.
  • Inline Method –reemplaza las llamadas con el cuerpo del método y elimina el original.
  • Extract Decorator –crea una clase decoradora que delega en un método existente.
  • Create Adapter –genera una clase adaptadora que envuelve un método existente.
  • Add Observer –introduce un evento y lo genera desde un método.
  • Use Interface –cambia el tipo de parámetro de un método a una de sus interfaces implementadas.
  • List Tools –muestra todas las herramientas de refactorización disponibles como nombres en kebab-case.

Las métricas y los resúmenes también están disponibles mediante los esquemas de recursos metrics:// y summary://.

Contribuciones

  • Ejecute dotnet test para garantizar que todas las pruebas pasen.
  • Formatee el código con dotnet format antes de abrir una solicitud de extracción.

Licencia

Licenciado bajo la Mozilla Public License 2.0.