AIContextBuilder (AICB) - Roslyn MCP Server for C#/.NET

Servidor MCP Roslyn e CLI para inteligência de código C#/.NET: análise semântica e navegação de código para agentes de codificação - chamadores, impacto de mudanças, implementações, injeção de dependência, testes, efeitos colaterais, código morto e contexto com orçamento de tokens. Executa localmente via stdio, sem telemetria. Código fechado; gratuito para indivíduos, educação e organizações abaixo dos limites de licença.

Documentação

AIContextBuilder (aicb)

NuGet Version NuGet Downloads MCP Registry License M8ven Verified

Dê aos agentes de codificação um mapa preciso do Roslyn da sua solução C#/.NET. aicb é um servidor de inteligência de código para C# e .NET: ele responde perguntas sobre chamadores, implementações, injeção de dependência, testes, efeitos colaterais e impacto de mudanças, e então empacota o código relevante em Markdown compacto para um LLM. Ele roda localmente como um servidor MCP e CLI; um aplicativo de desktop para Windows adiciona seleção visual de contexto, análise e edição.

O software é de código fechado. Este repositório público contém sua documentação, licença e versões. É gratuito para indivíduos, educação e organizações abaixo dos limites de licença.

Veja-o responder a uma pergunta de código

Pergunte ao seu agente de codificação:

O que poderia ser afetado se eu alterar ColorMixerService? Use AICB.

Ou chame a mesma ferramenta a partir de um terminal:

aicb call impact_of_change --sln C:/repo/App.sln --arg symbol=ColorMixerService

Saída resumida do exemplo ColorMixer.SelectionLab incluído:

{
  "symbol": "ColorMixerService",
  "resolvedKind": "type",
  "directCount": 1,
  "transitiveCount": 2,
  "risk": "low",
  "productionImpactCount": 2,
  "directImpact": { "items": ["DemoCompositionRoot"] }
}

A página MCP Usage do aplicativo de desktop registra chamadas localmente e separa recusas orientadas de suspeitas de defeitos:

AICB MCP Usage statistics showing calls, sessions, latency and the most-used tools

Essa resposta vem do grafo de símbolos do Roslyn, não de uma busca por substring. AICB distingue sobrecargas, segue relações de interface e override, entende tipos parciais e registra caminhos de construção de DI.

Construa contexto que se ajuste à tarefa

AICB faz mais do que responder perguntas individuais sobre símbolos. Ele pode montar um pacote de contexto focado e específico para a tarefa de um agente, em vez de enviar um despejo de código-fonte sem filtro:

NecessidadeFerramentaO que ela retorna
Ler um símbolo em contextoget_contextO símbolo mais suas dependências diretas e chamados
Explorar um símbolo nomeado com arredores selecionadosexplain_symbolChamadores, chamados, implementações, testes ou outras dimensões solicitadas
Empacotar contexto para um objetivo em linguagem naturalpack_for_taskSímbolos nomeados pelo objetivo e sua vizinhança semântica
Preparar-se para editarprepare_taskO contexto focado no objetivo mais testes de cobertura e prováveis irmãos, como uma fábrica ou validador
Verificar o custo da resposta primeiromeasureA contagem exata de tokens de uma ou mais respostas planejadas da ferramenta, sem retornar seus grandes payloads

As ferramentas de contexto focado aceitam um orçamento de tokens. Símbolos-semente explicitamente nomeados permanecem no pacote; AICB primeiro reduz o detalhe de métodos e depois remove conteúdo circundante menos relevante quando o orçamento está apertado. Ele não corta texto no meio de um bloco, e uma nota inicial divulga tipos, testes ou irmãos que foram omitidos. AICB pode, portanto, informar que um pacote foi estruturalmente reduzido ou limitado; ele não pode certificar que o orçamento restante é suficiente para resolver a tarefa corretamente. A renderização de documento inteiro pode usar o mesmo pipeline de orçamento por meio de um perfil de pipeline, incluindo uma margem de estouro configurável e um relatório de corte opcional.

O resultado é AI-Builder-MD: Markdown estruturado para um LLM, contendo o código selecionado juntamente com relações de símbolos, grafos de arquitetura, metadados semânticos e proveniência. Ele pode usar a notação de tags estabelecida ou YAML. Consulte o guia de documento de contexto e as ferramentas de empacotamento de tarefas.

Adicione significado explícito com AI Tags e anotações semânticas

AICB funciona sem anotações. Onde a estrutura do código-fonte e as convenções não são suficientes, tags opcionais <ai> na documentação XML permitem que um desenvolvedor declare o papel pretendido de um tipo ou método explicitamente:

/// <ai
///   role="service"
///   layer="Application"
///   responsibility="Coordinates order validation and submission."
///   stability="Stable"
/// />
public sealed class OrderService

Anotações podem descrever semântica como papel, domínio, camada arquitetural, prioridade, estabilidade, responsabilidade e efeitos colaterais. Valores explícitos têm precedência sobre a inferência heurística; valores sentinela como none podem deliberadamente suprimir a inferência para um campo. AICB preserva a proveniência para que um agente possa distinguir fatos derivados do código-fonte, significado fornecido pelo autor e dicas inferidas. A referência de anotação de IA documenta as formas e campos suportados.

AIContextBuilder desktop app with a loaded solution

Como a análise e a memória funcionam

.sln / .slnx / .slnf + C# + XAML/AXAML
                 ↓
        MSBuild + Roslyn semantic models
                 ↓
  AICB facts and consolidated semantic indexes
                 ↓
 individual answers or budgeted AI-Builder-MD

AICB é mais do que um cache de respostas em torno do Roslyn. Durante a análise, ele percorre os documentos C# da solução, registra declarações, chamadas, referências de tipo e outros fatos, e então consolida chamadores e fan-in de tipos, implementações, referências de markup resolvidas e classificações transitivas de efeitos colaterais. As ferramentas percorrem ou projetam esse modelo aquecido para uma pergunta específica; as ferramentas de contexto selecionam e renderizam uma fatia específica da tarefa. Isso não significa que toda resposta possível ou relação de tempo de execução seja pré-computada.

Uma sessão MCP pertence a um processo aicb mcp e fixa tanto o grafo analisado quanto seu workspace do Roslyn. Um segundo processo de servidor constrói sua própria sessão. O aplicativo de desktop, a CLI e o servidor MCP usam o mesmo mecanismo de análise e renderização e podem compartilhar configuração e snapshots persistidos por meio do banco de dados local, mas não compartilham um grafo vivo em memória. Dentro de uma sessão, apenas uma atualização é executada por vez; chamadores concorrentes se juntam a ela. Uma edição somente de código-fonte pode seguir o caminho incremental, reproduzindo o texto do documento alterado sem recarregar o workspace. Quando esse caminho não está disponível, ou quando force: true é solicitado, AICB o recarrega completamente.

Sessões ao vivo, snapshots e memória persistente do codebase

Esses estados servem a propósitos diferentes e não devem ser tratados como intercambiáveis:

EstadoVida útil e propósitoLimite importante
Sessão MCP ao vivoGrafo em memória e workspace do Roslyn reutilizados por um processo de servidorVê arquivos salvos, não buffers de editor não salvos; outro processo de servidor tem uma sessão separada
Codebase lembradoremember_codebase persiste um modelo analisado; recall_codebase pode reidratá-lo mais tarde ou em outro processo sem executar o RoslynUma sessão recuperada não tem workspace ao vivo, números de linha confiáveis e um contrato de insight reduzido; use refresh_remembered quando precisão ao vivo for necessária
Snapshot salvoLinha de base nomeada usada por compare_with_previous e comparação de contrato públicoUma linha de base de comparação, não um workspace ao vivo
<Solution>.aicb.jsonConfiguração de solução rastreável por GitContém regras e escolhas, nunca resultados de análise, sessões ou credenciais

remember_codebase, recall_codebase e refresh_remembered são ferramentas opt-in: nenhum perfil MCP as expõe, então inicie o servidor com AICB_MCP_TOOLS nomeando-as (ou AICB_MCP_TOOLS=all). recall_codebase informa se o modelo persistido ainda corresponde ao código-fonte, ao esquema de payload e à identidade do analisador. Ele deliberadamente retorna o modelo recuperado mesmo quando está desatualizado, com metadados que informam ao agente quando uma reanálise ao vivo é necessária. Consulte sessões, recall e desatualização.

O que o modelo pode e não pode provar

  • AICB analisa C# estaticamente visível e relações XAML/AXAML selecionadas. Código alcançado apenas por reflexão, varredura de assemblies em tempo de execução, configuração dinâmica ou um consumidor externo pode permanecer invisível.
  • A análise de DI reconhece registros legíveis estaticamente no formato Microsoft-DI; registros produzidos em tempo de execução são divulgados como dinâmicos ou desconhecidos, em vez de inventados.
  • A análise de vinculação XAML resolve caminhos apenas onde a origem e o tipo de dados são seguros de estabelecer. Escopos desconhecidos são ignorados de forma conservadora.
  • Um efeito colateral relatado é uma classificação estática conservadora de contato propagada por arestas de chamada conhecidas. Não é análise geral de fluxo de dados, taint ou estado de tempo de execução.
  • As respostas divulgam sessões desatualizadas, projetos não resolvidos e conjuntos de resultados limitados. Leia staleness, incompleteProjects, totalFound e truncated antes de tratar uma resposta vazia ou curta como prova.

Como um agente deve julgar uma resposta

Uma resposta do AICB é evidência juntamente com seus limites. Antes de agir sobre um resultado vazio, curto ou aparentemente definitivo, inspecione os sinais que o acompanham:

SinalSignificadoResposta típica
stalenessO código-fonte salvo mudou após a análise, ou uma atualização automática foi executada ou falhouSalve os arquivos e atualize se a resposta não estiver atual
incompleteProjects ou verdict: "inconclusive"As referências de projeto não puderam ser resolvidas bem o suficiente para um grafo semântico completoRestaure ou compile e então chame refresh_session(force: true)
totalFound e truncatedExistem mais correspondências do que as retornadasReduza o escopo, pagine ou aumente o limite documentado
Manifesto do pacote ou nota de omissão inicialUm orçamento de tokens removeu tipos, testes ou implementações irmãs circundantesAumente o orçamento ou solicite o eixo ausente explicitamente
mergedNamesakes, ambiguidade ou múltiplos candidatosUm nome não resolveu para um único símbolo únicoRepita a consulta com um nome de símbolo qualificado
confidence, proveniência, marcadores dinâmicos ou desconhecidosUm valor é medido, fornecido pelo autor, inferido ou não estaticamente conhecívelPreserve a incerteza e verifique a configuração de tempo de execução relevante quando necessário
origin: "Recalled" ou lineNumbersAvailable: falseA resposta veio da memória persistida em vez de um workspace ao vivo do RoslynUse refresh_remembered antes de confiar em detalhes somente ao vivo

O perfil MCP controla a atualização automática. Off apenas divulga divergência, Reactive atualiza antes que uma ferramenta de leitura responda e é a configuração normal enviada, enquanto Proactive inicia a análise após as edições salvas se estabilizarem. A atualização automática nunca vê buffers de editor não salvos. Desatualização também é diferente de incompletude de referência: a primeira precisa de uma atualização; a segunda normalmente precisa de uma restauração ou compilação seguida de uma atualização forçada.

AICB também distingue desconhecido de ausente verificado. Ferramentas como assert_absence retornam confirmed, refuted ou indeterminate em vez de transformar evidência ausente em um falso negativo.

O guia de arquitetura, limites e evidências orientado a perguntas explica o que vive na memória, como atualização e seleção de contexto funcionam, quais afirmações são medidas e onde o benchmark de escala publicado está.

Onde ele ajuda

PerguntaFerramenta
Quem chama ou usa isso?find_usages
Qual é o raio de impacto de uma mudança?impact_of_change
Onde esta interface é implementada ou sobrescrita?find_implementations, find_overrides
Quais testes exercitam este símbolo?find_tests_for
O que é injetado aqui?resolve_injection
Qual código tem efeitos colaterais ou chama uma API externa?find_by_side_effects, calls_external
Qual contexto um agente precisa para esta tarefa?explain_symbol, prepare_task, pack_for_task
Quão grandes seriam essas respostas antes de eu puxá-las?measure
Onde esta propriedade ou recurso é usado em XAML/AXAML?find_binding_usages, find_resource_usages
Quais vinculações de markup não podem ser resolvidas com segurança?find_unresolved_bindings
O que mudou entre dois estados analisados?semantic_diff, diff_review
Este conjunto de mudanças viola uma política ou contrato público?evaluate_change_set, compare_public_api
A afirmação de que este símbolo não é usado, não testado ou ausente é realmente suportada?assert_absence, verify_claim
Que evidência um revisor deve ver para estes símbolos alterados?review_context
Onde estão os riscos de concorrência, tempo de vida de recursos ou assinatura de eventos?find_by_concurrency_risk, find_by_resource_leak, find_by_event_subscription
Onde estruturas repetidas, convenções ou documentação divergiram?find_structural_twins, check_pattern_drift, check_doc_drift
O perfil padrão expõe todas as ferramentas desta tabela, exceto semantic_diff,
diff_review, find_by_concurrency_risk, find_by_resource_leak,
find_structural_twins, check_pattern_drift e check_doc_drift, que exigem o
perfil Full Select, e compare_public_api, que é opcional (consulte
Conjuntos de ferramentas e Agent Skills).

Essas ferramentas formam um mapa de capacidades mais amplo, em vez de um catálogo de pesquisa simples:

CapacidadeExemplos
Navegação semânticausos, implementações, substituições, hierarquia, DI e XAML
Segurança de alteraçõesimpacto, testes, diagnósticos, contexto de revisão e comparação de API pública
Indicadores de risco em tempo de execuçãoconcorrência, recursos, eventos, chamadas externas e efeitos colaterais
Arquitetura e consistênciacamadas, ciclos, gêmeos estruturais, desvio de padrões e desvio de documentação
Verificaçãoafirmações negativas, afirmações de linha de base para alterações e política de conjunto de alterações
Economia de contextoempacotamento de tarefas, medição, orçamentos de tokens e compactação

O aplicativo desktop transforma descobertas de qualidade de código, segurança, design e arquitetura em uma fila de revisão acionável:

AICB Insights page with prioritized code-quality, security, design and architecture findings

O AICB é mais útil para soluções C#/.NET não triviais e perguntas semânticas que a pesquisa de texto simples não consegue responder de forma confiável. Ele analisa C#; relacionamentos selecionados de XAML/AXAML complementam esse grafo. Outras linguagens de programação estão fora do escopo.

Projetos com múltiplos alvos são carregados uma vez por estrutura de destino por padrão, enquanto as superfícies de consulta geralmente os deduplicam para um projeto lógico. Definir analyzePreferredTfmOnly em <Solution>.aicb.json reduz o trabalho de análise e exportação para a instância mais recente da estrutura de destino. O inventário de símbolos permanece disponível, mas as arestas de fan-in que existem apenas em outro destino podem desaparecer, portanto, esta é uma escolha documentada de precisão versus custo, em vez de uma otimização transparente.

Um fluxo de trabalho seguro para agentes

Um agente pode usar o AICB sem memorizar o catálogo de ferramentas:

  1. Chame server_info para verificar a conexão e detectar desvios binários ou de configuração. Use list_skills para o mapa completo de capacidades ou docs() para o manual operacional integrado.
  2. Inicie uma tarefa de edição com prepare_task para coletar os símbolos nomeados, o contexto relevante, os testes que cobrem e as implementações irmãs prováveis dentro de um orçamento.
  3. Antes de alterar um símbolo que outro código referencia, chame impact_of_change; use find_tests_for quando o pacote de tarefas não fornecer evidências de teste suficientes.
  4. Leia os sinais de incerteza e completude antes de tratar um resultado vazio como prova. Qualifique nomes de símbolos ambíguos; restaure e force a atualização de projetos incompletos.
  5. Faça e salve a alteração. Em seguida, chame refresh_session antes de get_diagnostics. No perfil normal Reactive, isso geralmente é redundante, mas permanece correto em todos os modos e torna explícita a fronteira pretendida.
  6. Use review_context, evaluate_change_set ou verify_claim quando a tarefa fizer uma afirmação de revisão ou política; não infira ausência apenas a partir de um resultado de pesquisa curto.
  7. Finalize com os comandos reais de build e teste do repositório. get_diagnostics relata diagnósticos do compilador Roslyn, não resultados de analisadores de terceiros ou de tempo de execução.

Para várias perguntas independentes somente de leitura, batch reutiliza uma sessão e retorna uma resposta limitada. Use measure primeiro quando o tamanho provável da resposta for importante.

Análise reproduzível, CI e revisão

NecessidadeFluxo de trabalho do AICB
Versionar as regras portáteis da soluçãoConfirme <Solution>.aicb.json ao lado da solução. Ele pode conter regras de camadas, exclusões de namespaces, definições de teste, supressões, sinalizadores de inicialização automática e escopo de análise. Cada superfície consome apenas os eixos documentados para ela; o sidecar contém configuração, não resultados de análise, sessões, snapshots ou credenciais. Use solution_config_status → init_solution_config → apply_solution_config; aicb init não cria este arquivo.
Aplicar um limite de qualidade no CIExecute aicb analyze -s App.sln -o context.md --fail-on "critical>0 OR debt>120min". Uma porta reprovada retorna o código de saída 6 e ainda grava o documento de contexto para diagnóstico.
Comparar uma alteração in loco com uma linha de baseChame save_session antes da edição, depois refresh_session e compare_with_previous; use diff_public_contract (perfil Full Select) quando a API pública for o contrato que importa.
Revisar dois estados analisados ativossemantic_diff relata alterações estruturais. diff_review adiciona raio de explosão, testes e descobertas recém-introduzidas com um veredito de política. Essas ferramentas de duas sessões exigem o perfil Full Select.
Reutilizar um modelo analisado entre processosremember_codebase o persiste, recall_codebase o carrega sem Roslyn e refresh_remembered restaura uma análise ativa completa quando necessário. Essas três são ferramentas opcionais (AICB_MCP_TOOLS).
Selecionar contexto visualmenteO aplicativo Windows adiciona uma árvore de solução, seleção manual de contexto, controles de detalhes e tokens, visualização/exportação de AI-Builder-MD, snapshots, Insights, execuções de LLM e um editor de código-fonte.

A precedência de configuração é específica de eixo e superfície. Por exemplo, o mapeamento de camadas headless pode recorrer ao sidecar, enquanto a detecção de testes headless atualmente resolve a partir do banco de dados ou de regras integradas, em vez do eixo de testes do sidecar. A matriz exata está no guia de configuração. Uma sessão MCP em execução mantém a configuração com a qual foi analisada; após editar o sidecar, inicie uma nova análise em vez de presumir que refresh_session o relê. Supressões ocultam descobertas aceitas das superfícies de leitura que respeitam supressões, mas solution_metrics e a porta de qualidade da CLI continuam a contá-las. Uma supressão compartilhada é, portanto, uma decisão de revisão explícita, não uma forma de reduzir a porta.

Do mecanismo semântico ao espaço de trabalho com intervenção humana

O servidor MCP é atualmente a superfície de integração mais completa e operacionalmente madura do AICB. Suas 82 ferramentas registradas cobrem navegação semântica, impacto de alterações, injeção de dependência, descoberta de testes, arquitetura, qualidade, empacotamento de contexto, revisão e gerenciamento de sessões. Os perfis expõem um padrão selecionado de 54 ferramentas ou o conjunto Full Select de 72 ferramentas, enquanto sessões, sinais de desatualização e respostas limitadas tornam a superfície prática para agentes de codificação. Esses números descrevem a superfície de produto disponível; não são um benchmark publicado de qualidade de resultado de agente.

O perfil MCP ativo também seleciona facetas orientadas a tarefas: cada faceta conecta orientação de agente, um slot de modelo de contexto e o subconjunto de ferramentas correspondente. list_skills é a fonte de verdade em tempo de execução para quais ferramentas estão expostas, quais são chamáveis e quais ferramentas registradas adicionais estão fora do pool ativo.

O aplicativo Windows complementa essa superfície voltada para agentes com um espaço de trabalho visual para pessoas: navegação de solução, seleção manual de contexto, controles de detalhes e tokens, visualização e exportação de AI-Builder-MD, snapshots, Insights, configuração reutilizável e execuções manuais de LLM.

Perfis de análise de qualidade e específicos de solução

Um Perfil de Qualidade controla quais produtores de insights são executados e os limites que eles usam, como comprimento de método, complexidade ciclomática e tamanho de classe. Ele não define por si só a gravidade das descobertas ou a porta de qualidade da CLI.

AICB Quality Profiles editor with producer switches and thresholds

Cada solução também tem três eixos de análise independentes:

EixoPergunta que respondeO que controla
Perfil de CamadasOnde esse código pertence arquiteturalmente?Mapeamentos ordenados de padrão de namespace para camada, para camadas como Domain, Application e Infrastructure. A primeira regra correspondente vence. O perfil também determina se uma violação de camada cruzada detectada é Advisory (aviso) ou Strict (crítico).
Excluir NamespacesO que deve ficar fora da análise?Padrões de namespace nomeados ignorados pelo analisador, usando correspondência Contains, StartsWith, EndsWith ou Exact. Isso mantém dependências configuradas de framework ou fornecedor fora do grafo semântico; os predefinidos enviados cobrem o BCL e o SAP Business One.
Perfil de TestesO que conta como código de teste?Regras de nome de projeto mais marcadores de atributo de método. Os perfis integrados reconhecem convenções xUnit, NUnit e MSTest, e ferramentas focadas em produção podem excluir o código de teste detectado por padrão.

O aplicativo desktop apresenta esses três seletores lado a lado para a solução selecionada. As páginas de Configurações são os editores de biblioteca; os seletores do Workspace escolhem qual entrada de biblioteca se aplica a esta solução específica. Uma escolha por solução vence sobre o padrão global.

AICB Workspace showing Layer Profile, Exclude Namespaces and Test Profile side by side

Inicializar os três eixos

Para uma solução recém-registrada, todos os três sinalizadores de inicialização automática começam habilitados. Na próxima vez que o Context Builder do desktop a carregar, o AICB tenta cada eixo ainda não configurado. Se um sidecar já cobrir um eixo, a GUI oferece restaurá-lo sem uma chamada de modelo. Caso contrário, com um perfil de modelo padrão utilizável, uma solicitação de LLM propõe regras de camadas e exclusões a partir de listas de namespaces declarados e referenciados; a detecção de testes é derivada localmente dos projetos analisados e atributos de teste. O diálogo de confirmação decide se a proposta é aplicada - a solicitação de LLM já ocorreu nesse ponto. Um perfil de modelo ausente, nenhum teste detectado ou a recusa da proposta pode deixar um eixo não configurado. Escolhas existentes nunca são sobrescritas.

A inicialização automática bem-sucedida da GUI armazena os perfis escolhidos no banco de dados local. Ela não cria <SolutionName>.aicb.json automaticamente. Use Workspace → Profiles → Export Config para gravar esse sidecar portátil e depois confirme-o. Uma GUI posterior pode restaurar os eixos suportados a partir dele sem uma chamada de LLM; consumidores headless aplicam as regras por eixo descritas na matriz de configuração. Initialize Now executa apenas uma restauração imediata do sidecar - não chama um modelo nem analisa a solução.

Um agente pode orientar a mesma configuração explicitamente:

  1. solution_config_status relata quais eixos estão inicializados e se seus valores ativos vêm do banco de dados local, do sidecar ou de nenhum deles.
  2. init_solution_config retorna material de proposta: namespaces declarados para o mapa de camadas, namespaces referenciados para exclusões e projetos de teste detectados e atributos para o perfil de testes.
  3. Após revisar ou adaptar essa proposta, apply_solution_config cria e ativa as entradas personalizadas, marca os eixos como inicializados e grava tanto o banco de dados de configuração local quanto <SolutionName>.aicb.json ao lado da solução.
  4. Confirme o sidecar para que a configuração portátil da solução viaje com o repositório. Cada consumidor aplica os eixos suportados descritos acima; não presuma que toda superfície resolve cada campo de forma idêntica. Posteriormente, check_solution_config_drift relata namespaces ou projetos de teste não mais cobertos por essa configuração.

aicb init é uma operação diferente: ela conecta um repositório ao servidor MCP e instala a skill do agente e o guarda de símbolos opcional. Ela não inicializa esses três eixos de solução nem cria <SolutionName>.aicb.json.

Consulte perfis e configuração de solução para precedência, o esquema do sidecar e o comportamento completo de inicialização.

Modelos de contexto e modelos de execução

Os dois tipos de modelo têm responsabilidades diferentes:

Tipo de modeloPropósito
Modelo de Contexto (Templates)Define o que entra em uma exportação: prompt, perfil de Markdown, predefinições de detalhes, estratégias de expansão, compactação, configurações de qualidade e opções de exportação
Modelo de Execução (Run Templates)Define como uma tarefa é executada: tipo de execução, modelo de contexto selecionado, padrões de modelo e opções específicas de execução

Predefinições de Detalhes, Perfis de Markdown, Estratégias de Expansão, Regras de Compactação, Perfis de Pipeline e Perfis de Qualidade são blocos de construção reutilizáveis referenciados por um modelo de contexto; um modelo de execução seleciona esse modelo de contexto.

AICB Context Templates editor with prompt, detail-level and export configuration

Direção do produto, não um compromisso de lançamento

A direção para o aplicativo desktop é um espaço de orquestração voltado para humanos: um desenvolvedor seleciona e restringe o contexto, inspeciona resultados intermediários, aprova decisões e controla o que um modelo de IA executa em seguida. Manual é o tipo de execução lançado hoje. Iteration destina-se a processar nós selecionados um a um, e Preselection a permitir que um modelo restrinja o contexto relevante antes da execução principal; ambos estão representados no aplicativo, mas ainda não foram lançados. Pipeline atualmente existe apenas como um espaço reservado no modelo de dados e não executa nada.

Instalação

Instale uma forma por máquina:

Você querInstalaçãoPlataforma
Servidor MCP e CLIFerramenta global .NET aicb-roslyn-mcpWindows, Linux, macOS
Aplicativo desktop mais o mesmo servidor MCP e CLIInstalador Windows ou ZIP portátilWindows

A ferramenta .NET precisa do .NET 8 SDK. Sem o .NET 8, ela executa na próxima versão mais recente do .NET na máquina e precisa do SDK dessa versão, então apenas o .NET 10 SDK funciona:

dotnet tool install -g aicb-roslyn-mcp
aicb --version

Até 0.5.465.1, o pacote era chamado AIContextBuilder. Uma atualização não cruza essa renomeação: remova o pacote antigo primeiro e depois instale o novo como acima.

dotnet tool uninstall -g AIContextBuilder

Atualize-o depois com dotnet tool update -g aicb-roslyn-mcp. Para um contêiner, o Dockerfile do repositório instala a mesma ferramenta .NET e serve MCP via stdio.

Se a ferramenta relatar que o MSBuild não pôde ser registrado, o .NET no qual ela executa não tem SDK próprio (por exemplo, um runtime .NET 9 ao lado do SDK .NET 10): instale o SDK .NET 8 ou defina a variável de ambiente DOTNET_ROLL_FORWARD=LatestMajor para que ela use o .NET mais recente.

Os downloads do Windows são autossuficientes, mas analisar uma solução ainda precisa do MSBuild de um SDK .NET ou Visual Studio. O instalador ainda não é assinado com código, então o Windows SmartScreen exibe um aviso; cada versão fornece somas de verificação SHA-256.

Conectar um agente de codificação

Execute isto a partir do projeto no qual você quer que o agente trabalhe:

aicb init

Ele grava .mcp.json, a configuração MCP que o Claude Code lê (outros clientes precisam da etapa manual mencionada abaixo), e a habilidade de agente aicb-csharp-context em .claude/skills/, sem sobrescrever arquivos existentes. Se ele detectar configuração de projeto do Claude Code, Codex ou OpenCode, também instala uma proteção de símbolo que bloqueia buscas de símbolos C# por grep e redireciona o agente para a ferramenta semântica. Isso altera intencionalmente o comportamento do agente. Opte por não participar com:

aicb init --hooks none

Status específico do cliente:

ClienteConfiguração MCPHabilidade e proteção
Claude Code.mcp.json gravado por aicb initHabilidade e proteção opcional instaladas
CodexAdicione aicb mcp por meio da configuração MCP do clienteProteção opcional suportada; local da habilidade não é adivinhado
OpenCodeAdicione aicb mcp a opencode.jsonProteção opcional suportada; local da habilidade não é adivinhado
Cursor / Cline / outros clientes stdioAdicione o comando aicb com o argumento mcpUse a habilidade publicada se o cliente suportar Agent Skills

Configuração manual de .mcp.json para clientes que a leem:

{
  "mcpServers": {
    "aicb": {
      "command": "aicb",
      "args": ["mcp"]
    }
  }
}

Verifique a conexão pedindo ao cliente para chamar server_info. Cada ferramenta de análise aceita um caminho absoluto de .sln, .slnx ou .slnf como sua sessão, então nenhuma etapa de análise separada é necessária. Veja o guia de cinco minutos para configuração, primeiras perguntas e solução de problemas.

Conjuntos de ferramentas e Agent Skills

ConjuntoTamanhoPropósito
Perfil MCP padrão54 ferramentasFerramentas semânticas e estruturais selecionadas para trabalho normal de agente
Perfil Full Select72 ferramentasConjunto padrão mais a cauda longa medida
Superfície completa do servidor82 ferramentasFull Select mais as ferramentas opcionais de memória de sessão, banco de dados e comparação de API

Inicie o perfil Full Select com aicb mcp --mcp-profile mcp-profile/full. Defina AICB_MCP_TOOLS=all para adicionar também as ferramentas opcionais. A referência de ferramentas gerada documenta o conjunto padrão; o manual do servidor MCP documenta todas as 82 ferramentas e seus parâmetros, e junto a elas sessões e obsolescência, perfis, pools e facetas, e o que aicb init grava — doze capítulos em Markdown, legíveis no navegador e por um agente, e também publicados como um PDF.

As três contagens publicadas são pontos de partida, não edições fixas. No editor MCP Profiles do desktop, você pode criar ou duplicar um perfil, habilitar apenas as facetas de tarefa desejadas e selecionar ferramentas individuais de núcleo e faceta. Toda ferramenta de núcleo pode ser removida, exceto o diagnóstico bloqueado server_info, então até mesmo um tools/list muito pequeno e específico de tarefa é possível. A introdução fixa do servidor é orientação permanente do agente, não outro grupo de ferramentas selecionável. Para configuração headless, AICB_MCP_TOOLS=methods:<tool>,<tool>,... expõe exatamente as funções nomeadas; listas de classes, lean e all também são suportadas. Alterações de perfil e ambiente entram em vigor na próxima inicialização do servidor. list_skills mostra as ferramentas resultantes dentro e fora do pool. Veja perfis, pools e facetas.

Quatro Agent Skills acompanham skills/:

  • aicb-csharp-context roteia perguntas semânticas de C# para a ferramenta certa.
  • aicb-code-review verifica uma alteração concluída quanto à correção.
  • aicb-code-simplifier procura por complexidade desnecessária.
  • aicb-usage-check relata para que este servidor foi realmente acessado.

As três últimas são opcionais: aicb init --skills=all.

Escala, versões e compatibilidade

AICB não tem um limite de contagem de projetos publicado e rígido. O custo inicial e o pico de memória são específicos da solução e crescem com projetos carregados, documentos, instâncias de estrutura de destino e densidade do grafo. A primeira análise pode levar de segundos a minutos; perguntas subsequentes reutilizam o grafo aquecido, e edições de fonte salvas elegíveis usam o caminho de atualização incremental. Para um repositório muito grande, use um .slnf para reduzir o que o MSBuild carrega e opcionalmente defina analyzePreferredTfmOnly para evitar analisar cada instância de estrutura de destino. summaryOnly, escopos de consulta e orçamentos de token reduzem o volume de resposta; eles não reduzem necessariamente a análise subjacente da solução. O load-perf.log do desktop e o usage_report MCP fornecem medições locais de fase e latência. Um benchmark padronizado de tempo frio/quente e RAM em três soluções .NET públicas (≈ 25k, ≈ 55k e ≈ 1,8M linhas de C#) é publicado no guia de arquitetura e evidências; esses controles ainda não são uma alegação universal de desempenho, mas agora há um limite medido.

As versões públicas atualmente não têm janela LTS declarada, SLA de tempo de resposta ou promessa de que cada resposta MCP e esquema persistido permanecem inalterados entre versões. Salvaguardas operacionais são explícitas: o changelog registra versões; server_info relata versão, build e desvio de configuração; análises persistidas carregam identidades de esquema de payload e analisador e recorrem a uma análise ao vivo quando incompatíveis; e o desktop se recusa a gravar um banco de dados criado por um esquema mais novo. Migrações de banco de dados podem ser unidirecionais, então um rollback confiável significa fazer backup antes de uma atualização e usar o build mais antigo com um banco de dados pré-migração separado ou restaurado. Acordos comerciais podem definir compromissos mais fortes de suporte, tempo de resposta e manutenção de versão quando necessário; veja Suporte.

CLI em resumo

aicb init      Connect a project to the MCP server and install the agent skill.
aicb analyze   Analyze a solution and emit context Markdown.
aicb export    Re-render Markdown from an existing session database.
aicb import    Import a constellation JSON.
aicb list      List built-in and custom profiles and presets.
aicb mcp       Start the stdio MCP server.
aicb call      Invoke one MCP tool without an MCP client.

Execute aicb <command> --help para opções.

Local por padrão

  • O CLI e o servidor MCP não têm capacidade de rede de saída e não modificam o código-fonte que analisam.
  • Não há telemetria de saída, análise, verificação de atualização, conta ou servidor de licença. O servidor MCP registra suas chamadas de ferramenta localmente para usage_report e a página MCP Usage do aplicativo desktop; esse log nunca sai da máquina.
  • O aplicativo desktop pode contatar apenas um endpoint de LLM que você configura: para uma execução manual, um teste de conexão de perfil de modelo ou propostas de primeiro carregamento para Layer Profile e Exclude Namespaces quando esses sinalizadores de inicialização automática estão armados. O endpoint pode ser um modelo local. A aba Details também é um editor real e salva um arquivo somente quando você usa explicitamente Save.
  • Abrir uma solução executa sua lógica MSBuild para resolver referências, e construir sua compilação executa os geradores de código-fonte que seus projetos referenciam, como em um IDE ou dotnet build. Analise apenas soluções em que você confia. AICB não executa analisadores Roslyn de terceiros.

Um pequeno número de ferramentas explicitamente nomeadas pode gravar configuração ou uma exportação; suas descrições de ferramenta declaram isso. O modelo de ameaça completo e a rota de relatório privado estão em SECURITY.md.

Licença em resumo

O uso é gratuito para:

  • uso privado, hobby e educacional por pessoas físicas,
  • instituições educacionais credenciadas para ensino, aprendizado e pesquisa não comercial,
  • organizações que não atingem nenhum destes limites: 100 funcionários, EUR 10 milhões de faturamento anual, 21 desenvolvedores.

Os limites se aplicam à sua organização, não aos seus clientes. Após atingir qualquer um dos limites pela primeira vez, você tem 90 dias para concordar com uma licença comercial; o uso permanece gratuito durante esse período. Os 90 dias são apenas texto contratual: AICB não inicia um cronômetro de licença, não envia dados de limite ou prazo, não bloqueia nenhum recurso e não para tecnicamente de funcionar quando o período termina. Licenças comerciais começam em EUR 25 por desenvolvedor licenciado por mês; o preço e o escopo exatos dependem do número de usuários, do nível de suporte solicitado e de qualquer prioridade acordada para solicitações de melhoria. Um acordo comercial pode incluir suporte, compromissos definidos de resposta ou manutenção, consideração priorizada ou implementação de melhorias — por exemplo, fazer um analisador geralmente útil lidar com padrões encontrados no código do cliente com mais precisão. Esse trabalho melhora o produto AICB geral; não cria um fork específico do cliente nem especializa AICB para uma base de código. O código do cliente nunca é coletado ou usado para melhoria automaticamente; examiná-lo requer material ou acesso deliberadamente fornecido pelo cliente e um acordo separado sobre escopo e confidencialidade. Entregas exatas, prioridades e garantias existem apenas quando escritas no acordo individual. Conectar AICB a clientes MCP, harnesses de agente, scripts, sistemas de build e CI por meio de suas interfaces documentadas é permitido. Redistribuir, modificar, reempacotar, revender ou oferecer os binários AICB como um serviço hospedado não é. Contate aicb@dadera.de. Veja o guia em linguagem simples, LICENSE.txt e o EULA.md bilíngue completo.

Suporte e desenvolvimento contínuo

AICB está em desenvolvimento ativo: o changelog registra cada versão, e as versões publicadas aparecem na página Releases.

O suporte segue a licença:

GratuitoAcordo comercial
QuemTodos abaixo dos limitesOrganizações em ou acima de um limite, ou qualquer pessoa que queira termos mais fortes
CanalGitHub Discussions, IssuesContato direto mais os canais públicos
Meta de respostaMelhor esforço≤ 2 dias úteis
Correções de segurançaEnviadas por meio de versões públicasMeta de correção ≤ 10 dias úteis para vulnerabilidades confirmadas
Manutenção de versãoVersão atualJanela de manutenção acordada individualmente
Solicitações de melhoriaOrientadas pela comunidadeConsideração priorizada; prioridades acordadas são escritas no contrato
Acesso ao código-fonteNenhumRevisão de código sob NDA pode ser acordada

As metas nesta tabela são valores típicos que um acordo individual pode incluir; elas vinculam apenas quando escritas no acordo, e o pagamento sozinho não cria SLA não declarado. Os preços estão em Licença em resumo. Contate aicb@dadera.de. Perguntas e solicitações de recursos são bem-vindas em GitHub Discussions. Reporte bugs através de GitHub Issues e inclua aicb --version e, para problemas com MCP, a saída de server_info. Reporte problemas de segurança de forma privada, conforme descrito em SECURITY.md.

Documentação

"AIContextBuilder" e "AIContextBuilder for .NET" são nomes de produtos usados por Gregor Dadera; nenhum registro é reivindicado.