AmazingMCP — MCP Server for .NET / C# Codebases
Um servidor MCP que dá aos agentes de IA uma compreensão profunda de codebases C# via Roslyn — busca por tipos, gráficos de dependência, análise de uso e visões gerais de arquitetura, tudo a partir de uma compilação ativa em memória.
Documentação
AmazingMCP — Servidor MCP para Codebases .NET / C#
Um servidor MCP que dá a agentes de IA um entendimento profundo de codebases C# via Roslyn — busca de tipos, grafos de dependência, análise de uso e visões gerais de arquitetura, tudo a partir de uma compilação em memória ao vivo.
Instalação
dotnet tool install -g HoldMyCoolantMeatbag.AmazingMCP
Requer .NET 10 SDK.
Ferramentas MCP
| Ferramenta | Descrição |
|---|---|
query_symbol | Encontra tipos, membros (métodos, propriedades, campos), métodos de extensão, constantes e valores de enum em toda a solução e pacotes NuGet |
get_type_details | Informações completas do tipo: propriedades, métodos, tipos base, tipos aninhados (incluindo NuGet) |
query_usages | Encontra todos os usos de um tipo em toda a solução: chamadas de método, chamadas de construtor, leitura e escrita de propriedade/campo, argumentos e restrições genéricas, tipos de retorno, tipos de parâmetro, herança, nameof, typeof, is/as. Suporta filtragem por predicado e controle de escopo de varredura |
read_cs_file_digest | Ponto de entrada eficiente em tokens para arquivos .cs grandes (centenas ou milhares de linhas): retorna um esboço estrutural — tipos e membros com números de linha, sem implementações. Use este primeiro e depois busque apenas os membros que você precisa com read_large_cs_file |
read_large_cs_file | Lê implementações específicas de membros de um arquivo .cs por filtro de nome — use após read_cs_file_digest para carregar apenas o que é relevante em vez do arquivo inteiro |
decompile_type | Descompila qualquer tipo de um assembly NuGet para código-fonte C# — nenhuma ferramenta externa necessária, ILSpy está embutido |
code_lens | Resolve tipos totalmente qualificados para qualquer intervalo de linhas em um arquivo .cs: variáveis locais, tipos de campo/propriedade, assinaturas de chamadas de método, criações de objetos e declarações — tudo a partir do modelo semântico do Roslyn |
get_project_design | Mapa de arquitetura de alto nível: grupos de abstração por namespace e dependências entre grupos |
get_project_design_details | Visão detalhada de abstrações e implementações para namespaces especificados (suporta curinga *) |
Recursos
- Um servidor, qualquer número de soluções — inicie uma vez e aponte para qualquer projeto por chamada, sem necessidade de reiniciar ao alternar entre soluções.
- Compilação em memória ao vivo — abre
.sln/.slnxvia MSBuild Workspaces e compila todos os projetos em memória. Todas as ferramentas operam sobre um modelo semântico real do Roslyn, não busca de texto. - Cache incremental — o workspace é armazenado em cache com observadores de arquivo. Alterações em
.csdisparam recompilação incremental; alterações em.csproj/.slninvalidam o cache completo. A primeira chamada por solução é lenta; chamadas subsequentes são instantâneas. - Ciente de NuGet — tipos NuGet são totalmente resolvidos e pesquisáveis junto com tipos de código-fonte.
query_symbol,get_type_detailsedecompile_typefuncionam em qualquer pacote referenciado.
Uso
AmazingMCP <options>
# example:
AmazingMCP --urls=http://localhost:7777 --Symbol:QueryOutputLineLimit=50 --ReadCs:ReadOutputMaxLength=50000
# see all options:
AmazingMCP --help
O servidor inicia em http://localhost:7777 por padrão.
Opções de linha de comando
| Opção | Padrão | Descrição |
|---|---|---|
--urls | http://localhost:7777 | URL de escuta |
--Symbol:QueryOutputLineLimit | 100 | Máximo de linhas de saída para query_symbol |
--ReadCs:ReadOutputMaxLength | 20000 | Máximo de caracteres de saída para read_large_cs_file |
--ProjectDesign:DetailsOutputMaxLength | 30000 | Máximo de caracteres de saída para get_project_design_details |
--ProjectDesign:DetailsXmlDocSummaryMaxLength | 2000 | Máximo de caracteres de resumo de documentação XML em get_project_design_details |
--QueryUsages:QueryMatchLimit | 200 | Máximo de correspondências de uso para query_usages |
--Diagnostics:IncludeExceptionDetails | false | Incluir detalhes completos de exceção nas respostas de erro das ferramentas (para diagnóstico) |
--HttpServerTransport:IdleTimeout | 7.00:00:00 | Tempo limite de inatividade da sessão MCP — por quanto tempo uma sessão é mantida ativa sem atividade (ex.: 7.00:00:00 para 7 dias, 2:00:00 para 2 horas) |
--DisabledTools | (nenhum) | Lista separada por vírgulas de nomes de ferramentas para desabilitar (ex.: code_lens,get_project_design) |
Configuração do Cliente MCP
Adicione à configuração do seu cliente MCP (Claude Desktop, JetBrains AI, Kiro, etc.):
{
"mcpServers": {
"AmazingMCP": {
"type": "http",
"url": "http://localhost:7777"
}
}
}
Em seguida, inicie o servidor manualmente no seu terminal:
AmazingMCP --urls=http://localhost:7777 <other options>
Ou adicione uma entrada de inicializador para que o cliente inicie o servidor automaticamente:
{
"mcpServers": {
"AmazingMCP": {
"type": "http",
"url": "http://localhost:7777"
},
"AmazingMCP Launcher": {
"command": "AmazingMCP",
"args": ["--urls=http://localhost:7777"]
}
}
}
Documentação
- Changelog
- QuerySymbol — busca de tipos e membros
- QueryUsages — busca de usos
- CodeLens — resolução de tipos para um trecho de código
- FileStructure — leitura de arquivo eficiente em tokens
- DecompileType — descompilação de assembly NuGet
- ProjectDesign — ferramenta de visão geral de arquitetura
- DependencyMap — mapa de dependências
Contribuindo
PRs e issues são bem-vindos. Por favor, abra uma issue antes de enviar uma alteração grande.
git clone https://github.com/remleo/AmazingMCP
cd AmazingMCP
dotnet build
dotnet test
Licença
MIT