WidgetDash について
WidgetDashは、iPhoneのウィジェットやLive Activitiesに数値・ステータスデータを送信し、読み取るMCPサーバーです。MCPクライアント経由でAIエージェントにウィジェットを更新させたい人向けです。
主な機能
- 01値や指標セットの送信・更新
- 02データソースとウィジェット表示内容の読み取り
- 03数値、テキスト、ステータス、進捗、パーセンテージ、タイムスタンプの表示
- 04データソースの削除とLive Activitiesの終了
活用シーン
- 01iPhoneウィジェットへのStripe MRR表示
- 02ロック画面ウィジェットでのGitHubリポジトリ情報の追跡
- 03サーバーの稼働状態、CPU、稼働時間の表示
- 04ビルド後のCIステータス表示
MCP 対応
MCPクライアントに、WidgetDashデータの書き込み、読み取り、一覧表示、削除ツールを提供します。stdioで起動でき、アクセスにはAPIキーを使います。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y widgetdash-mcpWIDGETDASH_WRITE_KEYシークレットWidgetDash write key (from https://widgetdash.app/app). Required to push or delete widget data.WIDGETDASH_READ_KEYシークレットOptional WidgetDash read key for read-only tools. Falls back to the write key.WIDGETDASH_API_URLAPI base URL.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
WidgetDash MCP サーバー
AI エージェントを使って、iPhoneに好きな数値を表示できます。
WidgetDashは、iPhoneのホーム画面ウィジェット、ロック画面ウィジェット、ライブアクティビティに、さまざまなサービスの数値を表示します。このModel Context Protocolサーバーを使うと、Claude Desktop、Claude Code、CursorなどのMCPクライアントからウィジェットにデータを送信し、読み取ることができます。たとえば、次のように頼むだけです。
「StripeのMRRをiPhoneのウィジェットに表示して。」
必要なもの
- 無料のWidgetDash iOSアプリ:https://apps.apple.com/us/app/widgetdash/id6761054679。ホーム画面またはロック画面にWidgetDashウィジェットを追加してください。
- APIキー。https://widgetdash.app/appで取得できます。
- 書き込みキー:エージェントがウィジェットのデータを作成、更新できるようにします。
- 読み取りキー(任意):読み取り専用のアクセス権を付与します。省略した場合、読み取りツールでは書き込みキーを使用します。
- Node.js 18以降(
npxが付属しています)。
セットアップ
Claude Code
claude mcp add widgetdash -e WIDGETDASH_WRITE_KEY=your-write-key -- npx -y widgetdash-mcp
Claude Desktop
claude_desktop_config.jsonを編集し(「設定」→「開発者」→「設定を編集」)、Claude Desktopを再起動してください。
{
"mcpServers": {
"widgetdash": {
"command": "npx",
"args": ["-y", "widgetdash-mcp"],
"env": {
"WIDGETDASH_WRITE_KEY": "your-write-key",
"WIDGETDASH_READ_KEY": "your-read-key"
}
}
}
}
Cursor
すべてのプロジェクトに設定する場合は~/.cursor/mcp.jsonに、1つのプロジェクトに設定する場合は.cursor/mcp.jsonに追加してください。
{
"mcpServers": {
"widgetdash": {
"command": "npx",
"args": ["-y", "widgetdash-mcp"],
"env": { "WIDGETDASH_WRITE_KEY": "your-write-key" }
}
}
}
stdioサーバーを起動できる他のMCPクライアントも、同じ方法で設定できます。コマンドはnpx -y widgetdash-mcpで、キーは以下の環境変数に設定します。
環境変数
| 変数 | 必須 | 説明 |
|---|---|---|
WIDGETDASH_WRITE_KEY | 書き込み時に必須 | https://widgetdash.app/appで取得できる書き込みキーです。push_metrics、push_number、delete_sourceで必要です。 |
WIDGETDASH_READ_KEY | いいえ | 読み取りキーです。list_sourcesとget_widget_dataで使用します。設定されていない場合は、書き込みキーが使われます。 |
WIDGETDASH_API_URL | いいえ | APIのベースURLです。デフォルト:https://api.widgetdash.app。 |
プロンプトの例
- 「StripeのMRRをiPhoneのウィジェットに表示して。」(エージェントがStripeツールで数値を読み取り、
push_numberを呼び出します。) - 「今日のGitHubスター数、未解決のIssue、未解決のPRを、リポジトリ用のロック画面ウィジェットに表示して。」
- 「CPUをプログレスバー、稼働時間を数値、ステータスを緑の『正常』バッジで表示する『Server』ウィジェットを作成して。」
- 「ビルドが完了するたびに、『CI』ウィジェットのステータスを『成功』または『失敗』に設定して。」
- 「今、WidgetDashウィジェットには何が表示されていますか?」
- 「古い『test』ソースをウィジェットから削除して。」
ツール
| ツール | 機能 |
|---|---|
push_number | ソースの値を1つ設定します。例:MRR = $12,400。ソース内の他の指標はそのままです。指標はラベルで照合されます。ソースがまだ存在しない場合は作成されます。 |
push_metrics | ソースを作成または更新します。タイトル(display_name)、SF Symbolのicon、category、sort_order(新規ソースのみ。並べ替えはアプリで行います)、およびmetricsリスト全体を設定します。このリストは、ソースの現在の指標を置き換えます。 |
list_sources | ソース(キー、タイトル、アイコン、非表示または表示)と、プランで許可されているソース数を一覧表示します。無料プランでは5件まで利用できます。 |
get_widget_data | 現在ウィジェットに表示されている内容を表示します。有効なソースすべてとその指標、最終更新時刻を表示するほか、単一のソースを指定できます。 |
delete_source | ソースを完全に削除し、そのソースのライブアクティビティを終了します。 |
メトリクス
各メトリクスには label、value、任意の type、任意の color、任意の wide があります。
-
typeは、ウィジェットで値をどのように表示するかを設定します。number:大きく太字の数値です。text:通常の文字列です。status:色付きのバッジです。progress:バーです。値は 0〜100 である必要があり、末尾の%は自動的に削除されます。percentage:コンパクトなパーセント表示です。timestamp:時刻を、「8 hours ago」のようなリアルタイムの相対時間で表示します。ISO 8601 形式の時刻(2026-10-23T05:00:00Z)または Unix エポック秒を送信してください。読み取り時には、相対時間と正確な時刻が表示されます。
typeを省略すると、数値のように見える値(42、$12,400、3.5%)はnumberに、それ以外はtextになります。push_numberを使うと、既存のメトリクスは現在のtype、color、wideを維持し、ソースのその他のメトリクスは保存されていた状態で再送信されます。タイムスタンプは正確な時刻を維持し、ソースの色ルールで選択された色は引き続きそのルールに従います。 -
color:green、red、yellow、blue、gray、orange、purpleまたはcyanです。 -
wide:trueにすると、長いテキスト(タイトルなど)の場合に、大型ウィジェット(iOS アプリ 1.8 以降)でメトリクスが全幅の独立した行に表示されます。同じ行を共有するほかのテキストは最大 2 行まで表示されます。ほかのメトリクスを 1 行に保つには、幅広メトリクスを最後に配置してください。 -
icon:SF Symbol の名前を指定します。例:dollarsign.circle.fill、chart.bar.fill、server.rack、heart.fill。
省略したフィールド(display_name、icon、category、raw_data)は現在の値を維持します。sort_order が適用されるのは新しいソースのみです。ソースが作成されると、アプリで設定された順序が使われるため、エージェントがその順序を元に戻すことはできません。
セキュリティ
- 書き込みキーで書き込めるのは、自分のウィジェットデータのみです。 ほかのユーザーのデータや、自分のアカウントの請求情報にはアクセスできません。
- キーは、WidgetDash API へのリクエストの
Authorizationヘッダーにのみ指定してください。サーバーがキーをログに記録することはなく、返すエラーテキストからも削除されます。 - 書き込みキーはパスワードと同様に扱ってください。漏えいした場合は、https://widgetdash.app/app でキーをローテーションしてください。
- サーバーが通信するのは
WIDGETDASH_API_URLのみです。デフォルト値はhttps://api.widgetdash.appです。
開発
npm install
npm run build # compiles src/ to dist/
npm test # builds, then runs the end-to-end tests
npm test は、WidgetDash API のメモリ内モック(test/mock-api.mjs)に対して、すべてのツールを実際の MCP クライアント経由で stdio を使って実行します。ネットワークもキーも不要で、本番環境に接続することはありません。
対話形式で試すには、npx @modelcontextprotocol/inspector node dist/index.js を実行してください。
MCP レジストリ
server.json は、スキーマ 2025-12-11 に準拠した、名前 io.github.purian/widgetdash-mcp での公式 MCP レジストリへの登録情報です。npm の所有権確認では、package.json の mcpName フィールドがこの名前と一致している必要があります。ステータス:ドラフト。 まだ公開されておらず、レジストリもプレビュー段階です。そのため、mcp-publisher publish を実行する前に、server.json が現在のスキーマに準拠しているか確認してください。
ライセンス
MIT © WidgetDash
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。