Skip to main content
Glama
DUROV-OS

Dashboard MCP

by DUROV-OS

Dashboard MCP

Conector MCP + visor web de solo lectura para dashboards completamente controlados por un agente de IA. Admite cualquier cantidad de dashboards independientes: cada uno con su propio slug, archivo y URL /d/<slug>.

Servicio en vivo: https://dashboard.89-207-254-32.nip.io

  • Lista de dashboards: /

  • Dashboard específico (solo lectura, actualización automática cada 5 s): /d/<slug>

  • API JSON (también de solo lectura): /api/dashboards, /api/dashboards/<slug>

  • Endpoint MCP (requiere OAuth): /mcp

Cómo funciona

  • mcp_app.py — crea un único MCPServer, con OAuth (si están definidas las variables OAUTH_*) o sin él (para desarrollo local).

  • tools.py — herramientas MCP (@mcp.tool()): list_dashboards, create_dashboard, get_dashboard, update_dashboard_meta, delete_dashboard, add_widget, update_widget, remove_widget, reorder_widgets, replace_widgets. Son las herramientas con las que el agente gestiona los dashboards. Están protegidas con OAuth en /mcp.

  • web.py — páginas HTML públicas y API JSON (@mcp.custom_route, que según la documentación del SDK no requieren autorización) — son las que las personas ven en el navegador.

  • models.py — esquemas pydantic de widgets: text, list, stats, progress, chart.

  • store.py — almacenamiento de archivos, un JSON por dashboard en data/dashboards/.

Related MCP server: Agent Team MCP Server

Tipos de widgets

{"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]}]}

Campos comunes: title (opcional), size: sm|md|lg|full (ancho en la cuadrícula).

Ejecución local

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)

Cómo conectar el conector en Claude

  1. En el servidor se ha creado un cliente OAuth estático (Client ID/Secret se entregan por separado).

  2. En Claude: Settings → Connectors → Add custom connector.

    • URL: https://dashboard.89-207-254-32.nip.io/mcp

    • Client ID / Client Secret — como se hayan proporcionado en el despliegue.

  3. Después de la autorización, el agente tiene acceso a las herramientas de tools.py.

Despliegue

El servidor de producción se actualiza solo desde este repositorio: deploy/deploy.sh se ejecuta mediante cron cada 2 minutos, compara el HEAD local con origin/main y, si hay commits nuevos, ejecuta git reset --hard + docker compose up -d --build + verificación de /healthz. Simplemente git push a main — los cambios se recogen en producción automáticamente en ~2 minutos.

Último despliegue verificado: 2026-08-19T15:29:01Z

Related MCP Connectors

Related MCP Servers