Roslyn MCP Server
Un servidor MCP en C# que utiliza el compilador Roslyn de Microsoft para el análisis y la navegación de código en bases de código de C#.
Documentación
Roslyn MCP Server
Un servidor MCP (Model Context Protocol) en C# que se integra con la plataforma de compilador Roslyn de Microsoft para proporcionar a Claude Desktop capacidades de análisis y navegación de código para bases de código en C#.
Características
- Búsqueda de símbolos con comodines - Encuentra clases, métodos y propiedades usando coincidencia de patrones (
*Service,Get*User, etc.) - Seguimiento de referencias - Localiza todos los usos de símbolos en soluciones completas
- Información de símbolos - Obtén información detallada sobre tipos, métodos, propiedades y más
- Análisis de dependencias - Analiza dependencias de proyectos y patrones de uso de espacios de nombres
- Análisis de complejidad de código - Identifica métodos de alta complejidad usando métricas de complejidad ciclomática
- Optimizado para rendimiento - Caché de múltiples niveles y análisis incremental para bases de código grandes
- Seguridad - Validación de entrada y saneamiento de rutas
Requisitos previos
- .NET 8.0 SDK o posterior
- Visual Studio 2022 o VS Code (recomendado para desarrollo)
- Aplicación Claude Desktop
Instalación
-
Clona o descarga el proyecto
git clone https://github.com/carquiza/RoslynMCP.git cd RoslynMCP/RoslynMcpServer -
Restaura los paquetes NuGet
dotnet restore -
Compila el proyecto
dotnet build -
Prueba el servidor (opcional)
dotnet run
Configuración rápida
Windows
Ejecuta el script de configuración de PowerShell:
.\setup.ps1
Linux/macOS
Ejecuta la prueba de instalación:
./test-installation.sh
Configuración de Claude Desktop
Para conectar este servidor MCP a Claude Desktop, debes modificar el archivo de configuración de Claude Desktop:
Ubicación del archivo de configuración
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Contenido de la configuración
Agrega lo siguiente a tu archivo claude_desktop_config.json:
{
"mcpServers": {
"roslyn-code-navigator": {
"command": "dotnet",
"args": [
"run",
"--project",
"/path/to/RoslynMCP/RoslynMcpServer"
],
"env": {
"DOTNET_ENVIRONMENT": "Production",
"LOG_LEVEL": "Information"
}
}
}
}
Importante: Reemplaza /path/to/RoslynMCP/RoslynMcpServer con la ruta absoluta real a tu directorio de proyecto.
Uso
Una vez configurado, reinicia Claude Desktop. Deberías ver el Roslyn MCP Server aparecer en las herramientas disponibles. Aquí hay algunos ejemplos de consultas:
Buscar símbolos
Search for all classes ending with 'Service' in my solution at C:\MyProject\MyProject.sln
Encontrar referencias
Find all references to the UserRepository class in C:\MyProject\MyProject.sln
Obtener información de símbolos
Get information about the CalculateTotal method in C:\MyProject\MyProject.sln
Analizar dependencias
Analyze dependencies for the solution at C:\MyProject\MyProject.sln
Análisis de complejidad de código
Find methods with complexity higher than 7 in C:\MyProject\MyProject.sln
Herramientas disponibles
- SearchSymbols - Busca símbolos usando patrones comodín
- FindReferences - Encuentra todas las referencias a un símbolo específico
- GetSymbolInfo - Obtén información detallada sobre un símbolo
- AnalyzeDependencies - Analiza dependencias de proyectos y patrones de uso
- AnalyzeCodeComplexity - Identifica métodos de alta complejidad
Desarrollo y pruebas
Usando MCP Inspector
Para desarrollo y pruebas, puedes usar el MCP Inspector:
# Install the inspector
npm install -g @modelcontextprotocol/inspector
# Test your server
npx @modelcontextprotocol/inspector dotnet run --project ./RoslynMcpServer
Arquitectura
El servidor cuenta con una arquitectura modular con:
- Capa de servidor MCP: Maneja la comunicación con Claude Desktop
- Capa de integración con Roslyn: Gestiona espacios de trabajo y compilaciones
- Capa de motor de búsqueda: Implementa búsqueda y análisis de símbolos
- Caché de múltiples niveles: Optimización de rendimiento para bases de código grandes
- Capa de seguridad: Validación de entrada y saneamiento
Licencia
Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.
Autor
Christopher Arquiza
Contribuciones
¡Las contribuciones son bienvenidas! No dudes en enviar un Pull Request.