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
-
Clone ou baixe o projeto
git clone https://github.com/carquiza/RoslynMCP.git cd RoslynMCP/RoslynMcpServer -
Restaure os pacotes NuGet
dotnet restore -
Compile o projeto
dotnet build -
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
- SearchSymbols - Pesquisa símbolos usando padrões curinga
- FindReferences - Encontra todas as referências a um símbolo específico
- GetSymbolInfo - Obtém informações detalhadas sobre um símbolo
- AnalyzeDependencies - Analisa dependências de projetos e padrões de uso
- 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.