A Claude plugin (slug industry-rockstar-brain) that bundles your IR MCP server with
skills + commands so your Rockstar / IR agents render as live UI in Claude:
inline widgets for the conversation, a per-user command center, one-click live
artifacts, and thumbs feedback — instead of plain chat text.
ir-plugin/
├── .claude-plugin/
│ ├── plugin.json # plugin manifest
│ └── marketplace.json # marketplace listing (for publishing)
├── .mcp.json # ir-mcp server (remote HTTP)
├── commands/
│ ├── rockstar.md # /rockstar — entry point to any orchestrator
│ └── agents-home.md # /agents-home — the command center
├── skills/
│ ├── render-live-artifact/
│ │ ├── SKILL.md # picks inline widgets vs. live artifact
│ │ ├── references/
│ │ │ └── inline-widgets.md # the inline-widget contract + emit budget
│ │ └── templates/
│ │ ├── inline-ask.html # interview form
│ │ ├── inline-choice.html # pick-one list
│ │ ├── inline-result.html # deliverable card
│ │ └── live-artifact.html # durable re-fetching page
│ └── rockstar-agents-home/
│ └── templates/
│ └── agents-home.html # the command center artifact
├── CHANGELOG.md
└── README.md
The skill is what makes the behavior automatic; the plugin packages the
skill + server together so it installs in one step. The plugin adds no new
capability beyond Cowork’s existing create_artifact — it just makes the setup
repeatable and shippable.
ir-mcp at https://connect.mygentic.io/mcp (.mcp.json).ir-mcp server, so new
orchestrators you expose later are covered automatically — no per-tool edits.Repo: https://github.com/industryrockstar/ir-plugin. Nothing left to fill
in. (In the artifact template, TOOL is a placeholder Claude substitutes with the
actual orchestrator name at artifact-creation time — you don’t hardcode it.)
If your server uses SSE rather than streamable HTTP, change "type": "http" to
"type": "sse" in .mcp.json. (HTTP is recommended where supported.)
marketplace.json lists itself).claude plugin validate . (from the plugin root)/plugin marketplace add industryrockstar/ir-plugin
/plugin install industry-rockstar-brain@hotei-marketplace
/reload-plugins
After install, the MCP server connects and the skill activates automatically —
when any ir-mcp orchestrator produces output, Claude renders it as a live artifact.
Everything in templates/ is emitted token by token by the model when it calls
show_widget or create_artifact, so template size is render time — the browser is
never the bottleneck. Measured on a 37-option client picker: ~10k tokens took ~2m15s,
the same picker rebuilt around a data array took ~1.3k tokens and ~30s, against a 15s
no-widget baseline.
So, when editing anything under templates/:
OPTS, QS, ACTS); never hand-write them.<symbol> per icon, referenced with <use>.prefers-color-scheme and [data-theme=dark].agents-home.html is the outlier at ~180KB
(~45k tokens) and commands/agents-home.md says to copy it verbatim — see the
open proposal to serve its CSS/JS from cdn.jsdelivr.net/gh/..., which is on the
artifact CSP allowlist and would cut the emitted shell to ~1.5k tokens.Live artifacts re-run your tool every time the page is opened. If your tool regenerates LLM output on each call, the page will produce different results on each reload. The skill handles this: if the output isn’t meaningfully refreshable, it falls back to a one-time static artifact. Decide which fits your tool.
Every runtime template ships with a small host adapter at the top (look for
HOST ADAPTER). It lets the same artifact run across hosts instead of hard-binding
to Cowork’s window.cowork global — and, just as important, it degrades to a
clear message instead of throwing on an undefined global when opened with no host.
Resolution order for every callMcpTool / askClaude the templates make:
window.cowork.callMcpTool / askClaude (untouched when present).window.openai.callTool, and sendFollowUpMessage for “launch a skill”.window.{craftAgent|codex|mcpHost|host}.callMcpTool / callTool / tools.call.initialize → notifications/initialized → tools/call, SSE-aware).The HTTP fallback is opt-in and reads config from globals or <meta> tags an
embedder can inject before the artifact loads:
| Config | <meta> equivalent |
Purpose |
|---|---|---|
window.__MCP_ENDPOINT |
<meta name="mcp-endpoint"> |
MCP Streamable-HTTP URL |
window.__MCP_TOKEN |
<meta name="mcp-token"> |
Bearer token for that URL |
window.__LOA_NEW_CHAT_URL |
— | “launch a skill” URL base (default claude://cowork/new?q=) |
Notes:
ir-mcp) require
a bearer token — supply one via __MCP_TOKEN or rely on a host bridge instead.askClaude/host LLM is available.