Skip to main content
Glama
DUROV-OS

Dashboard MCP

by DUROV-OS

Dashboard MCP

MCP 连接器 + 只读 Web 查看器,用于完全由 AI 代理控制的仪表板。支持任意数量的独立仪表板——每个都有自己的 slug、文件和 URL /d/<slug>。

在线服务:https://dashboard.89-207-254-32.nip.io

  • 仪表板列表:/

  • 单个仪表板(只读,每 5 秒自动刷新):/d/<slug>

  • JSON API(同样只读):/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。这就是代理管理仪表板所用到的东西。它们受 /mcp 上的 OAuth 保护。

  • web.py —— 公共 HTML 页面和 JSON API(@mcp.custom_route,根据 SDK 文档不要求授权)——供人们在浏览器中查看。

  • models.py —— pydantic 小部件 schema:text、list、stats、progress、chart。

  • store.py —— 文件存储,一个仪表板对应一个 JSON 文件,存放在 data/dashboards/。

Related MCP server: Agent Team MCP Server

小部件类型

{"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 中接入连接器

  1. 服务器上已创建静态 OAuth 客户端(Client ID / Secret 已单独发放)。

  2. 在 Claude 中:Settings → Connectors → Add custom connector。

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

    • Client ID / Client Secret —— 按部署时发放的填写。

  3. 授权后,代理即可使用 tools.py 中的工具。

部署

生产服务器会自行拉取此仓库:deploy/deploy.sh 每 2 分钟通过 cron 运行一次,比较本地 HEAD 与 origin/main,如果有新提交——执行 git reset --hard + docker compose up -d --build + 检查 /healthz。只需 git push 到 main——生产环境中的变更将在约 2 分钟内自动生效。

最后验证的部署:2026-08-19T15:29:01Z

Related MCP Connectors

Related MCP Servers