Claude Code: Build Live Dashboards With MCP Artifacts
Claude Code artifacts pull live MCP data on every view — a dashboard you build once shows current data forever. Here's how to set one up in five minutes.
Evgenii Arsentev · PhDReviewed for accuracy by Evgenii Arsentev, PhD · 2026-07-29
Claude Code artifacts just got a serious upgrade. A published artifact — that self-contained HTML page Claude builds and hosts for you — can now call your MCP connectors every time someone opens it. Which means the GitHub PR dashboard you built last Monday still shows your current open pull requests today, not Monday's list. That's a live dashboard, and you didn't write a single line of server code to get it.
This feature arrived with Claude Code v2.1.209 and I'd been waiting for it since artifacts launched. The original version was powerful but baked-in data only — whatever Claude pulled during the session. Now the page can reach out and fetch fresh data on every load.
What does "live data in artifacts" actually mean?
Artifacts have always been snapshots: Claude pulls your GitHub data, builds an HTML page around it, and publishes it. The page is accurate for the moment it was built. Tomorrow the data is stale. With MCP connectors, Claude wires up the page to call your connectors every time it loads — the same tools Claude uses during a session, but now they run when a viewer opens the page. The viewer sees today's data every time, not last week's session output.
What do you need to get started?
Three things: Claude Code v2.1.209 or later (check with claude --version), a paid plan (Pro, Max, Team, or Enterprise), and at least one MCP connector configured on claude.ai under Settings → Connectors. The connector that matters most for your dashboard must be connected to your claude.ai account — not just to your local Claude Code. The local-only MCP servers in your .mcp.json can supply data while Claude builds the page, but the published page can't call them once it's live.
Only connectors from your claude.ai account qualify — those are the ones under Settings → Connectors on claude.ai. A server configured only in your local .mcp.json file can feed data while Claude builds the artifact during your session, but the published page won't be able to refresh it after publishing.
How to build your first live dashboard
Name the connector and the data you want. That's the whole prompt pattern. Claude handles everything else: declaring which connectors the page may call, writing the fetch logic, and publishing. Try this exact prompt if you have a GitHub connector:
Build a dashboard artifact of our open pull requests that pulls the live list through my GitHub connector when the page loads.
Replace 'my GitHub connector' with whatever your connector is named in claude.ai settings. For Jira: 'pulls the live sprint board through my Jira connector'. The name in the prompt must match what appears under Settings → Connectors exactly.
What happens after you send the prompt
- 1Claude builds the HTML page and declares which connectors it can call — the page can't reach connectors outside that declaration, so it's scoped to only what you asked for.
- 2Claude publishes and your browser opens to the page. Live sections may show a loading state on the first open.
- 3When any viewer opens the page (including you), claude.ai asks for permission before the first connector call. One approval per browser session.
- 4Data loads. The page can also refresh on a timer or when a viewer clicks a refresh control Claude adds to the page.
How does live data work for your viewers?
Here's the part that surprised me: live calls use the viewer's own connectors, not yours. When your teammate opens the PR dashboard you shared, the connector call goes through their GitHub connection — they see what their account can see. This is intentional: their credentials never leave their account, and you never see data they can't access. It also means two people can open the same dashboard and see different things based on their permissions.
Each viewer approves connector access before the page's first call. A viewer who hasn't connected a required service still sees the page — just without the live sections. If you know your audience, include a fallback when prompting Claude, like 'show a note naming the connector if data doesn't load'. That way viewers know exactly what to connect instead of seeing an empty panel.
A live data artifact can't be published to a public link on any plan. On Team and Enterprise you can share it within your organization; on Pro and Max it stays private to you. If you need a public link, build the artifact without connectors — Claude will bake in whatever data it pulled during the session — and share that snapshot.
What can you build with live artifacts?
Anything where 'current data' matters more than 'interactivity'. The page can fetch on load, refresh on a timer, or respond to a refresh button. Actions that write data also work — a button that closes a GitHub issue or posts a Slack message runs through the viewer's own account. Some patterns worth trying:
Live artifact ideas by connector type
- 1GitHub: open PRs by reviewer, branches behind main, recent CI failures — auto-refreshes each time your team opens it for the morning standup.
- 2Linear or Jira: current sprint board as status cards, auto-refresh every five minutes, no Jira tab needed during standups.
- 3Slack: last 10 messages from an alert channel, rendered as a readable feed instead of asking everyone to monitor a channel.
- 4Any database connector: a simple metrics card for numbers your team checks daily — the hard part was always getting live data in, and now that's just a prompt.
The constraint is still one HTML page with no real backend — it can't store form input and can't serve multiple routes. But that's enough for the dashboards most teams actually need: the morning standup view, the deployment tracker, the sprint summary. The hard part used to be the backend. Now it's just the prompt.
Free course
Stop reading about AI — start building with it
The free Claude Code course: your first site, tool or game — no coding. No upsells, no cross-sells — nothing to buy here.
Start free →
Author
Evgenii Arsentev
PhD · AI transformation executive
Reading is the blue pill
Want to actually build this?
Guides explain. The free course transforms — personalized, gamified, and built to get you shipping fast.
Start the free course →