Skip to main content
AnomalyArmor’s hosted MCP server (mcp.anomalyarmor.ai/mcp) attaches an inline HTML view to five flagship tools - check_freshness, get_freshness_summary, list_schema_changes, get_lineage, and health_summary. Hosts that implement the draft MCP Apps spec render the view directly in the chat; hosts without MCP Apps support keep seeing the existing JSON response. Nothing breaks either way. The images below are illustrative static snapshots of what the live renders look like. The actual tool response is interactive and generated by the MCP server at render time.

Supported hosts

HostStatusNotes
Claude Desktop nightlyFullRequires Developer Mode → MCP Apps feature flag
Cursor experimentalBest-effortBehind an experimental feature flag; rendering fidelity varies
Everything else (Claude Code CLI, Cursor stable, web agents, custom clients)Falls back to JSONThe tools still work; you see the raw JSON payload
No configuration is required on the AnomalyArmor side - if your host supports MCP Apps, the inline UI appears automatically the next time you call one of the five flagship tools.

Freshness timeline

Tool: check_freshness / get_freshness_summary. Returns per-table or aggregate freshness with status-colored bars and stat cards.
Freshness timeline render

Schema diff table

Tool: list_schema_changes. Color-codes each row by change type (green = added, red = dropped, yellow = type-changed) with a severity pill and detection timestamp.
Schema diff render

Lineage graph

Tool: get_lineage. Three-column layout of upstream sources, the queried asset, and downstream consumers. Edge count is surfaced in the caption.
Lineage graph render

Health dashboard

Tool: health_summary. Stat-card grid with freshness %, active alert count, and unacknowledged schema drift, followed by a “Needs attention” list.
Health dashboard render

Security and privacy

  • The embedded HTML runs in the host’s resource sandbox with a strict Content Security Policy: default-src 'none', no connect-src (so the template cannot make network calls), and no inline secrets.
  • All data is pre-filtered by the MCP server before it’s injected into the template - Bearer tokens, aa_live_* API keys, and email addresses cannot reach the render layer. A CI conformance sweep guards against regressions.
  • Vega-Lite is pinned to 5.17.0 and loaded from cdn.jsdelivr.net. If the CDN is unreachable at render time, hosts show the JSON payload alongside a <noscript> fallback.

How it works

Each flagship tool returns a two-element MCP content-block list:
  1. A TextContent with the exact JSON payload every host saw before MCP Apps landed - this is the byte-identical fallback for hosts that ignore EmbeddedResource.
  2. An EmbeddedResource pointing to a ui://armor/<template>/<sha256(payload)[:12]> URI whose text is a self-contained HTML document. Hosts that support MCP Apps render this resource inline; hosts that don’t, skip it.
The URI is stable per (template, payload) pair, so repeated identical calls from the same conversation are deduped by the host’s resource cache.

Next steps

Common Questions

Which AnomalyArmor MCP tools render inline chart views?

Five today: check_freshness, get_freshness_summary, list_schema_changes, get_lineage, and health_summary. Hosts that speak the MCP Apps spec render these inline; other hosts receive the standard JSON response automatically, so nothing breaks.

Which MCP hosts support the inline UI today?

Claude Desktop has full support. Cursor has it behind an experimental flag. Claude Code CLI renders the JSON fallback today - inline UI arrives when Claude Code ships its MCP Apps integration. Adding the tools now is safe either way.

What happens if my host doesn’t support MCP Apps?

The tool returns the same structured JSON it always has. Agents read it normally; you just don’t get the inline chart preview. No error, no fallback configuration needed.

Can I embed these interactive views outside of an MCP host?

Not directly - the views are part of the MCP tool response protocol. For standalone embedding (dashboards, wikis), use report badges for static status or the REST API to fetch raw data for your own rendering.

MCP server overview

Connection methods, auth, and the full tool catalog

Claude Code

Claude Code CLI setup (uses JSON fallback today)

Cursor

Cursor IDE setup - experimental MCP Apps flag

Web agent

The same tools in the AnomalyArmor web UI