WidgetDash

io.github.purianPublished by GitHub account purianv0.2.0Updated Nov 3, 2026

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

Overview

AI-generated overview

WidgetDash pushes numbers and statuses from an AI assistant to the user's iPhone Home Screen, Lock Screen widgets and Live Activities, and reads them back.

What you can do
  • Create or update a widget data source with a title, SF Symbol icon, category and a full metric list
  • Set a single value on a source by label, creating the source if needed
  • List the widget sources and the plan's source allowance
  • Read what is currently shown on the widgets, with metrics and last update times
  • Permanently delete a source and end its Live Activity
When to use it
Useful when you want an assistant to surface live figures on an iPhone widget, such as revenue, open tickets, repo stats, server health or CI status, and to check or clean up what is displayed.
Requirements
Runs locally over stdio via npx, so Node.js 18 or newer is needed. A WIDGETDASH_WRITE_KEY is required for push and delete tools; an optional WIDGETDASH_READ_KEY covers read tools and falls back to the write key. WIDGETDASH_API_URL is optional and defaults to the WidgetDash API. The free WidgetDash iOS app with a widget added is needed to see the data.
Before you install
The write key is a secret that can create, overwrite and permanently delete widget data; treat it like a password and rotate it if leaked. push_metrics replaces a source's entire metric list, and delete_source removes data irreversibly. Keys are sent to the WidgetDash API, and the server contacts whatever WIDGETDASH_API_URL points to.

Installation

In SourceWeft

  1. Open WidgetDash in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

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

Source: README.md at commit e8d3bc4

Tools

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.

Parametersiconmetricsrequiredcategoryraw_datasort_ordersource_keyrequireddisplay_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.

Parametersicontypecolorlabelrequiredvaluerequiredcategorysort_ordersource_keyrequireddisplay_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.

Takes no parameters.

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.

Parameterssource_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.

Parameterssource_keyrequired

Version history

1
  1. v0.2.0LatestOct 29, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts