¿Qué hace roslyn-mcp-server?
Un servidor MCP basado en .NET 11 que expone el análisis del compilador Roslyn (16 herramientas: diagnósticos, información al pasar el cursor, referencias y correcciones de código) a agentes de codificación de IA. Compatible con Reasonix, Claude y Cursor.
Características
- Diagnósticos: Obtén todos los diagnósticos (errores, advertencias, sugerencias) del compilador Roslyn para el código fuente activo.
- Información al pasar el cursor: Recibe información detallada sobre cualquier símbolo (clases, métodos, variables) en el editor.
- Referencias: Encuentra todas las referencias a un símbolo dentro del proyecto.
- Correcciones rápidas: Aplica automáticamente correcciones de código sugeridas por Roslyn (usando
CodeAction).
Requisitos previos
- .NET 11 SDK instalado.
- Un cliente MCP compatible (Reasonix, Claude Desktop, Cursor, etc.).
Configuración
-
Clona el repositorio:
git clone https://github.com/SunNull/roslyn-mcp-server.git cd roslyn-mcp-server -
Restaura las dependencias:
dotnet restore -
Construye el proyecto:
dotnet build -
Ejecuta el servidor (modo MCP):
dotnet run -- --mcpTambién puedes especificar un puerto:
dotnet run -- --mcp --port 8080
Integración con clientes MCP
Reasonix
Agrega la siguiente configuración a reasonix.json:
{
"mcpServers": {
"roslyn": {
"command": "dotnet",
"args": ["run", "--project", "/ruta/a/roslyn-mcp-server", "--port", "8080"],
"env": {}
}
}
}
Claude Desktop
En claude_desktop_config.json:
{
"mcpServers": {
"roslyn": {
"command": "dotnet",
"args": ["run", "--project", "/ruta/a/roslyn-mcp-server", "--port", "8080"]
}
}
}
Cursor
En la configuración de MCP (Settings > MCP Servers), agrega:
{
"name": "roslyn-mcp-server",
"command": "dotnet",
"args": ["run", "--project", "/ruta/a/roslyn-mcp-server", "--port", "8080"]
}
Herramientas disponibles
El servidor expone las siguientes 16 herramientas a través del protocolo MCP:
| Herramienta | Descripción |
|---|---|
get_diagnostics | Obtiene todos los diagnósticos del compilador |
get_hover_info | Información al pasar el cursor sobre un símbolo |
find_references | Encuentra todas las referencias a un símbolo |
apply_code_fix | Aplica una corrección rápida |
get_symbol_info | Información detallada sobre un símbolo |
get_type_info | Información sobre un tipo |
get_method_signature | Firma de un método |
get_completions | Sugerencias de finalización de código |
format_code | Formatea el código |
get_code_actions | Obtiene acciones de código disponibles |
run_code_analysis | Ejecuta análisis de código adicional |
get_syntax_tree | Obtiene el árbol sintáctico del código |
get_semantic_model | Obtiene el modelo semántico |
get_enum_members | Lista los miembros de una enumeración |
get_namespace_members | Lista los miembros de un espacio de nombres |
get_class_members | Lista los miembros de una clase |
Licencia
Este proyecto está licenciado bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.