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#

NuGet License: MIT .NET 10

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

FerramentaDescrição
query_symbolEncontra 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_detailsInformações completas do tipo: propriedades, métodos, tipos base, tipos aninhados (incluindo NuGet)
query_usagesEncontra 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_digestPonto 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_fileLê 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_typeDescompila qualquer tipo de um assembly NuGet para código-fonte C# — nenhuma ferramenta externa necessária, ILSpy está embutido
code_lensResolve 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_designMapa de arquitetura de alto nível: grupos de abstração por namespace e dependências entre grupos
get_project_design_detailsVisã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/.slnx via 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 .cs disparam recompilação incremental; alterações em .csproj/.sln invalidam 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_details e decompile_type funcionam 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çãoPadrãoDescrição
--urlshttp://localhost:7777URL de escuta
--Symbol:QueryOutputLineLimit100Máximo de linhas de saída para query_symbol
--ReadCs:ReadOutputMaxLength20000Máximo de caracteres de saída para read_large_cs_file
--ProjectDesign:DetailsOutputMaxLength30000Máximo de caracteres de saída para get_project_design_details
--ProjectDesign:DetailsXmlDocSummaryMaxLength2000Máximo de caracteres de resumo de documentação XML em get_project_design_details
--QueryUsages:QueryMatchLimit200Máximo de correspondências de uso para query_usages
--Diagnostics:IncludeExceptionDetailsfalseIncluir detalhes completos de exceção nas respostas de erro das ferramentas (para diagnóstico)
--HttpServerTransport:IdleTimeout7.00:00:00Tempo 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

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