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

  1. Clona o descarga el proyecto

    git clone https://github.com/carquiza/RoslynMCP.git
    cd RoslynMCP/RoslynMcpServer
    
  2. Restaura los paquetes NuGet

    dotnet restore
    
  3. Compila el proyecto

    dotnet build
    
  4. 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

  1. SearchSymbols - Busca símbolos usando patrones comodín
  2. FindReferences - Encuentra todas las referencias a un símbolo específico
  3. GetSymbolInfo - Obtén información detallada sobre un símbolo
  4. AnalyzeDependencies - Analiza dependencias de proyectos y patrones de uso
  5. 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.