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)
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:
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:
| Necessidade | Ferramenta | O que ela retorna |
|---|---|---|
| Ler um símbolo em contexto | get_context | O símbolo mais suas dependências diretas e chamados |
| Explorar um símbolo nomeado com arredores selecionados | explain_symbol | Chamadores, chamados, implementações, testes ou outras dimensões solicitadas |
| Empacotar contexto para um objetivo em linguagem natural | pack_for_task | Símbolos nomeados pelo objetivo e sua vizinhança semântica |
| Preparar-se para editar | prepare_task | O contexto focado no objetivo mais testes de cobertura e prováveis irmãos, como uma fábrica ou validador |
| Verificar o custo da resposta primeiro | measure | A 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.
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:
| Estado | Vida útil e propósito | Limite importante |
|---|---|---|
| Sessão MCP ao vivo | Grafo em memória e workspace do Roslyn reutilizados por um processo de servidor | Vê arquivos salvos, não buffers de editor não salvos; outro processo de servidor tem uma sessão separada |
| Codebase lembrado | remember_codebase persiste um modelo analisado; recall_codebase pode reidratá-lo mais tarde ou em outro processo sem executar o Roslyn | Uma 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 salvo | Linha de base nomeada usada por compare_with_previous e comparação de contrato público | Uma linha de base de comparação, não um workspace ao vivo |
<Solution>.aicb.json | Configuração de solução rastreável por Git | Conté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,totalFoundetruncatedantes 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:
| Sinal | Significado | Resposta típica |
|---|---|---|
staleness | O código-fonte salvo mudou após a análise, ou uma atualização automática foi executada ou falhou | Salve 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 completo | Restaure ou compile e então chame refresh_session(force: true) |
totalFound e truncated | Existem mais correspondências do que as retornadas | Reduza o escopo, pagine ou aumente o limite documentado |
| Manifesto do pacote ou nota de omissão inicial | Um orçamento de tokens removeu tipos, testes ou implementações irmãs circundantes | Aumente o orçamento ou solicite o eixo ausente explicitamente |
mergedNamesakes, ambiguidade ou múltiplos candidatos | Um nome não resolveu para um único símbolo único | Repita a consulta com um nome de símbolo qualificado |
confidence, proveniência, marcadores dinâmicos ou desconhecidos | Um valor é medido, fornecido pelo autor, inferido ou não estaticamente conhecível | Preserve a incerteza e verifique a configuração de tempo de execução relevante quando necessário |
origin: "Recalled" ou lineNumbersAvailable: false | A resposta veio da memória persistida em vez de um workspace ao vivo do Roslyn | Use 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
| Pergunta | Ferramenta |
|---|---|
| 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:
| Capacidade | Exemplos |
|---|---|
| Navegação semântica | usos, implementações, substituições, hierarquia, DI e XAML |
| Segurança de alterações | impacto, testes, diagnósticos, contexto de revisão e comparação de API pública |
| Indicadores de risco em tempo de execução | concorrência, recursos, eventos, chamadas externas e efeitos colaterais |
| Arquitetura e consistência | camadas, ciclos, gêmeos estruturais, desvio de padrões e desvio de documentação |
| Verificação | afirmações negativas, afirmações de linha de base para alterações e política de conjunto de alterações |
| Economia de contexto | empacotamento 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:
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:
- Chame
server_infopara verificar a conexão e detectar desvios binários ou de configuração. Uselist_skillspara o mapa completo de capacidades oudocs()para o manual operacional integrado. - Inicie uma tarefa de edição com
prepare_taskpara 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. - Antes de alterar um símbolo que outro código referencia, chame
impact_of_change; usefind_tests_forquando o pacote de tarefas não fornecer evidências de teste suficientes. - 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.
- Faça e salve a alteração. Em seguida, chame
refresh_sessionantes deget_diagnostics. No perfil normalReactive, isso geralmente é redundante, mas permanece correto em todos os modos e torna explícita a fronteira pretendida. - Use
review_context,evaluate_change_setouverify_claimquando 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. - Finalize com os comandos reais de build e teste do repositório.
get_diagnosticsrelata 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
| Necessidade | Fluxo de trabalho do AICB |
|---|---|
| Versionar as regras portáteis da solução | Confirme <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 CI | Execute 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 base | Chame 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 ativos | semantic_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 processos | remember_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 visualmente | O 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.
Cada solução também tem três eixos de análise independentes:
| Eixo | Pergunta que responde | O que controla |
|---|---|---|
| Perfil de Camadas | Onde 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 Namespaces | O 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 Testes | O 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.
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:
solution_config_statusrelata quais eixos estão inicializados e se seus valores ativos vêm do banco de dados local, do sidecar ou de nenhum deles.init_solution_configretorna 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.- Após revisar ou adaptar essa proposta,
apply_solution_configcria e ativa as entradas personalizadas, marca os eixos como inicializados e grava tanto o banco de dados de configuração local quanto<SolutionName>.aicb.jsonao lado da solução. - 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_driftrelata 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 modelo | Propó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.
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ê quer | Instalação | Plataforma |
|---|---|---|
| Servidor MCP e CLI | Ferramenta global .NET aicb-roslyn-mcp | Windows, Linux, macOS |
| Aplicativo desktop mais o mesmo servidor MCP e CLI | Instalador Windows ou ZIP portátil | Windows |
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:
| Cliente | Configuração MCP | Habilidade e proteção |
|---|---|---|
| Claude Code | .mcp.json gravado por aicb init | Habilidade e proteção opcional instaladas |
| Codex | Adicione aicb mcp por meio da configuração MCP do cliente | Proteção opcional suportada; local da habilidade não é adivinhado |
| OpenCode | Adicione aicb mcp a opencode.json | Proteção opcional suportada; local da habilidade não é adivinhado |
| Cursor / Cline / outros clientes stdio | Adicione o comando aicb com o argumento mcp | Use 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
| Conjunto | Tamanho | Propósito |
|---|---|---|
| Perfil MCP padrão | 54 ferramentas | Ferramentas semânticas e estruturais selecionadas para trabalho normal de agente |
| Perfil Full Select | 72 ferramentas | Conjunto padrão mais a cauda longa medida |
| Superfície completa do servidor | 82 ferramentas | Full 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-contextroteia perguntas semânticas de C# para a ferramenta certa.aicb-code-reviewverifica uma alteração concluída quanto à correção.aicb-code-simplifierprocura por complexidade desnecessária.aicb-usage-checkrelata 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_reporte 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:
| Gratuito | Acordo comercial | |
|---|---|---|
| Quem | Todos abaixo dos limites | Organizações em ou acima de um limite, ou qualquer pessoa que queira termos mais fortes |
| Canal | GitHub Discussions, Issues | Contato direto mais os canais públicos |
| Meta de resposta | Melhor esforço | ≤ 2 dias úteis |
| Correções de segurança | Enviadas por meio de versões públicas | Meta de correção ≤ 10 dias úteis para vulnerabilidades confirmadas |
| Manutenção de versão | Versão atual | Janela de manutenção acordada individualmente |
| Solicitações de melhoria | Orientadas pela comunidade | Consideração priorizada; prioridades acordadas são escritas no contrato |
| Acesso ao código-fonte | Nenhum | Revisã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
- Começando - instale, conecte-se e faça a primeira pergunta
- Referência de ferramentas - referência gerada para o perfil MCP padrão
- Arquitetura, limites e evidências - modelo em memória, atualização, seleção de contexto, limites de análise estática e status de benchmark
- Manual do servidor MCP - a referência completa em doze capítulos Markdown: conexão de um cliente,
aicb init, sessões e obsolescência, perfis e facetas, cada ferramenta, solução de problemas - Manual de referência geral - a referência completa em doze capítulos Markdown, com o PDF imprimível na mesma pasta
- Manual de referência do aplicativo desktop - a referência completa em onze capítulos Markdown, com o PDF imprimível na mesma pasta
- Changelog e última versão
"AIContextBuilder" e "AIContextBuilder for .NET" são nomes de produtos usados por Gregor Dadera; nenhum registro é reivindicado.





