Agent Dashboard
Agent Dashboard
Панель управления с самостоятельным хостингом, где AI-агенты, пишущие код, сообщают о том, что они делают, а вы наблюдаете и направляете их в реальном времени.
Агенты подключаются через MCP (удалённый Streamable HTTP — без локальной установки), чтобы создавать проекты, публиковать обновления статуса с изображениями и видео, брать задачи, читать ваши ответы и останавливаться в ожидании вашего одобрения. Вы наблюдаете за живой лентой в браузере, которая обновляется без перезагрузки.
Статус: в разработке. Дизайн завершён и зафиксирован; реализация отслеживается в issues.
Что он делает
Расширенные обновления статуса — markdown, изображения и видео, публикуемые агентами по мере работы.
Проекты — агенты создают их; вы переименовываете, закрепляете и архивируете их.
В реальном времени — всё передаётся в открытый браузер через SSE, без опроса и без перезагрузки.
Присутствие — видно, какие агенты сейчас в сети.
Плоскость управления — назначайте задачи агентам, отвечайте им и пропускайте их работу через одобрение, которое вы подтверждаете кликом.
Related MCP server: Project Manager MCP
Область применения
Один владелец и собственный хостинг. Один инстанс, один владелец, без мультитенантности и учётных записей. Рассчитано на десятки агентов и несколько тысяч обновлений на одной машине.
Дизайн
Полная архитектура, модель данных, набор инструментов MCP и семантика шлюза одобрения описаны в docs/superpowers/specs/2026-08-25-agent-dashboard-design.md.
Разработка
Требуются Node 22+ и ffmpeg в PATH.
npm ci
cp .env.example .env # then fill in the secrets
npm run devСкрипт | Что делает |
| Dev-сервер Vite |
| Продакшен-сборка через Node-адаптер ( |
| Node-юнит-тесты (Vitest) — набор по умолчанию, браузер не нужен |
| Тесты Svelte-компонентов в реальном Chromium (браузерный режим Vitest) |
| Сквозные тесты Playwright |
| Юнит + компонентные + e2e |
|
|
| Проверка Prettier + ESLint |
| Форматирование через Prettier |
При первом запуске компонентные и e2e-тесты скачивают сборку Chromium, поэтому CI и стандартный npm test намеренно остаются на наборе юнит-тестов, работающих только на Node.
Структура
src/ повторяет таблицу модулей из §2 дизайна. В каждом каталоге есть README, где указаны его единственная задача и единственные модули, которые ему разрешено импортировать.
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 указывает на src/http/routes для маршрутов и на src/web для $lib, поэтому собственные каталоги фреймворка совпадают с границами модулей, а не конфликтуют с ними. Импорт между модулями выполняется через алиасы $db, $events, $media, $domain, $mcp, $http и $web.
Конфигурация
Каждая настройка — это переменная окружения. Полный список со значениями по умолчанию и инструкциями по генерации каждого секрета см. в .env.example. src/config.ts проверяет их при запуске, поэтому некорректное значение приводит к ошибке с указанием проблемной переменной, а не на первом запросе.
Резервируйте DATA_DIR: базу SQLite плюс rsync каталога media/. Рекомендация из дизайна об использовании sqlite3 .backup требует CLI sqlite3, который является отдельным пакетом от используемой в приложении библиотеки better-sqlite3 — часть, отвечающая за упаковку, должна либо включить его в Docker-образ, либо выполнять онлайн-резервное копирование через собственный метод db.backup() из better-sqlite3.
Развёртывание
Приложение — это один Node-процесс. Выполните npm run build, затем node build; оно слушает порт PORT (по умолчанию 8010).
Для TLS поместите перед приложением обратный прокси. Два требования к этому прокси не являются опциональными.
Живая лента не должна буферизоваться
Дашборд передаёт данные через Server-Sent Events по адресу /api/stream. Буферизующий прокси ломает это самым запутанным образом: страница подключается, не сообщает об ошибке и просто никогда не обновляется. Caddy сам распознаёт text/event-stream, но укажите это явно, чтобы будущее изменение конфигурации не вызвало регрессию.
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
}
}
}В nginx эквивалентом будет proxy_buffering off для этого маршрута плюс 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;
}Адрес клиента должен передаваться
Задайте ADDRESS_HEADER=X-Forwarded-For и XFF_DEPTH=1 (см. .env.example). Без них Node-адаптер сообщает о прокси как о клиенте каждого запроса, поэтому ограничитель частоты попыток входа схлопывается в один общий бакет, и пять неверных попыток любого постороннего блокируют владельцу доступ на пятнадцать минут. В таком состоянии приложение отказывается запускаться, а не отдаёт дашборд, из которого вас могут заблокировать.
Также установите PUBLIC_BASE_URL на внешне доступный origin. Функция create_upload выдаёт агентам абсолютный URL для загрузки, построенный из него, и агент, получивший URL с 127.0.0.1, не сможет ничего загрузить.
Резервное копирование
Нужно сохранить две вещи: файл SQLite и data/media/. Копию базы делайте через онлайн-резервное копирование SQLite, а не копированием файла, пока процесс пишет в него, — в режиме WAL обычный cp может захватить несогласованное состояние. CLI sqlite3 не требуется, и его наличие не предполагается.
Лицензия
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