Roslyn MCP Server

Um servidor MCP em C# que utiliza o compilador Roslyn da Microsoft para análise e navegação de código em bases de código C#.

Documentação

Roslyn MCP Server

Um servidor MCP (Model Context Protocol) em C# que se integra à plataforma de compilador Roslyn da Microsoft para fornecer ao Claude Desktop capacidades de análise e navegação de código para bases de código C#.

Recursos

  • Pesquisa de Símbolos com Curingas - Encontre classes, métodos e propriedades usando correspondência de padrões (*Service, Get*User, etc.)
  • Rastreamento de Referências - Localize todos os usos de símbolos em soluções inteiras
  • Informações de Símbolos - Obtenha informações detalhadas sobre tipos, métodos, propriedades e mais
  • Análise de Dependências - Analise dependências de projetos e padrões de uso de namespaces
  • Análise de Complexidade de Código - Identifique métodos de alta complexidade usando métricas de complexidade ciclomática
  • Otimizado para Desempenho - Cache em múltiplos níveis e análise incremental para grandes bases de código
  • Segurança - Validação de entrada e sanitização de caminhos

Pré-requisitos

  • .NET 8.0 SDK ou posterior
  • Visual Studio 2022 ou VS Code (recomendado para desenvolvimento)
  • Aplicativo Claude Desktop

Instalação

  1. Clone ou baixe o projeto

    git clone https://github.com/carquiza/RoslynMCP.git
    cd RoslynMCP/RoslynMcpServer
    
  2. Restaure os pacotes NuGet

    dotnet restore
    
  3. Compile o projeto

    dotnet build
    
  4. Teste o servidor (opcional)

    dotnet run
    

Configuração Rápida

Windows

Execute o script de configuração do PowerShell:

.\setup.ps1

Linux/macOS

Execute o teste de instalação:

./test-installation.sh

Configuração do Claude Desktop

Para conectar este servidor MCP ao Claude Desktop, você precisa modificar o arquivo de configuração do Claude Desktop:

Localização do Arquivo de Configuração

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Conteúdo da Configuração

Adicione o seguinte ao seu arquivo 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: Substitua /path/to/RoslynMCP/RoslynMcpServer pelo caminho absoluto real do diretório do seu projeto.

Uso

Após a configuração, reinicie o Claude Desktop. Você deve ver o Roslyn MCP Server aparecer nas ferramentas disponíveis. Aqui estão alguns exemplos de consultas:

Pesquisar Símbolos

Search for all classes ending with 'Service' in my solution at C:\MyProject\MyProject.sln

Encontrar Referências

Find all references to the UserRepository class in C:\MyProject\MyProject.sln

Obter Informações de Símbolo

Get information about the CalculateTotal method in C:\MyProject\MyProject.sln

Analisar Dependências

Analyze dependencies for the solution at C:\MyProject\MyProject.sln

Análise de Complexidade de Código

Find methods with complexity higher than 7 in C:\MyProject\MyProject.sln

Ferramentas Disponíveis

  1. SearchSymbols - Pesquisa símbolos usando padrões curinga
  2. FindReferences - Encontra todas as referências a um símbolo específico
  3. GetSymbolInfo - Obtém informações detalhadas sobre um símbolo
  4. AnalyzeDependencies - Analisa dependências de projetos e padrões de uso
  5. AnalyzeCodeComplexity - Identifica métodos de alta complexidade

Desenvolvimento e Testes

Usando o MCP Inspector

Para desenvolvimento e testes, você pode usar o MCP Inspector:

# Install the inspector
npm install -g @modelcontextprotocol/inspector

# Test your server
npx @modelcontextprotocol/inspector dotnet run --project ./RoslynMcpServer

Arquitetura

O servidor possui uma arquitetura modular com:

  • Camada de Servidor MCP: Gerencia a comunicação com o Claude Desktop
  • Camada de Integração Roslyn: Gerencia workspaces e compilações
  • Camada de Mecanismo de Busca: Implementa pesquisa e análise de símbolos
  • Cache em Múltiplos Níveis: Otimização de desempenho para grandes bases de código
  • Camada de Segurança: Validação e sanitização de entrada

Licença

Este projeto é licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.

Autor

Christopher Arquiza

Contribuição

Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.