KyuRish/mcp-dashboards

πŸ“Š Data Visualization
0 Views
0 Installs

πŸ“‡ 🏠 🍎 πŸͺŸ 🐧 - 45+ interactive chart types (bar, line, pie, candlestick, sankey, geo, radar, funnel, treemap, and more), dashboards with KPI cards, drill-down navigation, live API polling, 20 themes, and export to PNG/PPT/A4. Built on MCP Apps.

Quick Install

One-Click IDE Configuration
claude_desktop_config.json
{
  "mcpServers": {
    "kyurish-mcp-dashboards": {
      "command": "npx",
      "args": [
        "-y",
        "kyurish-mcp-dashboards"
      ]
    }
  }
}
Or

Using an AI coding agent (Claude Code, Cursor, etc.)? Copy a ready-made prompt that tells it to fetch the setup instructions and install this server for you.

Documentation Overview

MCP Dashboards

Your AI can talk about data. Now it can show it.

npm Glama Quality Glama Security License: FSL-1.1-MIT Buy Me A Coffee GitHub Sponsors LinkedIn

MCP Dashboards demo
Infrastructure Command Center dashboardΒ  Chart Catalog - 32 chart toolsΒ  Theme Catalog - 21 themes
Click any thumbnail to see full size

The problem

We use AI for everything - analysis, reports, strategy. But when it comes to actually seeing the story in your data, you're stuck copying numbers into a spreadsheet and building charts yourself. The conversation has the insight. The visualization is somewhere else.

The solution

MCP Dashboards renders interactive charts, dashboards, and KPI widgets directly inside your AI conversation. 32 chart tools covering 45+ chart subtypes (bar has stacked/drilldown, hero has 11 variants, flowchart has 6 node kinds + 5 edge styles, etc.), 21 themes, 4 visual discovery catalogs, live polling, PNG/PPT/A4 export - all from a single MCP server. No browser tabs, no copy-paste, no context switching.

Quick Start

Claude Desktop

Add to your 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

Remote (Streamable HTTP)

npx mcp-dashboards
# Server starts on http://127.0.0.1:3001/mcp

Bound to localhost by default. See Configuration if you need to expose it on your network or allow browser access from a non-localhost origin.

Supported clients

Works in any MCP Apps-compatible client: Claude Desktop, Claude Web, VS Code (GitHub Copilot), Goose, Postman, MCPJam. ChatGPT support is rolling out.

Just ask

No API to learn. Describe what you want in plain English:

  • "Compare Q1 vs Q2 revenue by region as a bar chart"
  • "Show my portfolio allocation as a donut chart with the boardroom theme"
  • "Build a dashboard with monthly sales KPIs and a trend line"
  • "Visualize website traffic by country on a world map"
  • "Track Bitcoin price live, updating every 30 seconds"
  • "Show the conversion funnel from signup to purchase"
  • "Rank the team by performance using a radar chart"
  • "Diagram my multi-agent pipeline as a flowchart and let me step through it"

The AI picks the right tool, formats your data, and renders the chart inline. Click any data point to ask follow-up questions.

Don't know where to start? Ask "show me the catalog" - opens a master dashboard with one live visual tile per customization dimension (a real bar chart for charts, a pie for themes, a progress ring for hero variants, a neon-glowing card for effects). Click any tile, hit Ask, and you'll drill into that sub-catalog.

Interactive charts, not images

Every chart is interactive HTML rendered directly in your conversation:

  • Explore in-chat - hover tooltips, click-to-select (feeds back to the AI), drill-down with breadcrumbs, scroll-zoom up to 12x on maps and heatmaps
  • Editable flowcharts - drag nodes, multi-select, rename via right-click, minimap + node list to navigate, step-through playback of the flow, then sync your layout back to the AI to save it
  • Live polling - real-time charts that auto-update from any API on a timer
  • Export anywhere - PPT (16:9 slides), A4 (paginated with smart page breaks), PNG, CSV
All Tools
ToolTypeBest For
render_pie_chartPie/DonutComposition - "what makes up the whole?"
render_bar_chartBarComparison - vertical, horizontal, stacked, drill-down
render_line_chartLine/AreaTrends - smooth curves, gradient fills, time series
render_scatter_chartScatterRelationships - per-point labels, annotations, quadrants
render_candlestick_chartCandlestickFinance - OHLC data with volume bars
render_radar_chartRadarMulti-axis comparison - skills, scores, product attributes
render_treemap_chartTreemapHierarchy - nested rectangles sized by value
render_sankey_chartSankeyFlow - money, users, or resources between stages
render_wordcloud_chartWord CloudFrequency - sized words from text analysis
render_boxplot_chartBoxplot/ViolinDistribution - quartiles, outliers, density shapes
render_live_chartLiveReal-time - auto-polls any MCP tool on a timer
poll_httpData proxyFetch JSON from any HTTP endpoint - secure presets or public URLs
render_bullet_chartBulletKPI vs target - 2-8 zone bands with labels
render_lollipop_chartLollipopRanking - clean dots with optional target markers
render_dumbbell_chartDumbbellGaps - before/after with scale labels and zone bands
render_variance_chartVarianceBudget - actual vs budget, color-coded over/under
render_funnel_chartFunnelConversion - staged drop-off with percentages
render_slope_chartSlopeChange - ranking shifts between two periods
render_waffle_chartWaffleProportion - 10x10 grid showing composition
render_sparkline_chartSparklineCompact trends - mini cards with change indicators
render_radial_clusterRadialHealth check - multi-metric ring gauges with status
render_waterfall_chartWaterfallCumulative - cascading bars showing impact
render_heatmap_chartHeatmapIntensity - 2D grid with color mapping
render_geo_chartGeo/MapGeography - color-coded countries by value (choropleth)
render_bubble_mapBubble MapPin map - sized circles at lat/lng coordinates
render_timeline_chartTimelineProgress - milestone tracker with status indicators
render_flowchartFlowchartWorkflows, pipelines, architectures, agent flows - rich card-based DAG with status states, drag, zoom, live polling
render_hero_metricHeroKPI widgets - 11 variants (progress ring, gem, orb, NPS, etc.)
render_dashboardDashboardEverything - KPI cards + multiple charts in responsive grid
render_tableTableData - sortable columns, striped rows, CSV export
render_from_jsonAuto-detectAny JSON data - picks the best chart automatically
render_from_urlURL fetchFetches JSON from a URL and auto-visualizes

Discovery / Catalogs - visual entry points for browsing what's available:

ToolShowsWhen to use
render_catalogMaster catalog with 4 live preview tilesDon't know where to start. Click any tile, hit Ask, drill in.
render_chart_catalogAll 32 chart types with mini previewsLooking for the right chart for your data
render_theme_catalogAll 21 themes with color/typography/effectsPicking a theme
render_hero_catalogAll 11 hero metric variantsPicking a KPI widget style
render_effects_catalogAll 5 effect presets, each applied to a real cardPicking an animation/glow style

Typography is still configurable on every chart via typography=<name> (8 options listed under Themes) - it just doesn't have its own catalog because all 8 options were visually identical without per-card font loading, which wasn't worth the build for one preview tool.

Which chart should I use?
QuestionBest ChartAlso Works
"What makes up the whole?"Pie/WaffleTreemap, Stacked bar
"How do values compare?"BarLollipop, Bullet, Radar
"What's the trend over time?"LineSparkline, Slope
"Are we hitting targets?"BulletVariance, Radial
"Where's the gap?"DumbbellVariance
"How does X relate to Y?"ScatterHeatmap
"What's the conversion rate?"FunnelWaterfall, Sankey
"What changed between periods?"SlopeDumbbell
"What's the financial picture?"CandlestickLine
"Show me the KPI"Hero metricDashboard
"What's the distribution?"BoxplotViolin (same tool)
"Where does money/traffic flow?"SankeyTreemap
"How do options score across axes?"RadarHeatmap
"What are the top keywords?"Word CloudBar, Treemap
"Where are users/sales/revenue?"Geo mapBubble map, Heatmap
"Monitor this in real-time"Live chart-

Themes

21 built-in themes. Pass theme to any tool.

FamilyThemes
Classicboardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant
Black/AIblack-tron (cyan neon), black-elegance (warm gold), black-matrix (green hacker)
Forestforest-amber (autumn), forest-earth (terracotta)
Skysky-light (airy blue), sky-ocean (deep navy), sky-twilight (sunset)
Officeoffice-red (corporate red, white bg - report-ready)
Gray/MLgray-hf (warm yellow accent), gray-copilot (teal on dark)

Mix-and-match with palette, typography (8 options: system, mono, professional, editorial, bold, techno, cyberpunk, luxury), and effects (5 presets: none, subtle, shimmer, neon, energetic).

Live Polling

Real-time charts that auto-update from any API. The live chart polls data via poll_http, which supports two modes:

Secure presets (authenticated APIs)

Configure presets via env vars. Credentials stay server-side and never appear in the conversation.

{
  "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\"}"
      }
    }
  }
}

Then ask: "Monitor my portfolio total and P/L live" - the AI uses render_live_chart with pollArgs: { preset: "t212_cash" }.

Naming: POLL_PRESET_<NAME>_URL and POLL_PRESET_<NAME>_HEADERS (JSON object).

Public URLs (no auth needed)

For public APIs, use the URL directly:

"Show me Bitcoin price updating every 30 seconds" - uses pollArgs: { url: "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd" }.

How It Works

Built on MCP Apps. You ask the AI to visualize data, it calls the right tool, and the chart renders inline in your conversation. Self-contained - zero CDN, zero external requests.

MCP Apps supported (inline rendering): Claude Desktop, VS Code Insiders + MCP Apps extension, Goose, Postman.

No MCP Apps support? No problem. Every chart response also includes a clickable link to the same interactive chart in your browser:

  • http://localhost:PORT/chart/{id} - the clickable link in chat. Backed by a tiny same-machine HTTP server bound to 127.0.0.1, lazy-started on the first preview request.
  • file:///.../chart-{id}.html - the persistent shareable artifact. Same HTML bytes, written to disk so you can email, archive, or open it after the server has shut down.

Why both: Claude Code (VS Code) strips file://, vscode://, and command:// URL schemes from chat markdown, so only http:// produces a working clickable link. The file:// path is provided for sharing and offline viewing. Tool annotations (readOnlyHint, idempotentHint, openWorldHint) help clients reason about tool behavior.

Configuration

All optional. Defaults are safe - set these only if you need to override.

Env varDefaultWhat it does
MCP_DASHBOARDS_RETAIN_DAYS7How long to keep chart preview HTML files on disk. 0 disables auto-cleanup.
MCP_DASHBOARDS_DISABLE_PREVIEWunsetKill switch - no HTML files written, no preview server started, no preview links. Inline rendering still works in MCP Apps clients.
MCP_HTTP_BIND_HOST127.0.0.1HTTP-transport bind host. Stays on localhost by default. Set to 0.0.0.0 only if you trust your network.
MCP_CORS_ALLOWED_ORIGINSlocalhost onlyComma-separated origins allowed to call the HTTP endpoint from a browser. Set this to add a non-localhost origin (e.g. https://your-app.com).
MCP_URL_ALLOWLISTemptyComma-separated hostnames that bypass the SSRF guard for render_from_url / poll_http. Use only for internal endpoints you fully trust.
MCP_OUTBOUND_RATE_PER_SEC10Per-host throttle for outbound HTTP calls.
MCP_OUTBOUND_BURST20How many initial requests can fire immediately before the rate kicks in.
POLL_PRESET_<NAME>_URL-Server-side preset URL for live polling. See Live Polling.
POLL_PRESET_<NAME>_HEADERS-Auth headers (JSON object) for the matching preset URL.

What's on disk

Chart HTML files are written to <system temp>/mcp-dashboards/ and auto-deleted after 7 days. The chart's built-in download button (PNG / PPT / A4) is the recommended way to save anything permanently.

Ask your AI to "list chart files" or "delete chart files older than 1 day" anytime - invokes list_chart_files / delete_chart_files.

Requirements: Node.js 18+.

Contributing
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

Support

If MCP Dashboards is useful to you:

Buy Me A Coffee GitHub Sponsors

Built by Rishabh Dogra - connect on LinkedIn.

Privacy

All processing happens locally. No data is collected, transmitted, or stored externally.

External calls only happen when you explicitly ask - render_from_url and poll_http need a URL or preset you provide. Both refuse to fetch private, loopback, or link-local addresses (your 192.168.* network, AWS metadata at 169.254.169.254, etc.) so a prompt-injected AI can't quietly reach internal services. They also throttle per hostname so a runaway loop won't get your IP banned from a real API.

Credentials in env var presets never leave your machine. The browser preview server and the optional HTTP transport both bind to 127.0.0.1 by default and are not reachable from other devices. Chart HTML files live in your system temp folder and auto-delete after 7 days. See Configuration to change any of this.

License

FSL-1.1-MIT - Free to use for any purpose except building a competing commercial product. Each version converts to MIT two years after release. For commercial licensing, contact contact@kyuish.com.

Third-party software

The bundled UI artifact (dist/mcp-app.html) embeds open-source libraries from the Chart.js, html2canvas-pro, Luxon, TopoJSON, and Dagre projects, distributed under MIT or ISC licenses. Full attribution and license texts are reproduced in THIRD_PARTY_LICENSES.md.

Related MCP Servers

marzukia/charted

🐍 🏠 🍎 πŸͺŸ 🐧 - Zero-dependency chart server that renders bar, line, pie, scatter, and more from JSON or CSV to SVG, HTML, PNG, or data URL. Built-in themes; PNG output renders inline in chat. Install via uvx --from charted[mcp] charted-mcp.

πŸ“Š Data Visualization0 views
MS-Teja/Glyphic

πŸ“‡ 🏠 - Generate diagrams from structured JSON across 18 types (architecture, ERD, sequence, flowchart, Gantt…) β€” native SVG/PNG, no headless browser. Built for LLMs and agents.

πŸ“Š Data Visualization0 views
nteract/semiotic

πŸ“‡ 🏠 🍎 πŸͺŸ 🐧 - React data visualization MCP server with 30+ chart types. 5 tools: suggest charts for a dataset, render validated React configs to SVG, diagnose configuration anti-patterns, get component schemas, and report issues.

πŸ“Š Data Visualization0 views
pushtodisplay/cli

πŸ“‡ 🏠 🍎 πŸͺŸ 🐧 - Push To Display MCP server send structured content to selected boards on iOS and android devices with app Push To Display, route updates to specific panels, and render in real time with display-focused multi-panel layouts.

πŸ“Š Data Visualization0 views

Engagement

Views
0
Installs
0
Upvotes
0

Views and upvotes are unique per visitor network (hashed IP). Installs count copy actions.

Status

Health: Not checked yet

We have not completed a health check for this listing yet.

No check timestamp yet.

Unclaimed listing (imported or pending owner verification). Claim it β†’
β˜… Spotlight Slot

Feature Your MCP Server

Get maximum visibility for your server across our directory, search results, and detail pages.

Spotlight Your Server

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to get the verified badge and attach your website.

Claim this listing

Promote this listing

Optional paid placement. Free listings stay free forever.

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.