ACMP MCP Server

Servidor MCP para gerenciamento de clientes Aagon ACMP: clientes, inventário, CVEs, atualizações ausentes, tarefas, comandos de cliente, chamados de helpdesk, ativos e quiosque. Leituras são executadas instantaneamente; gravações, execuções de scripts e exclusões aguardam aprovação de quatro olhos por humanos. Um único EXE Windows no servidor ACMP.

Documentação

ACMP-MCP-Server

Aagon ACMP para qualquer IA – com aprovação de quatro olhos, diretamente no seu servidor ACMP.

Getestet mit ACMP 6.9 und 6.10 MCP Streamable HTTP 118 Tools Vier-Augen-Freigabe
Windows Server .NET Framework 4.8 Lizenz MIT Letzter Commit

Início rápido · Conectar cliente · Ferramentas · Segurança · Documentação

[!NOTE] English: MCP server for Aagon ACMP's Public API, with a built-in four-eyes approval gate for write/execute/delete actions. Runs as a single Windows EXE on the ACMP server and works with any MCP client. Docs are in German because ACMP's user base is mostly DACH; issues in English are welcome.

Um servidor MCP para a ACMP Public API (Aagon Client Management Platform). Você pergunta em linguagem natural, por exemplo: "Quais computadores estão offline há 30 dias?", e a IA busca a resposta diretamente no ACMP.

De relance

  • Qualquer cliente MCP: Claude, ChatGPT/Codex, GitHub Copilot, Gemini, Cursor …
  • Ampla cobertura: Clientes, contêineres, jobs/client commands, chamados, ativos, inventário, vulnerabilidades e dados mestre.
  • Aprovação de quatro olhos: Leitura é imediata. Tudo o que altera, executa ou exclui só acontece quando uma pessoa aprova na página de aprovação; para ações críticas, duas pessoas diferentes.
  • Por operador: chave de API própria e, opcionalmente, identidade ACMP própria. O ACMP verifica então as permissões reais da pessoa.
  • Um EXE, sem nuvem: roda diretamente no servidor ACMP. Sem IIS, sem .NET-SDK.
  • Opcional: criar, aprovar e organizar client commands, além de manter o kiosk, diretamente no banco de dados do ACMP. Desativado por padrão.
  • Modelos prontos: Na ACMP CTL (Community Template Library) há modelos de client command com cada etapa em texto claro. acmp_lib_install os cria como rascunho na sua console.

Compatibilidade

Testado ou pré-requisito
ACMP6.9 e 6.10, com AESB/SICS e Public API habilitada
CC-Writer / Kiosk-WriterACMP 6.10. Em caso de divergências, por exemplo após uma atualização do ACMP, a pré-verificação bloqueia a escrita
ServidorWindows Server com .NET Framework 4.8, direitos de administrador no servidor ACMP
MCPStreamable HTTP (JSON-RPC 2.0), versão do protocolo 2025-06-18
Clientes de IAModelos para Claude Code, Claude Desktop (também como extensão .mcpb), Codex CLI, VS Code/GitHub Copilot, Cursor e Gemini CLI em docs/CLIENTS.md

Início rápido

A) Configurar pela sua IA

No servidor ACMP, clone o repositório ou descompacte como ZIP. Inicie um agente de IA que possa executar comandos (Claude Code, Codex CLI, GitHub Copilot no modo agente, Gemini CLI, Cursor ou similar) e digite:

Richte diesen ACMP-MCP-Server auf diesem Rechner ein. Folge AGENTS.md Schritt für Schritt,
erkläre mir jeden Admin-Schritt, bevor ich ihn ausführe, und frag mich nie nach Passwörtern
oder API-Keys im Chat.

AGENTS.md contém o fluxo completo: verificação, instalação, configuração inicial, liberação na rede, conexão do cliente e solução de problemas. A maioria dos agentes lê o arquivo por conta própria. Para Claude Code (CLAUDE.md), Gemini CLI (GEMINI.md) e GitHub Copilot (.github/copilot-instructions.md) há referências incluídas.

B) Manualmente: o assistente no terminal

No servidor ACMP, abra um PowerShell, entre no repositório e inicie. Se faltarem direitos de administrador, o script se reinicia após uma confirmação do Windows (UAC):

.\install.ps1

Ao final, o assistente mostra sua chave de API e os links para a página de aprovação, o painel e o onboarding; se desejar, ele copia a chave para a área de transferência. Depois, ele pergunta sobre seu cliente de IA e mostra a configuração pronta para ele.

O que o assistente faz em 9 etapas

Em cada etapa, ele explica o que está acontecendo e sugere valores (Enter confirma):

  1. Verifica os pré-requisitos (AESB SICS, porta 3950, .NET, porta livre). Em caso de erro, ele diz o que fazer.
  2. Pergunta sobre a Public API na console do ACMP e mostra o caminho de cliques.
  3. Instala e compila conforme C:\ProgramData\AcmpMcp. Config, segredos e logs são legíveis apenas por administradores e SYSTEM.
  4. Solicita o usuário SICS. A senha é digitada de forma oculta.
  5. Configura o serviço e verifica o login no ACMP. Se não funcionar, ele pede as credenciais novamente.
  6. Cria você como primeiro administrador e aprovador.
  7. Vincula sua própria identidade ACMP, se você quiser. Assim, o ACMP verifica suas permissões reais.
  8. Funções opcionais: PowerShell ad-hoc, relatórios de banco de dados, notificação por e-mail.
  9. Rede: sugere IP da LAN e sub-rede e libera o servidor para os PCs administrativos.

Os cliques na console do ACMP são descritos em docs/ACMP-VORBEREITUNG.md, por exemplo, para o modelo de client command do PowerShell ad-hoc.

Outros comandos: criar, atualizar e desinstalar colegas

Você cria outros colegas no terminal ou no navegador via /onboarding:

cd C:\ProgramData\AcmpMcp
.\add-user.ps1
ComandoFinalidade
.\install.ps1 -CheckOnlyapenas verificar, sem alterar nada (não requer admin)
.\install.ps1executar novamente = atualizar. Configuração e operadores são mantidos; o que já foi feito é pulado
.\install.ps1 -NonInteractive -SicsUser … -AdminName … -AdminEmail …sem perguntas, por exemplo, para scripts. A senha vem de $env:ACMP_SICS_PASSWORD
.\set-network-admin.ps1 -BindAddress <IP>alterar a rede depois
.\uninstall-admin.ps1remover o serviço e a regra de firewall

Conectar cliente

Qualquer cliente MCP que suporte Streamable HTTP com cabeçalho próprio conecta-se diretamente:

URLhttp://<HOST>:8765/
CabeçalhoAuthorization: Bearer <KEY> (chave de API pessoal da página de configuração ou onboarding)

Por exemplo, Claude Code:

claude mcp add --transport http acmp http://<HOST>:8765/ --header "Authorization: Bearer <KEY>" --scope user

Claude Desktop: instale acmp-mcp-<version>.mcpb dos Releases com um duplo clique e insira o endereço do servidor e a chave de API nas configurações da extensão.

Configurações prontas para todos os clientes comuns estão em docs/CLIENTS.md. Clientes que só conhecem servidores locais (stdio) podem ser conectados pela ponte mcp-remote.

Como funciona

flowchart TB
    KI["KI-Client<br/>Claude · Codex · Copilot · Gemini · Cursor"]
    subgraph SRV["ACMP-Server"]
        MCP["ACMP-MCP-Server<br/>(Windows-EXE)"]
        GATE{{"Freigabe-Seite"}}
        ACMP[("ACMP<br/>Public API über SICS/AESB")]
        DB[("ACMP-Datenbank")]
    end
    TEAM(["Freigeber im Browser"])
    KI -->|"MCP · HTTP + API-Key"| MCP
    MCP -->|"lesen: sofort"| ACMP
    MCP -->|"schreiben · ausführen · löschen"| GATE
    TEAM -->|"1 bzw. 2 Personen stimmen zu"| GATE
    GATE -->|"erst dann"| ACMP
    MCP -.->|"optional: DB-Reports, Writer"| DB
Detalhes técnicos
  • O servidor conecta-se via DLLs de cliente da própria Aagon (Aagon.Sis.Sics.*, já presentes na instalação do ACMP) ao SICS/AESB (wss://127.0.0.1:3950). Protocolo, criptografia e login são, portanto, os mesmos das ferramentas da própria Aagon.
  • Ele envia comandos ICQL ao ACMP. A chave de roteamento é determinada automaticamente; o Virtual Router é lido da configuração (padrão VCMN).
  • Os comandos ficam disponíveis como ferramentas MCP via JSON-RPC 2.0/HTTP (TcpListener próprio, sem necessidade de URL-ACL).
  • Por usuário: cada operador tem uma chave de API própria e, opcionalmente, uma identidade ACMP própria. O ACMP verifica então as permissões reais dele (GetOwnUserRights).
  • Aprovação de quatro olhos: chamadas de escrita, execução e exclusão não são executadas imediatamente; ficam congeladas como solicitação. Somente quando 1 pessoa (Write) ou 2 pessoas diferentes (Destructive) aprovam na interface web é que a chamada ACMP real é iniciada. A aprovação ocorre, portanto, fora do LLM.

Como é a aprovação

Quando a IA solicita um comando de escrita, execução ou exclusão, ele chega como solicitação na página de aprovação. Nada é executado até que pessoas diferentes suficientes tenham aprovado. As imagens mostram uma instância de demonstração com dados fictícios.

Liste der offenen Freigaben mit Risikostufe und Zustimmungen

Visão detalhada e aprovação

A visão detalhada mostra a intenção informada, o solicitante e os computadores de destino, bem como o script em texto claro, exatamente como será executado no cliente:

Detailansicht einer PowerShell-Freigabe mit Absicht, Eckdaten und entschlüsseltem Skript

Abaixo estão o comando bruto enviado ao ACMP, uma explicação passo a passo com avisos e os botões de aprovação:

Roh-Befehl, Schritt-für-Schritt-Erklärung und Freigeben/Ablehnen

Um exemplo do fluxo:

  1. Você escreve: "O disco do PC-0815 está cheio; limpe a pasta Temp do Windows."
  2. A IA procura o computador (acmp_get_client_id), verifica os discos (acmp_low_disk_space) e cria uma solicitação de PowerShell (acmp_run_powershell).
  3. Na página de aprovação, dois colegas veem o script em texto claro e clicam em "Aprovar".
  4. Somente então o script é executado no cliente, e a IA informa o resultado.

Ferramentas

118 ferramentas em 10 áreas. Um clique em uma área mostra todas as ferramentas com seu nível de aprovação:

🟢 executa imediatamente (somente leitura) · 🟡 aprovação por 1 pessoa · 🔴 aprovação por 2 pessoas diferentes

Os níveis são os valores padrão do código e podem ser ajustados por ferramenta em /settings. Algumas ferramentas exigem uma função opcional: (DB) a conexão com o banco de dados (db.connectionString, somente leitura), (PS) o modelo de client command (runPowershell.clientCommandId), (CW) o CC-Writer (ccWriter), (KW) o Kiosk-Writer (kioskWriter). A lista atual é fornecida por tools/list. Cada ferramenta aceita opcionalmente format: "json".

Sistema e geral · 11 ferramentas · Informações do servidor, permissões próprias, acmp_call para cada um dos 167 comandos da API
FerramentaFinalidade
🟢acmp_server_infoVersão do ACMP e dados do servidor
🟢acmp_whoamicom qual usuário ACMP e quais permissões você está trabalhando
🟢acmp_logoutrestabelecer a conexão, por exemplo, após troca de token
🟢acmp_list_commands, acmp_describelistar todos os 167 comandos da Public API e explicá-los com parâmetros
🟡acmp_callqualquer comando da API sem ferramenta própria. Comandos de leitura executam imediatamente; comandos de escrita exigem aprovação
🟢acmp_approval_statusstatus de uma solicitação de aprovação
🟢acmp_discover_tables (DB)pesquisar tabelas no banco de dados do ACMP ("O que tem a ver com BitLocker?")
🟢acmp_db_columns (DB)colunas de uma tabela ou view
🟢acmp_db_script_rows, acmp_db_script_blob (ambos DB)linhas e colunas binárias das tabelas de client command, kiosk e file repository (somente essas)
Clientes e inventário · 12 ferramentas · "Quem foi o último a usar o PC-0815?", hardware, computadores offline, espaço em disco
FerramentaFinalidade
🟢acmp_get_clients, acmp_get_client_id, acmp_client_info (DB)listar computadores, encontrar por nome ou MAC, ficha com IP, MAC e versão do agente
🟢acmp_get_os_infosistema operacional e último usuário conectado ("Quem foi o último a usar o PC-0815?")
🟢acmp_get_hardware, acmp_hardware_profile (DB)CPU, RAM, discos, serviços, fabricante, modelo, número de série
🟢acmp_offline_clients (DB)computadores sem contato há X dias
🟢acmp_agent_versions (DB)distribuição das versões do agente
🟢acmp_low_disk_space (DB)unidades com pouco espaço livre
🟢acmp_read_registry, acmp_read_registry_result (ambos PS)ler um valor do registro no cliente (script de leitura fixo)
🟢acmp_db_client_attributes (DB)campos personalizados de um cliente
Software e segurança · 12 ferramentas · CVEs, atualizações ausentes, Defender, BitLocker, licenças | | Ferramenta | Finalidade | |---|---|---| | 🟢 | `acmp_get_software`, `acmp_software_inventory` *(DB)*, `acmp_software_search` *(DB)* | software instalada por computador e pesquisa ("Onde está o 7-Zip?") | | 🟢 | `acmp_outdated_software` *(DB)* | software desatualizado | | 🟢 | `acmp_missing_updates`, `acmp_failed_updates` *(ambos DB)* | atualizações do Windows ausentes e com falha | | 🟢 | `acmp_vulnerabilities`, `acmp_oval_scan_status` *(ambos DB)* | vulnerabilidades (CVEs) com pontuação e data da última verificação | | 🟢 | `acmp_defender_health` *(DB)* | status do Defender ("Onde a proteção em tempo real está desativada?") | | 🟢 | `acmp_bitlocker_status` *(DB)* | status do BitLocker por unidade | | 🟢 | `acmp_get_licenses`, `acmp_license_compliance` *(DB)* | licenças com excesso e falta de cobertura |
Jobs e execução · 6 ferramentas · Iniciar Client Command, PowerShell como SYSTEM 🔴
FerramentaFinalidade
🟢acmp_get_client_commandsClient Commands disponíveis
🟢acmp_get_jobs, acmp_job_results (DB), acmp_script_history (DB)o que foi executado em um computador e com qual resultado
🟡acmp_enqueue_client_commandiniciar um Client Command existente
🔴acmp_run_powershell (PS)executar qualquer PowerShell como SYSTEM em um cliente
Client Commands · 15 ferramentas · opcional · criar rascunho, nova versão, aprovar, organizar

A Public API só pode iniciar Client Commands, não criá-los. Por isso, estas ferramentas os leem diretamente do banco de dados ACMP, criam rascunhos quando desejado, aprovam rascunhos próprios e organizam comandos em pastas. A escrita não é prevista pela Aagon e, portanto, está desativada por padrão. Configuração: docs/ACMP-VORBEREITUNG.md → "Escrever Client Commands diretamente".

FerramentaFinalidade
🟢acmp_cc_decode (DB)etapas de um Client Command em texto claro, utilizável como entrada para um novo rascunho. Senhas são mascaradas
🟢acmp_cc_catalog (DB)quais tipos de etapa ocorrem nos seus comandos, com campos e exemplos
🟢acmp_cc_folders (DB)árvore de pastas dos Client Commands, opcionalmente com os comandos por pasta
🟢acmp_cc_writer_status (DB)status do writer e resultado da verificação de compatibilidade
🟡acmp_cc_create_draft, acmp_cc_update_draft (CW)criar rascunho ou substituir suas etapas (com backup automático antes)
🟡acmp_cc_restore_draft (CW)restaurar rascunho a partir de um backup
🟡acmp_cc_add_file, acmp_cc_remove_file (CW)anexar ou remover arquivo de instalação de um rascunho (File Repository, com SHA-256)
🟡acmp_cc_new_version (CW)nova versão de um comando existente como rascunho, inclusive de comandos aprovados e de terceiros (como "Salvar" no console). A versão aprovada continua ativa até que a nova seja aprovada (acmp_cc_release ou console). Sempre passa pela página de aprovação; a pré-visualização mostra as alterações em relação à versão aprovada
🟡acmp_cc_release (CW)aprovar rascunhos como no console, vários em um único pedido: novos comandos próprios e novas versões de acmp_cc_new_version (a versão anteriormente aprovada é substituída). Sempre passa pela página de aprovação, mesmo que esteja desativada
🟡acmp_cc_move (CW)mover vários comandos para outras pastas em um único pedido, com undo
🟡acmp_cc_add_folder, acmp_cc_update_folder (CW)criar pasta (com permissões da pasta pai), renomear ou mover
🟡acmp_lib_install (DB, CW)instalar modelo da ACMP CTL (Community Template Library) ou de uma pasta de modelos própria como rascunho. Com dryRun 🟢 também sem writer

O writer altera apenas rascunhos próprios na pasta permitida e apenas para operadores autorizados. Comandos existentes são modificados somente via acmp_cc_new_version: como nova versão, nunca em pastas padrão da Aagon; IDs de etapa e senhas salvas são preservados; um rascunho de terceiros só é sobrescrito mediante solicitação explícita (com backup). Cada ação de escrita passa pela página de aprovação; a pré-visualização mostra cada etapa com seus campos.

Antes de escrever, o servidor verifica a versão do ACMP, tabelas, triggers e permissões do login de escrita. Ele também testa empacotar e desempacotar os 50 comandos mais recentes. Se algo divergir, por exemplo após uma atualização do ACMP, ele não escreve nada. A aprovação é possível para rascunhos próprios e para versões salvas por último pelo MCP, e somente se o conteúdo permanecer inalterado desde a solicitação. Versões subsequentes com arquivos alterados não são aprovadas; essas permanecem responsabilidade do console. Espaços reservados como "INSERIR AQUI …" bloqueiam a aprovação. Testado com ACMP 6.10.

Kiosk · 12 ferramentas · opcional · entradas, pastas, visibilidade, ícones

A Public API também não pode gerenciar o kiosk do ACMP. Por isso, estas ferramentas leem e escrevem diretamente no banco de dados do ACMP. Isso também está desativado por padrão. Configuração: docs/ACMP-VORBEREITUNG.md → "Gerenciar kiosk".

FerramentaFinalidade
🟢acmp_kiosk_tree (DB)pastas do kiosk, entradas e filtros de visibilidade em texto claro; com status: true o resultado da pré-verificação
🟢acmp_kiosk_images (DB)ícones e arquivos de imagem existentes nas fontes permitidas, com pré-visualização no chat
🟡acmp_kiosk_add_item (KW)criar Client Command ou software gerenciado como entrada do kiosk, com ícone e filtro de visibilidade (grupo AD, OU, usuário, contêiner, dados mestre …)
🟡acmp_kiosk_update_items (KW)mover, renomear, alterar descrição, ícone ou filtro de várias entradas em um único pedido
🟡acmp_kiosk_set_filter, acmp_kiosk_remove_item (KW)alterar visibilidade de uma entrada, remover entrada
🟡acmp_kiosk_add_group, acmp_kiosk_update_group (KW)criar pasta do kiosk, renomear (DE/EN), alterar ícone e filtro
🟡acmp_kiosk_add_image, acmp_kiosk_set_image, acmp_kiosk_remove_image (KW)enviar ícone (PNG, JPG, ICO, SVG), definir, remover ícone próprio não utilizado
🟡acmp_kiosk_restore (KW)restaurar uma alteração do kiosk a partir do backup automático

A escrita ocorre apenas em pastas do kiosk que vocês liberarem e em pastas criadas pelo próprio MCP. Antes de cada alteração, o servidor faz backup do estado anterior. Os usuários veem as alterações após "Atualizar" no kiosk.

Contêiner · 5 ferramentas · ler, criar, alterar, excluir membros 🔴
FerramentaFinalidade
🟢acmp_container_members, acmp_client_containers (ambos DB)computadores em um contêiner e contêineres de um computador
🟡acmp_create_container, acmp_save_containerscriar ou alterar contêiner
🔴acmp_delete_containersexcluir contêiner
Assets e dados mestre · 25 ferramentas · emprestar assets, contatos, locais, contratos
FerramentaFinalidade
🟢acmp_get_asset_list, acmp_get_asset_typesassets e tipos de asset
🟡acmp_create_asset, acmp_update_assetcriar ou alterar asset
🟡acmp_lend_asset, acmp_return_assetemprestar ou devolver asset
🟢acmp_get_contacts, _companies, _locations, _departments, _cost_centersler dados mestre
🟡acmp_create_*, acmp_update_* para contact, company, location, departmentcriar ou alterar dados mestre
🟢acmp_get_contracts, acmp_contracts_expiring (DB)contratos e contratos que expiram em breve
🟢acmp_get_custom_fields, _custom_field_list, _master_data_settings, _app_settingsler campos adicionais e configurações
Helpdesk · 18 ferramentas · "Abra um ticket: a impressora do 2º andar não imprime."
FerramentaFinalidade
🟢acmp_get_tickets, acmp_get_ticket, acmp_tickets_by_queryler tickets, inclusive via consultas salvas
🟢acmp_get_ticket_comments, _worktime, _costs, acmp_get_linked_ticketshistórico, tempos, custos, vínculos
🟢acmp_helpdesk_settings, acmp_get_assignees, _ticket_templates, _ticket_categories, _ticket_resolutions, _queriesconfigurações do helpdesk
🟡acmp_create_ticketcriar ticket ("Abra um ticket: a impressora do 2º andar não imprime.")
🟡acmp_update_ticketalterar responsável ou prioridade
🟡acmp_close_ticket, acmp_reopen_ticketfechar ou reabrir ticket
🟡acmp_add_ticket_commentadicionar comentário
Suporte remoto · 2 ferramentas · ID do TeamViewer e link de conexão
FerramentaFinalidade
🟢acmp_teamviewer_ids (DB)IDs do TeamViewer de todos os clientes
🟢acmp_teamviewer_connect (DB)link do TeamViewer para um computador, pesquisa também por nome de usuário

Exemplos de prompts estão em docs/USAGE.md. Novos comandos nativos são adicionados declarativamente em api-tools.json, novos relatórios SQL em db-tools.json. Ambos não exigem recompilação.

Interface web

PáginaFinalidade
/dashboardvisão geral: solicitações abertas, executadas e rejeitadas
/approvalsverificar e aprovar aprovações pendentes
/historyhistórico de todas as solicitações
/settingslimites de aprovação por ferramenta
/onboardingcriar outros operadores
/changeloghistórico de patches do servidor
/setupconfiguração inicial, ativa apenas enquanto não houver aprovador

O login usa um token próprio por aprovador e é independente da chave ACMP ou MCP: uma chave de API vazada não concede direitos de aprovação.

Configuração

config.example.json é comentado (campos _hinweis). install.ps1 gera config.local.json a partir dele.

Chaves importantes
ChaveSignificado
sics.username / passwordconexão base SICS-/AESB
sics.virtualRouter / wssPortpadrão VCMN / 3950
mcp.bindAddress / httpPortpadrão 127.0.0.1 / 8765. Acesso LAN via set-network-admin.ps1
approval.*aprovação com quatro olhos, limites, notificação SMTP
runPowershell.clientCommandIdopcional, ativa acmp_run_powershell / acmp_read_registry
db.connectionStringopcional, ativa as ferramentas de relatório do banco de dados
helpdesk.createdStateIdopcional, status de ticket para novos tickets
ccWriter.*opcional, desativado por padrão: escrever Client Commands como rascunho, aprovar, organizar. Configurar com setup-cc-writer.ps1, outros operadores com setup-cc-writer.ps1 -AddRequester <name>
kioskWriter.*opcional, desativado por padrão: gerenciar kiosk. Exige o CC-writer (mesmo login SQL). Configurar com setup-kiosk-writer.ps1
ctl.sourcesopcional, fontes para acmp_lib_install. Padrão: pasta ctl no diretório de instalação, depois o repositório Herzog-GmbH/acmp-ctl

Segurança

[!WARNING] O servidor concede acesso total ao ACMP, incluindo execução de comandos em todos os dispositivos finais. Trate cada chave de API como uma senha de administrador.

  • Sem TLS integrado. O servidor escuta apenas em 127.0.0.1 por padrão e recusa operação em LAN sem chave de API. Na LAN, restrinja os subnets de origem via firewall. Através de limites de rede, coloque um proxy TLS ou VPN na frente.
  • install.ps1 restringe a pasta de instalação a administradores e SYSTEM, pois é onde ficam as credenciais.
  • Senhas de operadores nunca são armazenadas: acmp-token-setup.exe armazena apenas um token criptografado com DPAPI (LocalMachine).
  • /regresult (canal de retorno para acmp_read_registry) está intencionalmente acessível sem chave, porque o cliente não conhece a chave. Ele aceita apenas resultados para tokens abertos e não adivinháveis.
  • Por favor, não relate vulnerabilidades de segurança como issue público, mas sim conforme descrito em SECURITY.md.
CC-Writer e Kiosk-Writer
  • O CC-Writer opcional grava com um login SQL próprio com exatamente os direitos necessários (grant-cc-writer.sql), nunca com o acesso de leitura. Em SYS_SCRIPTS, ele não pode excluir nada. Ele apenas cria rascunhos, faz backup antes de cada alteração e altera ou libera apenas comandos que ele mesmo criou. Comandos de terceiros, ele altera apenas como nova versão (acmp_cc_new_version, sempre com solicitação de liberação) e os move se desejado. Ele não pode excluir nada.
  • O Kiosk-Writer opcional usa o mesmo login com os direitos de grant-kiosk-writer.sql. Ele não pode excluir pastas e grava apenas em pastas de kiosk compartilhadas.
  • Importante para o onboarding: O login SQL pertence ao servidor, não aos operadores. Quem pode solicitar as ferramentas de gravação está em ccWriter.allowedRequesters (add-user.ps1 pergunta sobre isso, para operadores de /onboarding: setup-cc-writer.ps1 -AddRequester <name>). Mesmo assim, um aprovador deve concordar. O ACMP não verifica os direitos ACMP da pessoa nessas ferramentas, porque elas gravam no banco de dados fora da API pública.

Documentação

ArquivoConteúdo
AGENTS.mdFluxo de configuração para agentes de IA, incluindo solução de problemas
docs/ACMP-VORBEREITUNG.mdCliques no console ACMP: API pública, usuários SICS, funções opcionais
docs/CLIENTS.mdConfiguração para todos os clientes MCP comuns
docs/USAGE.mdFolha de referência com exemplos de prompts para usuários
config.example.jsonExemplo de configuração comentado
SECURITY.mdRelatar vulnerabilidades de segurança confidencialmente

Contribuir

Issues e pull requests são bem-vindos. Por favor, não poste logs com nomes de host, IPs, nomes de usuário, chaves ou tokens em issues, mas masque-os antes.

Licença

MIT. Não é um produto oficial da Aagon GmbH. ACMP e AESB são marcas da Aagon GmbH.