WidgetDash

io.github.purian由 GitHub 帳號 purian 發布v0.2.0更新於 Nov 3, 2026

Push any number to your iPhone Home Screen / Lock Screen widgets and Live Activities.

已驗證STDIO僅桌面效率與工作流資料與分析

概覽

AI 產生的概覽

WidgetDash 讓 AI 助理把數字與狀態推送到使用者 iPhone 的主畫面、鎖定畫面小工具與即時動態,並可讀回目前顯示的內容。

可以做什麼
  • 建立或更新小工具資料來源,設定標題、SF Symbol 圖示、分類與完整指標清單
  • 依標籤設定資料來源中的單一數值,來源不存在時自動建立
  • 列出小工具資料來源以及方案允許的來源數量
  • 讀取小工具目前顯示的內容、指標與最後更新時間
  • 永久刪除資料來源並結束其對應的即時動態
適用情境
適合希望助理把即時數字顯示在 iPhone 小工具上的情境,例如營收、待處理工單、儲存庫統計、伺服器健康狀態或 CI 狀態,也適合查看與清理目前顯示的內容。
執行需求
透過 npx 以 stdio 在本機執行,需要 Node.js 18 或更新版本。推送與刪除工具需要 WIDGETDASH_WRITE_KEY;選用的 WIDGETDASH_READ_KEY 供讀取工具使用,未設定時改用寫入金鑰。WIDGETDASH_API_URL 為選用,預設指向 WidgetDash API。需安裝免費的 WidgetDash iOS 應用程式並加入小工具才能看到資料。
安裝前請注意
寫入金鑰是敏感憑證,可建立、覆寫並永久刪除小工具資料,應像密碼一樣保管,外洩後需輪換。push_metrics 會取代資料來源的整份指標清單,delete_source 會不可逆地刪除資料。金鑰會傳送給 WidgetDash API,伺服器只連線到 WIDGETDASH_API_URL 指定的位址。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 WidgetDash,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

WidgetDash MCP server

Let your AI agent put any number on your iPhone.

WidgetDash shows numbers from any service on iPhone Home Screen widgets, Lock Screen widgets and Live Activities. This Model Context Protocol server lets Claude Desktop, Claude Code, Cursor and other MCP clients push data to your widgets and read it back. You just ask:

"Put my Stripe MRR on my iPhone widget."

What you need

  1. The free WidgetDash iOS app: https://apps.apple.com/us/app/widgetdash/id6761054679, with a WidgetDash widget on your Home Screen or Lock Screen.
  2. Your API keys. Get them at https://widgetdash.app/app.
    • Write key: lets the agent create and update your widget data.
    • Read key (optional): read-only access. If you leave it out, the read tools use the write key.
  3. Node.js 18 or newer (npx comes with it).

Setup

Claude Code

bash
claude mcp add widgetdash -e WIDGETDASH_WRITE_KEY=your-write-key -- npx -y widgetdash-mcp

Claude Desktop

Edit claude_desktop_config.json (Settings → Developer → Edit Config), then restart Claude Desktop:

json
{  "mcpServers": {    "widgetdash": {      "command": "npx",      "args": ["-y", "widgetdash-mcp"],      "env": {        "WIDGETDASH_WRITE_KEY": "your-write-key",        "WIDGETDASH_READ_KEY": "your-read-key"      }    }  }}

Cursor

Add this to ~/.cursor/mcp.json for all projects, or .cursor/mcp.json for one project:

json
{  "mcpServers": {    "widgetdash": {      "command": "npx",      "args": ["-y", "widgetdash-mcp"],      "env": { "WIDGETDASH_WRITE_KEY": "your-write-key" }    }  }}

Other MCP clients that can launch a stdio server work the same way. The command is npx -y widgetdash-mcp, and the keys go in the environment variables below.

Environment variables

VariableRequiredDescription
WIDGETDASH_WRITE_KEYFor writesWrite key from https://widgetdash.app/app. push_metrics, push_number and delete_source need it.
WIDGETDASH_READ_KEYNoRead key. list_sources and get_widget_data use it, or the write key if it isn't set.
WIDGETDASH_API_URLNoAPI base URL. Default: https://api.widgetdash.app.

Example prompts

  • "Put my Stripe MRR on my iPhone widget." (The agent reads the number with a Stripe tool, then calls push_number.)
  • "Show today's GitHub stars, open issues and open PRs for my repo on my Lock Screen widget."
  • "Make a 'Server' widget with CPU as a progress bar, uptime as a number and a green 'Healthy' status badge."
  • "Every time you finish a build, set the 'CI' widget status to Passing or Failing."
  • "What's on my WidgetDash widget right now?"
  • "Remove the old 'test' source from my widget."

Tools

ToolWhat it does
push_numberSets one value on a source, e.g. MRR = $12,400. Other metrics on the source stay as they are. The metric is matched by label. If the source doesn't exist yet, it is created.
push_metricsCreates or updates a source: title (display_name), SF Symbol icon, category, sort_order (new sources only; reorder in the app) and the full metrics list. The list replaces the source's current metrics.
list_sourcesLists your sources (key, title, icon, hidden or shown) and how many your plan allows. The free plan allows 5.
get_widget_dataShows what's on the widget now: every enabled source with its metrics and last update time, or a single source.
delete_sourcePermanently deletes a source and ends any Live Activity for it.

Metrics

Each metric has a label, a value, an optional type, an optional color and an optional wide:

  • type sets how the widget draws the value:

    • number: a big bold figure.
    • text: a plain string.
    • status: a colored badge.
    • progress: a bar. The value must be 0 to 100, and a trailing % is removed for you.
    • percentage: compact percent text.
    • timestamp: a moment, shown as a live relative time such as "8 hours ago". Send an ISO 8601 time (2026-10-23T05:00:00Z) or Unix epoch seconds. Reads show the relative time plus the exact time.

    If you leave type out, values that look like numbers (42, $12,400, 3.5%) become number and everything else becomes text. With push_number, an existing metric keeps its current type, color and wide, and the source's other metrics are re-sent as they were stored: timestamps keep their exact time, and colors chosen by the source's color rules stay under the rules' control.

  • color: green, red, yellow, blue, gray, orange, purple or cyan.

  • wide: true gives the metric a full-width row of its own on Large widgets (iOS app 1.8 or later), for long text such as a title. Other text that shares a row shows up to two lines. Put wide metrics last to keep the others in one row.

  • icon: any SF Symbol name, e.g. dollarsign.circle.fill, chart.bar.fill, server.rack or heart.fill.

Fields you leave out (display_name, icon, category, raw_data) keep their current values. sort_order only places a new source: once it exists, its order is the one set in the app, so an agent can't undo it.

Security

  • The write key can only write your own widget data. It can't reach other users' data or your account's billing.
  • Keys go only in the Authorization header of requests to the WidgetDash API. The server never logs them and removes them from any error text it returns.
  • Treat the write key like a password. If it leaks, rotate it at https://widgetdash.app/app.
  • The server only talks to WIDGETDASH_API_URL, which is https://api.widgetdash.app by default.

Development

bash
npm installnpm run build        # compiles src/ to dist/npm test             # builds, then runs the end-to-end tests

npm test runs every tool through a real MCP client over stdio, against an in-memory mock of the WidgetDash API (test/mock-api.mjs). It needs no network and no keys, and it never contacts production.

To try it interactively, run npx @modelcontextprotocol/inspector node dist/index.js.

MCP Registry

server.json is the entry for the official MCP Registry under the name io.github.purian/widgetdash-mcp, following schema 2025-12-11. The mcpName field in package.json must match that name for npm ownership verification. Status: draft. It hasn't been published yet, and the registry is still in preview, so check server.json against the current schema before running mcp-publisher publish.

License

MIT © WidgetDash

來源:README.md,提交 e8d3bc4

工具

5

push_metrics

Push metrics to iPhone widget

Create or update a WidgetDash data source shown on the user's iPhone Home Screen / Lock Screen widgets and Live Activities. Sets the source's title, SF Symbol icon, category and its full list of metrics (label + value + type + color). The metrics list REPLACES the source's current metrics; use push_number to change a single value. Omitted display_name/icon/category keep their current values; sort_order only applies when the source is created. Requires WIDGETDASH_WRITE_KEY.

輸入參數iconmetrics必填categoryraw_datasort_ordersource_key必填display_name

push_number

Push one number to iPhone widget

Quickest way to put a single number or value on the user's iPhone Home Screen / Lock Screen widget via WidgetDash, e.g. 'Stripe MRR = $12,400' or 'Open tickets = 7'. Sets one metric (matched by label) on a source, keeping the source's other metrics, title and icon; creates the source if it does not exist. Requires WIDGETDASH_WRITE_KEY.

輸入參數icontypecolorlabel必填value必填categorysort_ordersource_key必填display_name

list_sources

List WidgetDash sources

List the data sources on the user's WidgetDash iPhone widgets (source_key, title, icon, enabled/hidden) plus the plan's source usage (the free plan allows 5 sources). Uses WIDGETDASH_READ_KEY, or the write key if no read key is set.

無需輸入參數。

get_widget_data

Read iPhone widget data

Read what is currently shown on the user's WidgetDash iPhone widgets: every enabled source with its metrics and last update time, or one source if source_key is given. Uses WIDGETDASH_READ_KEY, or the write key if no read key is set.

輸入參數source_key

delete_source

Delete WidgetDash source

Permanently delete a data source (and its data) from the user's WidgetDash iPhone widgets. Ends any Live Activity for it. Only do this when the user asks to remove it. Requires WIDGETDASH_WRITE_KEY.

輸入參數source_key必填

版本歷史

1
  1. v0.2.0最新Oct 29, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分