Dashboard MCP
Dashboard MCP
MCP-коннектор + read-only веб-вьювер для дашбордов, которые полностью
контролирует ИИ-агент. Поддерживает произвольное количество независимых
дашбордов — каждый со своим slug, файлом и URL /d/<slug>.
Живой сервис: https://dashboard.89-207-254-32.nip.io
Список дашбордов:
/Конкретный дашборд (read-only, автообновление каждые 5с):
/d/<slug>JSON API (тоже read-only):
/api/dashboards,/api/dashboards/<slug>MCP-эндпоинт (нужен OAuth):
/mcp
Как это устроено
mcp_app.py— создаёт единственныйMCPServer, с OAuth (если заданыOAUTH_*переменные) или без (для локальной разработки).tools.py— MCP-тулы (@mcp.tool()):list_dashboards,create_dashboard,get_dashboard,update_dashboard_meta,delete_dashboard,add_widget,update_widget,remove_widget,reorder_widgets,replace_widgets. Это то, чем агент управляет дашбордами. Защищены OAuth-ом на/mcp.web.py— публичные HTML-страницы и JSON API (@mcp.custom_route, по документации SDK не требуют авторизации) — сюда смотрят люди в браузере.models.py— pydantic-схемы виджетов:text,list,stats,progress,chart.store.py— файловое хранилище, один JSON на дашборд вdata/dashboards/.
Типы виджетов
{"type": "text", "title": "Заметка", "body": "..."}
{"type": "list", "title": "Задачи", "ordered": false, "items": [{"label": "...", "value": "...", "note": "..."}]}
{"type": "stats", "title": "Метрики", "items": [{"label": "MRR", "value": "128k", "unit": "₽", "delta": "+12%", "trend": "up"}]}
{"type": "progress", "title": "Прогресс", "items": [{"label": "Q3", "value": 62, "max": 100, "color": "#395b4b"}]}
{"type": "chart", "title": "Динамика", "chartType": "line", "labels": ["Пн","Вт"], "series": [{"name": "Заказы", "data": [3, 7]}]}Общие поля: title (опционально), size: sm|md|lg|full (ширина в гриде).
Локальный запуск
pip install -r requirements.txt
cp .env.example .env # можно оставить OAUTH_* пустыми — сервер поднимется без auth
MCP_TRANSPORT=streamable-http python server.py
# либо просто `python server.py` для stdio (claude mcp add / MCP Inspector)Как подключить коннектор в Claude
На сервере создан статический OAuth-клиент (Client ID/Secret выданы отдельно).
В Claude: Settings → Connectors → Add custom connector.
URL:
https://dashboard.89-207-254-32.nip.io/mcpClient ID / Client Secret — как выданы при разворачивании.
После авторизации агенту становятся доступны тулы из
tools.py.
Деплой
Продовый сервер тянет этот репозиторий сам: deploy/deploy.sh запускается
по cron каждые 2 минуты, сравнивает локальный HEAD с origin/main, и если
есть новые коммиты — git reset --hard + docker compose up -d --build +
проверка /healthz. Просто git push в main — изменения на проде
подхватятся сами в течение ~2 минут.
Last verified deploy: 2026-08-19T15:29:01Z
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 Connectors
Persistent docs and memory for AI agents — read, write, organize & search a shared workspace.
Renders interactive Chart.js charts and dashboards inline in AI conversations.
Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.
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/DUROV-OS/dashboard-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server