Skip to main content
Glama
soyerno

nexo-agent-server

by soyerno
README.md
# Nexo Agent Server

Plano de control MCP durable para conectar redes de agentes orquestadores bajo
un mismo objetivo. Un corte de red no borra trabajo: los mensajes viven en un
ledger, cada nodo conserva un cursor y confirma el procesamiento con ACK.

## Capacidades

- MCP Streamable HTTP para Claude Code, Codex y clientes compatibles.
- Identidad criptográfica individual por orquestador.
- Objetivo central versionado y criterios de aceptación.
- Topología padre/hijo, heartbeat, capacidades, tarea y progreso.
- Mensajes ordenados, reintentos idempotentes y cambio de canal con drenaje.
- Tokens rotables; sólo se persiste su SHA-256.

## Instalación rápida en Windows

Descarga el ZIP de la [última release](https://github.com/soyerno/nexo-agent-server/releases/latest),
extráelo y ejecuta:

```powershell
Set-ExecutionPolicy -Scope Process Bypass
.\scripts\install-windows.ps1 -PublicUrl "https://nexo.tu-red.local"
.\scripts\new-network.ps1 -Project "mi-red" -Coordinator "coordinador" -Objective "Construir el producto acordado sin perder mensajes"
```

Guarda el token del coordinador. Para crear la identidad de la otra PC:

```powershell
.\scripts\new-agent.ps1 -Project "mi-red" -Coordinator "coordinador" -Agent "claude-pc-2" -Parent "coordinador" -Capability code,test
```

Entrega ese token junto con la URL a la PC remota y usa
[Nexo Agent Client](https://github.com/soyerno/nexo-agent-client).

### Prueba inmediata en una LAN aislada

En la PC servidor, reemplaza la IP por la propia:

```powershell
.\scripts\install-windows.ps1 -PublicUrl "http://192.168.1.15:8765" -AllowInsecure
powershell -File "$env:LOCALAPPDATA\NexoAgentServer\start-nexo-server.ps1"
```

Permite el puerto TCP 8765 en Windows Firewall sólo para el perfil privado. En
la PC de Claude usa el cliente con la misma URL terminada en `/mcp` y su token
individual. Este modo envía el bearer sin cifrar; úsalo únicamente para validar
la LAN y luego cambia a HTTPS.

## Servidor seguro

```powershell
nexo-server --db C:\Nexo\nexo.sqlite3 serve --host 127.0.0.1 --port 8765 --public-url https://nexo.tu-red.local --allowed-host nexo.tu-red.local
```

Publica `127.0.0.1:8765` detrás de Caddy/NGINX con TLS. El endpoint MCP es
`/mcp` y el chequeo público es `/healthz`. Para una prueba temporal:

```powershell
nexo-server --db .\nexo.sqlite3 serve --host 0.0.0.0 --port 8765 --public-url http://192.168.1.15:8765 --allowed-host 192.168.1.15:8765 --insecure-http
```

## Flujo de un agente

1. `nexo_report` obtiene el objetivo vigente y renueva presencia.
2. `nexo_read_messages` recupera trabajo desde el cursor.
3. El agente procesa y responde con `nexo_send_message`.
4. Sólo entonces llama `nexo_ack`.
5. Tras una reconexión repite desde el cursor; la idempotencia evita duplicados.

## Estado

Versión inicial `0.1.1`. La API y la base pueden evolucionar antes de `1.0`.
Consulta [SECURITY.md](SECURITY.md) antes de exponer el servicio.

Copyright © 2026 Hernán De Souza. Sin una licencia adicional, se reservan todos
los derechos.