Agent Dashboard
Agent Dashboard
Un panel autohospedado donde los agentes de IA informan de lo que están haciendo, y tú observas y diriges en tiempo real.
Los agentes se conectan a través de MCP (Streamable HTTP remoto — sin instalación local) para crear proyectos, publicar actualizaciones de estado con imágenes y vídeo, reclamar tareas, leer tus respuestas y bloquearse hasta que tú apruebes. Observas un feed en vivo en el navegador que se actualiza sin necesidad de recargar.
Estado: en desarrollo. El diseño está completo y confirmado; la implementación se sigue en issues.
Qué hace
Actualizaciones de estado enriquecidas — markdown, imágenes y vídeo, publicadas por los agentes mientras trabajan.
Proyectos — los agentes los crean; tú los renombras, fijas y archivas.
En vivo — todo se transmite a un navegador abierto mediante SSE, sin sondeos ni recargas.
Presencia — ve qué agentes están activos en este momento.
Plano de control — asigna tareas a los agentes, respóndeles y condiciona su trabajo a una aprobación que tú haces clic.
Related MCP server: Project Manager MCP
Alcance
De un solo propietario y autohospedado. Una implementación, un propietario, sin multiinquilino ni cuentas de usuario. Dimensionado para decenas de agentes y unos pocos miles de actualizaciones en una sola máquina.
Diseño
Consulta docs/superpowers/specs/2026-08-25-agent-dashboard-design.md
para la arquitectura completa, el modelo de datos, la superficie de herramientas MCP y la semántica de la puerta de aprobación.
Desarrollo
Requiere Node 22+ y ffmpeg en PATH.
npm ci
cp .env.example .env # then fill in the secrets
npm run devScript | Qué hace |
| Servidor de desarrollo de Vite |
| Compilación de producción mediante el adaptador de Node ( |
| Pruebas unitarias de Node (Vitest) — la suite predeterminada, sin necesidad de navegador |
| Pruebas de componentes de Svelte en un Chromium real (modo navegador de Vitest) |
| Pruebas de extremo a extremo con Playwright |
| Unitarias + de componentes + e2e |
|
|
| Comprobación de Prettier + ESLint |
| Escritura de Prettier |
Las pruebas de componentes y e2e descargan una compilación de Chromium en la primera ejecución, por lo que CI y el npm test predeterminado se mantienen deliberadamente solo en la suite de pruebas unitarias de Node.
Estructura
src/ refleja la tabla de módulos en §2 del diseño. Cada directorio tiene un README
que indica su única función y los únicos módulos que puede importar.
src/db/ SQLite connection, migrations, repositories
src/events/ typed in-process pub/sub + SSE ring buffer
src/media/ upload tokens, ingest, derivatives, disk layout
src/domain/ all business rules
src/mcp/ MCP Streamable HTTP tool surface
src/http/ SvelteKit routes (browser REST, SSE, /mcp mount, media, auth)
src/web/ Svelte components and client storesSvelteKit está apuntado a src/http/routes para las rutas y a src/web para $lib, de modo que los directorios propios del framework se alinean con los límites de los módulos en lugar de luchar contra ellos. Importa entre módulos a través de los alias $db, $events, $media, $domain, $mcp, $http y $web.
Configuración
Cada ajuste es una variable de entorno. Consulta .env.example para
la lista completa con valores predeterminados y cómo generar cada secreto. src/config.ts
los valida al arrancar, por lo que un valor incorrecto falla con el nombre de la variable infractora en lugar de hacerlo en la primera solicitud.
Haz una copia de seguridad de DATA_DIR: la base de datos SQLite más una sincronización rsync de media/. La guía de sqlite3 .backup del diseño necesita la CLI de sqlite3, que es un paquete separado de la biblioteca better-sqlite3 que usa esta aplicación — la parte de empaquetado debe incluirla en la imagen de Docker, o tomar la copia de seguridad en línea a través del propio db.backup() de better-sqlite3.
Despliegue
La aplicación es un único proceso de Node. npm run build y luego node build, escuchando en PORT (por defecto 8010).
Coloca un proxy inverso delante para TLS. Dos cosas sobre ese proxy no son opcionales.
El feed en vivo no debe almacenarse en búfer
El panel transmite mediante Server-Sent Events en /api/stream. Un proxy con almacenamiento en búfer rompe esto de la manera más confusa posible: la página se conecta, no informa de ningún error y simplemente nunca se actualiza. Caddy detecta text/event-stream por sí solo, pero dilo explícitamente para que un cambio posterior de configuración no pueda provocar una regresión.
agents.wildware.dev {
@stream path /api/stream
reverse_proxy @stream 127.0.0.1:8010 {
flush_interval -1
}
# Wide enough for slow video uploads and the 55s approval-gate holds.
reverse_proxy 127.0.0.1:8010 {
transport http {
read_timeout 300s
}
}
}Detrás de nginx, el equivalente es proxy_buffering off en esa ruta, además de proxy_read_timeout 300s:
location /api/stream {
proxy_pass http://127.0.0.1:8010;
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 300s;
proxy_set_header Connection '';
proxy_http_version 1.1;
}La dirección del cliente debe reenviarse
Establece ADDRESS_HEADER=X-Forwarded-For y XFF_DEPTH=1 (consulta .env.example).
Sin ellos, el adaptador de Node informa del proxy como el cliente de cada solicitud, por lo que el limitador de velocidad de inicio de sesión se colapsa en un único depósito compartido y cinco intentos incorrectos de cualquier extraño bloquean al propietario durante quince minutos. La aplicación se niega a arrancar en este estado en lugar de servir un panel del que puedas quedarte bloqueado.
También establece PUBLIC_BASE_URL al origen accesible externamente. create_upload
entrega a los agentes una URL de subida absoluta construida a partir de él, y un agente al que se le da una URL 127.0.0.1 no puede subir nada.
Copias de seguridad
Dos cosas que conservar: el archivo SQLite y data/media/. Toma la copia de la base de datos mediante la copia de seguridad en línea de SQLite en lugar de copiar el archivo mientras el proceso escribe en él — el modo WAL significa que un cp simple puede capturar un estado inconsistente. La CLI de sqlite3 no es necesaria y no se asume que esté instalada.
Licencia
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI agents to submit projects, track tasks, and manage work on RobotFail, connecting them with human workers for real-world task execution.8MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to manage projects, epics, and tasks with atomic locking, real-time dashboard, and multi-agent coordination.MIT
- AlicenseNot gradedqualityBmaintenanceEnables multiple LLM agents across devices to form teams, share knowledge, memory, and tasks with live status via a web dashboard and distributed-systems reliability.Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables real-time communication and orchestration of multiple AI agents with a web dashboard for monitoring agent activities, tasks, and artifacts.MIT
Related MCP Connectors
Build and run visual creative-production workflows from your AI agent.
Turns any agent into a full agentic application — branded, interactive screens generated at runtime.
Give your agent live data from Twitter, Reddit, the web and GitHub. No API keys, no scraping stack.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/wildware-uk/agent-dashboard'
If you have feedback or need assistance with the MCP directory API, please join our Discord server