Skip to main content
Glama
VanguardIA-Tech

ahreas-mcp

README.md
# ahreas-mcp

Servidor MCP para o ERP **Ahreas** (Ahreas / Superlógica), o sistema de gestão de
condomínios. Ele lê o catálogo de métodos direto do WSDL da sua própria
instalação, descreve o que cada um faz e executa consultas e operações via SOAP
com a credencial de web service da administradora. É o primeiro MCP de Ahreas —
não existe hoje nenhum outro, oficial ou de comunidade.

A ideia é a mesma de manter a verdade na fonte: em vez de uma lista de métodos
escrita à mão dentro do projeto, o servidor pergunta ao próprio Ahreas o que ele
publica. Uma instalação real expõe cerca de 139 métodos entre os dois web
services, e os módulos que a sua administradora não contratou aparecem como
"sem acesso" — a mesma resposta que o ERP dá, não um erro.

## O que ele consegue

- Listar o catálogo de métodos lido dos WSDL de `administracaoweb` e
  `Condominioweb`, com busca por texto.
- Descrever um método: parâmetros, formato esperado, se lê ou escreve.
- Executar um método com a credencial de web service, devolvendo o conteúdo
  normalizado.
- Diagnosticar a instalação: se os dois serviços respondem e se a credencial é
  aceita.

## O que ele não consegue

- **Módulo não contratado não executa.** Se a licença não cobre um método, o
  Ahreas recusa com "não possui acesso" e o servidor repassa isso como resposta.
- **Ele não emula regra de negócio.** Nunca reproduz um método por conta própria;
  se o Ahreas não expõe, o servidor diz que não expõe.

## Como cada pessoa se conecta

Há dois modos, e a autenticação do Ahreas é a mesma dos dois: cada chamada leva
`usuario` + `senha` da pessoa e a `chave` da administradora. O Ahreas valida o
usuário e a senha individualmente, então as permissões aplicadas são as daquela
pessoa.

- **Remoto (HTTP + OAuth), multiusuário.** É o modo do produto. A pessoa conecta
  o MCP no cliente dela (Claude, GPT, Cursor) pela URL pública; ao autorizar,
  abre uma tela pedindo o usuário e a senha do Ahreas dela. A `chave` fica no
  servidor. Cada sessão executa com a credencial de quem logou.
- **Local (stdio), pessoal.** Uma pessoa só, com `AHREAS_USUARIO`/`AHREAS_SENHA`
  no ambiente.

> As sessões vivem na memória do processo. O deploy do modo remoto tem de rodar
> **um processo só** — não subir réplicas sem um armazenamento de sessão
> compartilhado.

## Segurança

- **A credencial nunca é parâmetro de ferramenta.** A `chave` entra por variável
  de ambiente; o usuário e a senha vêm do login (remoto) ou do ambiente (stdio).
  Nenhuma tool as recebe, então o modelo não as vê e elas não aparecem no
  histórico da conversa.
- **A senha da sessão fica só na memória.** O Ahreas autentica por chamada, sem
  token de sessão do lado dele; então a senha de quem logou fica na memória do
  processo enquanto a sessão vive, some no logout e na expiração, e nunca é
  registrada em log.
- **Escrita vem desligada.** `AHREAS_PERMITIR_ESCRITA` é `false` por padrão. Toda
  operação com efeito exige, além disso, uma confirmação explícita.
- **Não versione o `.env`.** Ele já está no `.gitignore`.

## Configuração

Todas as variáveis usam o prefixo `AHREAS_`. Copie o `.env.example` como ponto de
partida.

| Variável | Obrigatória | Padrão | Para que serve |
| --- | --- | --- | --- |
| `AHREAS_BASE_URL` | sim | — | Endereço do Ahreas, ex. `https://sistema.suaadm.com.br`. |
| `AHREAS_CHAVE` | sim | — | Chave de acesso da integração (da administradora). |
| `AHREAS_USUARIO` | só no stdio | — | Usuário do Ahreas, no modo local. |
| `AHREAS_SENHA` | só no stdio | — | Senha desse usuário, no modo local. |
| `AHREAS_PUBLIC_URL` | só no remoto | — | URL pública do servidor; âncora do OAuth. |
| `AHREAS_SESSAO_HORAS` | não | `12` | Validade da sessão antes de novo login. |
| `AHREAS_TIMEOUT_SEGUNDOS` | não | `30` | Tempo máximo por chamada SOAP. |
| `AHREAS_TENTATIVAS` | não | `2` | Tentativas num soluço de rede. |
| `AHREAS_CACHE_WSDL_SEGUNDOS` | não | `3600` | Validade do catálogo lido do WSDL. |
| `AHREAS_PERMITIR_ESCRITA` | não | `false` | Libera operações que gravam no ERP. |

## Licença

MIT.

## Aviso

Projeto independente, **sem qualquer vínculo com a Ahreas ou a Superlógica**.
Ahreas é marca de seus detentores, citada aqui apenas para identificar o sistema
com o qual este servidor se comunica.

TDQS

A3.7/5.0

Scored across 9 tools

Disambiguation4/5

Tools are organized into two parallel sets (methods vs screens) with clear descriptions guiding usage. However, diagnostico and diagnostico_web could be confused, and the parallel naming might cause initial hesitation.

Naming Consistency4/5

Names mostly follow verb_noun pattern in Portuguese, but there are inconsistencies: executar_metodo vs executar_acao_tela, and diagnostico_web vs diagnostico without verb. Still largely consistent and readable.

Tool Count5/5

9 tools is well-scoped for the domain, covering listing, describing, executing for two modes plus import and diagnostics. Each tool has a distinct role.

Completeness5/5

The surface covers the full lifecycle for both web service methods and screen actions, including file import and health checks. No obvious gaps for the stated purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues