Skip to main content
Glama
DUROV-OS

Dashboard MCP

by DUROV-OS

Dashboard MCP

MCP-Connector + Read-only-Web-Viewer für Dashboards, die ein KI-Agent vollständig kontrolliert. Unterstützt beliebig viele unabhängige Dashboards — jedes mit eigenem slug, eigener Datei und URL /d/<slug>.

Live-Service: https://dashboard.89-207-254-32.nip.io

  • Liste der Dashboards: /

  • Einzelnes Dashboard (read-only, automatische Aktualisierung alle 5 Sekunden): /d/<slug>

  • JSON-API (ebenfalls read-only): /api/dashboards, /api/dashboards/<slug>

  • MCP-Endpunkt (OAuth erforderlich): /mcp

Wie es funktioniert

  • mcp_app.py — erstellt einen einzigen MCPServer, mit OAuth (falls OAUTH_*-Variablen gesetzt sind) oder ohne (für die lokale Entwicklung).

  • tools.py — MCP-Tools (@mcp.tool()): list_dashboards, create_dashboard, get_dashboard, update_dashboard_meta, delete_dashboard, add_widget, update_widget, remove_widget, reorder_widgets, replace_widgets. Damit steuert der Agent die Dashboards. Sie sind per OAuth unter /mcp geschützt.

  • web.py — öffentliche HTML-Seiten und JSON-API (@mcp.custom_route, laut SDK-Dokumentation benötigen keine Autorisierung) — hier schauen Menschen im Browser zu.

  • models.py — Pydantic-Schemata für Widgets: text, list, stats, progress, chart.

  • store.py — Dateispeicher, ein JSON pro Dashboard in data/dashboards/.

Related MCP server: Agent Team MCP Server

Widget-Typen

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

Allgemeine Felder: title (optional), size: sm|md|lg|full (Breite im Grid).

Lokaler Start

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)

So verbinden Sie den Connector in Claude

  1. Auf dem Server wurde ein statischer OAuth-Client erstellt (Client ID/Secret werden separat ausgegeben).

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

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

    • Client ID / Client Secret — wie beim Deployment ausgegeben.

  3. Nach der Autorisierung stehen dem Agenten die Tools aus tools.py zur Verfügung.

Deployment

Der Produktionsserver zieht dieses Repository selbst: deploy/deploy.sh wird per Cron alle 2 Minuten ausgeführt, vergleicht den lokalen HEAD mit origin/main, und wenn es neue Commits gibt — git reset --hard + docker compose up -d --build + Prüfung von /healthz. Einfach git push nach main — die Änderungen werden in der Produktion automatisch innerhalb von ~2 Minuten übernommen.

Letzte verifizierte Bereitstellung: 2026-08-19T15:29:01Z

Related MCP Connectors

Related MCP Servers