RefactorMCP
Herramientas automatizadas de refactorización para la transformación de código C# usando Roslyn.
GitHub
91
Prueba este MCPPatrocinadoDocumentació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
methodNamesjunto conconstructor-injectionsyparameter-injectionsopcionales 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 testpara garantizar que todas las pruebas pasen. - Formatee el código con
dotnet formatantes de abrir una solicitud de extracción.
Licencia
Licenciado bajo la Mozilla Public License 2.0.