mcp-dashboards について
MCP Dashboards は、AI との会話内でインタラクティブなチャート、ダッシュボード、フローチャート、KPI ウィジェットを表示する MCP サーバーです。分析結果を可視化したい方が、チャットを離れたりスプレッドシートにデータを貼り付けたりせずに利用できます。
主な機能
- 0145 以上のチャートサブタイプを含む 32 のチャートツール
- 0221 種の組み込みテーマとビジュアルカタログ
- 03タイマーで更新するライブポーリング
- 04PNG、PPT、A4、CSV へのエクスポート
- 05ドラッグ操作とステップ再生に対応した編集可能なフローチャート
活用シーン
- 01会話内で地域別の四半期売上を棒グラフとして比較
- 02月次売上 KPI と推移線によるダッシュボードの作成
- 03暗号資産の価格やポートフォリオ合計額のライブ監視
MCP 対応
本プロジェクトは MCP サーバーであり、描画ツール、ダッシュボード、カタログツールを MCP クライアントに提供します。クライアントは結果を会話内にインラインで表示します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Dashboards
AI がデータを語る。今度は、見せることもできます。
課題
分析、レポート、戦略など、あらゆることにAIを活用しています。しかし、データに隠れたストーリーを実際に見るとなると、数値をスプレッドシートにコピーして、自分でグラフを作らなければなりません。会話の中には洞察がありますが、可視化は別の場所にあります。
解決策
MCP Dashboards は、インタラクティブなチャート、ダッシュボード、KPI ウィジェットをAIとの会話の中に直接表示します。45種類以上のチャートサブタイプを網羅する32個のチャートツール(棒グラフには積み上げ表示やドリルダウン、ヒーローには11種類のバリエーション、フローチャートには6種類のノードと5種類のエッジスタイルなど)、21種類のテーマ、4つのビジュアル探索カタログ、ライブポーリング、PNG/PPT/A4エクスポートを、1つのMCP サーバーから利用できます。ブラウザーのタブを開いたり、コピー&ペーストしたり、コンテキストを切り替えたりする必要はありません。
対応クライアント
| クライアント | チャット内でのインタラクティブな表示 | 方法 |
|---|---|---|
| Claude Desktop | はい(MCP Apps) | 下記のstdio設定 |
| claude.ai(ウェブ) | はい(MCP Apps) | リモートコネクター |
| ChatGPT | はい(MCP Apps) | Developer mode経由のリモートサーバー(Settings → Apps → Advanced) |
| VS Code GitHub Copilot | はい(MCP Apps) | stdio設定 |
| Goose / Postman / MCPJam | はい(MCP Apps) | stdioまたはリモート |
| Claude Code(CLI) | ツール+ブラウザーでのプレビューへのフォールバック | 下記のclaude mcp add。チャートはローカルのブラウザータブで開きます |
ChatGPT と claude.ai では、リモートでホストされたエンドポイント(下記のStreamable HTTPモード)が必要です。デスクトップクライアントではサーバーがローカルで起動します。
重要
公式のnpmパッケージは、このリポジトリから公開されている
mcp-dashboardsのみです。名前が似たパッケージは当プロジェクトのものではありません。mcp-dashboards-sharedはマルウェアでした(OSSFアドバイザリー MAL-2026-4296を参照)。2026年5月にnpmのセキュリティチームによって削除されました。mcp-dashboardsのみをインストールしてください。
クイックスタート
Claude Desktop
claude_desktop_config.jsonに追加します。
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"dashboard": {
"command": "npx",
"args": ["-y", "mcp-dashboards", "--stdio"]
}
}
}
Claude Code / VS Code
claude mcp add dashboard -- npx -y mcp-dashboards --stdio
リモート(Streamable HTTP)
npx mcp-dashboards
# Server starts on http://127.0.0.1:3001/mcp
デフォルトではlocalhostにバインドされます。ネットワーク上に公開する必要がある場合や、localhost以外のオリジンからのブラウザーアクセスを許可する場合は、設定を参照してください。
対応クライアント
MCP Apps対応クライアントであれば、どれでも動作します:Claude Desktop、Claude Web、VS Code(GitHub Copilot)、Goose、Postman、MCPJam。ChatGPTへの対応は順次展開中です。
まずは聞いてみましょう
覚える必要のある API はありません。作りたいものを平易な言葉で説明してください。
- 「地域別に第1四半期と第2四半期の売上を比較する棒グラフ」
- 「ボードルームのテーマで、ポートフォリオの配分をドーナツグラフに表示する」
- 「月次の売上 KPI とトレンドラインを含むダッシュボードを作成する」
- 「国別のウェブサイトトラフィックを世界地図で可視化する」
- 「ビットコインの価格を30秒ごとに更新しながらリアルタイムで追跡する」
- 「サインアップから購入までのコンバージョンファネルを表示する」
- 「レーダーチャートを使って、チームのパフォーマンスを順位付けする」
- 「マルチエージェントのパイプラインをフローチャートで図解し、ステップごとに進められるようにする」
AI が適切なツールを選び、データを整形して、チャートを会話内に表示します。データポイントをクリックして、追加の質問をすることもできます。
どこから始めればよいかわからない場合は、 「カタログを表示して」 と尋ねてください。カスタマイズ項目ごとにライブのビジュアルタイルが1つずつ並ぶマスターダッシュボードが開きます(チャートには実際の棒グラフ、テーマには円グラフ、ヒーローバリエーションには進捗リング、エフェクトにはネオンが光るカードが表示されます)。タイルをクリックして「質問」を押すと、そのサブカタログを詳しく確認できます。
画像ではなく、インタラクティブなチャート
すべてのチャートは、会話内に直接表示されるインタラクティブな HTML です。
- 会話内で操作 - ホバー時のツールチップ、クリックによる選択(AI にフィードバック)、パンくずリスト付きのドリルダウン、地図やヒートマップで最大12倍のスクロールズーム
- 編集可能なフローチャート - ノードのドラッグ、複数選択、右クリックでの名前変更、ナビゲーション用のミニマップとノード一覧、フローのステップ再生。レイアウトを AI に同期して保存することもできます
- ライブポーリング - 任意の API から一定間隔で自動更新されるリアルタイムチャート
- あらゆる形式にエクスポート - PPT(16:9 のスライド)、A4(スマートな改ページ付きの複数ページ)、PNG、CSV
すべてのツール
| ツール | 種類 | 最適な用途 | |------|------|----------| | `render_pie_chart` | 円グラフ/ドーナツグラフ | 構成 —「全体は何で構成されているか?」 | | `render_bar_chart` | 棒グラフ | 比較 — 縦棒、横棒、積み上げ、ドリルダウン | | `render_line_chart` | 折れ線/面グラフ | 推移 — 滑らかな曲線、グラデーション塗り、時系列 | | `render_scatter_chart` | 散布図 | 関係性 — 個々の点のラベル、注釈、象限 | | `render_candlestick_chart` | ローソク足チャート | 金融 — 出来高バー付きの OHLC データ | | `render_radar_chart` | レーダーチャート | 多軸比較 — スキル、スコア、製品属性 | | `render_treemap_chart` | ツリーマップ | 階層 — 値に応じたサイズの入れ子状の長方形 | | `render_sankey_chart` | サンキーチャート | フロー — 段階間のお金、ユーザー、リソースの流れ | | `render_wordcloud_chart` | ワードクラウド | 頻度 — テキスト分析に基づく、頻度に応じたサイズの単語 | | `render_boxplot_chart` | 箱ひげ図/バイオリンプロット | 分布 — 四分位数、外れ値、密度形状 | | `render_live_chart` | ライブ | リアルタイム — タイマーで任意の MCP ツールを自動ポーリング | | `poll_http` | データプロキシ | 任意の HTTP エンドポイントから JSON を取得 — セキュアなプリセットまたはパブリック URL | | `render_bullet_chart` | ブレットチャート | KPI と目標の比較 — ラベル付きの 2~8 個のゾーン帯 | | `render_lollipop_chart` | ロリポップチャート | 順位 — オプションの目標マーカー付きのシンプルなドット | | `render_dumbbell_chart` | ダンベルチャート | ギャップ — スケールラベルとゾーン帯付きの変更前/変更後 | | `render_variance_chart` | 差異チャート | 予算 — 実績と予算の比較、超過/未達を色分け | | `render_funnel_chart` | ファネルチャート | コンバージョン — 割合付きの段階的な離脱 | | `render_slope_chart` | スロープチャート | 変化 — 2 つの期間における順位の変動 | | `render_waffle_chart` | ワッフルチャート | 比率 — 構成を示す 10×10 のグリッド | | `render_sparkline_chart` | スパークライン | コンパクトな推移 — 変化インジケーター付きのミニカード | | `render_radial_cluster` | 放射状 | ヘルスチェック — ステータス付きの複数指標リングゲージ | | `render_waterfall_chart` | ウォーターフォールチャート | 累積 — 影響を示す連続したバー | | `render_heatmap_chart` | ヒートマップ | 強度 — 色分けされた 2D グリッド | | `render_geo_chart` | 地理/マップ | 地理 — 値に応じて国を色分け(コロプレス) | | `render_bubble_map` | バブルマップ | ピンマップ — 緯度/経度座標上に値に応じたサイズの円を表示 | | `render_timeline_chart` | タイムライン | 進捗 — ステータスインジケーター付きのマイルストーン追跡 | | `render_flowchart` | フローチャート | ワークフロー、パイプライン、アーキテクチャ、エージェントのフロー — ステータス状態、ドラッグ、ズーム、ライブポーリングに対応した、カードベースの高機能な DAG | | `render_hero_metric` | ヒーロー | KPI ウィジェット — 11 種類のバリエーション(進捗リング、ジェム、オーブ、NPS など) | | `render_dashboard` | ダッシュボード | あらゆる情報 — KPI カードと複数のチャートをレスポンシブグリッドで表示 | | `render_table` | テーブル | データ — 並べ替え可能な列、ストライプ行、CSV エクスポート | | `render_from_json` | 自動検出 | 任意の JSON データ — 最適なチャートを自動選択 | | `render_from_url` | URL 取得 | URL から JSON を取得し、自動で可視化 |検出/カタログ — 利用可能なものを閲覧するためのビジュアルな入り口です。
| ツール | 表示内容 | 使用する場面 |
|---|---|---|
render_catalog | 4 つのライブプレビュータイルを備えた総合カタログ | どこから始めればよいかわからないとき。タイルをクリックし、「Ask」を押して、さらに詳しく確認できます。 |
render_chart_catalog | ミニプレビュー付きの全 32 種類のチャート | データに合うチャートを探すとき |
render_theme_catalog | 色、タイポグラフィ、エフェクトを備えた全 21 種類のテーマ | テーマを選ぶとき |
render_hero_catalog | 全 11 種類のヒーローメトリックのバリエーション | KPI ウィジェットのスタイルを選ぶとき |
render_effects_catalog | 実際のカードに適用された全 5 種類のエフェクトプリセット | アニメーション/グローのスタイルを選ぶとき |
各チャートでは引き続き typography=<name> でタイポグラフィを設定できます(8 種類のオプションはテーマに記載されています)。ただし、独立したカタログはありません。カードごとにフォントを読み込まない場合、8 種類すべてが見た目上同じであり、プレビュー用のツールを 1 つ用意するためのビルドコストに見合わなかったためです。
どのチャートを使えばよいですか?
| 質問 | 最適なチャート | 代わりに使えるチャート | |----------|-----------|------------| | 「全体の構成は?」 | 円グラフ/ワッフルチャート | ツリーマップ、積み上げ棒グラフ | | 「値を比較すると?」 | 棒グラフ | ロリポップチャート、ブレットチャート、レーダーチャート | | 「時間の経過に伴う傾向は?」 | 折れ線グラフ | スパークライン、スロープチャート | | 「目標を達成できている?」 | ブレットチャート | 差異チャート、ラジアルチャート | | 「差はどこにある?」 | ダンベルチャート | 差異チャート | | 「X と Y の関係は?」 | 散布図 | ヒートマップ | | 「コンバージョン率は?」 | ファネルチャート | ウォーターフォールチャート、サンキーチャート | | 「期間ごとに何が変わった?」 | スロープチャート | ダンベルチャート | | 「財務状況は?」 | ローソク足チャート | 折れ線グラフ | | 「KPI を表示して」 | ヒーローメトリック | ダッシュボード | | 「分布はどうなっている?」 | 箱ひげ図 | バイオリンプロット(同じツール) | | 「資金/トラフィックの流れは?」 | サンキーチャート | ツリーマップ | | 「各軸での選択肢の評価は?」 | レーダーチャート | ヒートマップ | | 「上位のキーワードは?」 | ワードクラウド | 棒グラフ、ツリーマップ | | 「ユーザー/売上/収益の場所は?」 | 地図グラフ | バブルマップ、ヒートマップ | | 「これをリアルタイムで監視して」 | ライブチャート | - |テーマ
組み込みテーマは 21 種類あります。任意のツールに theme を渡してください。
| ファミリー | テーマ |
|---|---|
| クラシック | boardroom、corporate、sales-floor、golden-treasury、clinical、startup、ops-control、tokyo-midnight、zen-garden、consultant |
| ブラック/AI | black-tron(シアンのネオン)、black-elegance(温かみのあるゴールド)、black-matrix(ハッカー風のグリーン) |
| フォレスト | forest-amber(秋)、forest-earth(テラコッタ) |
| スカイ | sky-light(開放感のあるブルー)、sky-ocean(深いネイビー)、sky-twilight(夕焼け) |
| オフィス | office-red(企業向けの赤、白い背景-レポートに最適) |
| グレー/ML | gray-hf(温かみのあるイエローのアクセント)、gray-copilot(暗色にティール) |
palette、typography(8 種類:system、mono、professional、editorial、bold、techno、cyberpunk、luxury)、effects(5 種類のプリセット:none、subtle、shimmer、neon、energetic)を自由に組み合わせられます。
ライブポーリング
任意の API から自動更新するリアルタイムチャートです。ライブチャートは poll_http を介してデータをポーリングし、次の 2 つのモードをサポートします。
セキュアなプリセット(認証が必要な API)
環境変数でプリセットを設定します。認証情報はサーバー側に保持され、会話には表示されません。
{
"mcpServers": {
"dashboard": {
"command": "npx",
"args": ["-y", "mcp-dashboards", "--stdio"],
"env": {
"POLL_PRESET_T212_CASH_URL": "https://live.trading212.com/api/v0/equity/account/cash",
"POLL_PRESET_T212_CASH_HEADERS": "{\"Authorization\": \"Bearer YOUR_API_KEY\"}"
}
}
}
}
次に、*「ポートフォリオの合計と損益をリアルタイムで監視して」*と依頼すると、AI は pollArgs: { preset: "t212_cash" } を指定して render_live_chart を使用します。
命名規則: POLL_PRESET_<NAME>_URL および POLL_PRESET_<NAME>_HEADERS(JSON オブジェクト)。
パブリック URL(認証不要)
パブリック API の場合は、URL を直接使用します。
*「30 秒ごとに更新されるビットコイン価格を表示して」*と依頼すると、pollArgs: { url: "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd" } が使用されます。
仕組み
MCP Apps を基盤にしています。AI にデータの可視化を依頼すると、適切なツールが呼び出され、チャートが会話内に表示されます。自己完結型で、CDN も外部リクエストも必要ありません。
MCP Apps に対応(インライン表示):Claude Desktop、VS Code Insiders + MCP Apps extension、Goose、Postman。
MCP Apps に対応していない場合も問題ありません。 すべてのチャートの応答には、ブラウザーで同じインタラクティブなチャートを開くクリック可能なリンクも含まれます。
http://localhost:PORT/chart/{id}- チャット内のクリック可能なリンクです。同一マシン上の 127.0.0.1 にバインドされた小規模な HTTP サーバーを使用し、最初のプレビューリクエスト時に遅延起動します。file:///.../chart-{id}.html- 永続的で共有可能なアーティファクトです。同じ HTML バイト列をディスクに書き込むため、メールで送信したり、アーカイブしたり、サーバー終了後に開いたりできます。
両方を用意している理由:Claude Code(VS Code)はチャットの Markdown から file://、vscode://、command:// の URL スキームを除去するため、クリック可能なリンクとして機能するのは http:// のみです。file:// のパスは共有とオフラインでの表示用に提供されます。ツールのアノテーション(readOnlyHint、idempotentHint、openWorldHint)は、クライアントがツールの動作を判断するのに役立ちます。
設定
すべて省略可能です。デフォルトは安全な値です。上書きする必要がある場合にのみ設定してください。
| 環境変数 | デフォルト | 機能 |
|---|---|---|
MCP_DASHBOARDS_RETAIN_DAYS | 7 | グラフのプレビュー HTML ファイルをディスクに保持する期間です。0 にすると自動クリーンアップが無効になります。 |
MCP_DASHBOARDS_DISABLE_PREVIEW | 未設定 | 緊急停止スイッチです。HTML ファイルは書き込まれず、プレビューサーバーも起動せず、プレビューリンクも表示されません。MCP Apps クライアントでのインライン描画は引き続き利用できます。 |
MCP_HTTP_BIND_HOST | 127.0.0.1 | HTTP トランスポートのバインド先ホストです。デフォルトではローカルホストのみで待ち受けます。ネットワークを信頼できる場合に限り、0.0.0.0 を設定してください。 |
MCP_CORS_ALLOWED_ORIGINS | ローカルホストのみ | ブラウザーから HTTP エンドポイントへの呼び出しを許可するオリジンを、カンマ区切りで指定します。ローカルホスト以外のオリジンを追加するには、これを設定します(例:https://your-app.com)。 |
MCP_URL_ALLOWLIST | 空 | SSRF ガードを迂回できるホスト名を、カンマ区切りで指定します(render_from_url / poll_http 用)。完全に信頼できる内部エンドポイントにのみ使用してください。 |
MCP_OUTBOUND_RATE_PER_SEC | 10 | 外部への HTTP 呼び出しに対する、ホストごとのスロットルです。 |
MCP_OUTBOUND_BURST | 20 | レート制限が適用される前に、最初に即時送信できるリクエスト数です。 |
POLL_PRESET_<NAME>_URL | - | ライブポーリング用のサーバー側プリセット URL です。ライブポーリングを参照してください。 |
POLL_PRESET_<NAME>_HEADERS | - | 対応するプリセット URL 用の認証ヘッダー(JSON オブジェクト)です。 |
ディスク上のファイル
グラフの HTML ファイルは <system temp>/mcp-dashboards/ に書き込まれ、7 日後に自動削除されます。ファイルを恒久的に保存するには、グラフに組み込まれているダウンロードボタン(PNG / PPT / A4)の使用をおすすめします。
いつでも AI に 「グラフファイルを一覧表示して」 または 「1 日より古いグラフファイルを削除して」 と依頼できます。list_chart_files / delete_chart_files が呼び出されます。
要件: Node.js 18 以降。
貢献
git clone https://github.com/KyuRish/mcp-dashboards.git
cd mcp-dashboards
npm install
npm run build
npm run serve # http://localhost:3001
npm run dev # watch mode
サポート
MCP Dashboards が役に立った場合:
Rishabh Dogra が開発しました。LinkedIn でつながりましょう。
プライバシー
すべての処理はローカルで行われます。データが収集、送信、または外部に保存されることはありません。
外部への呼び出しは、ユーザーが 明示的に依頼した場合にのみ行われます。render_from_url と poll_http では、ユーザーが指定した URL またはプリセットが必要です。どちらもプライベート、ループバック、リンクローカルのアドレス(192.168.* ネットワークや 169.254.169.254 の AWS メタデータなど)へのアクセスを拒否するため、プロンプトインジェクションを受けた AI が内部サービスにひそかにアクセスすることはできません。また、ホスト名ごとに呼び出しをスロットルするため、無限ループが発生しても実際の API から IP アドレスがブロックされることはありません。
環境変数のプリセットに含まれる認証情報がマシンの外に出ることはありません。ブラウザープレビューサーバーとオプションの HTTP トランスポートは、どちらもデフォルトで 127.0.0.1 にバインドされ、他のデバイスからアクセスできません。グラフの HTML ファイルはシステムの一時フォルダーに保存され、7 日後に自動削除されます。これらの設定を変更するには、設定を参照してください。
ライセンス
FSL-1.1-MIT - 競合する商用製品の構築を除き、あらゆる目的で自由に使用できます。各バージョンはリリースから 2 年後に MIT ライセンスに切り替わります。商用ライセンスについては、[email protected] までお問い合わせください。
サードパーティソフトウェア
同梱されている UI アーティファクト(dist/mcp-app.html)には、Chart.js、html2canvas-pro、Luxon、TopoJSON、Dagre の各プロジェクトのオープンソースライブラリが埋め込まれており、MIT または ISC ライセンスに基づいて配布されています。完全なクレジット表記とライセンス文は THIRD_PARTY_LICENSES.md に掲載されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。


