Published Artifact pages can now declare runtime capabilities — starting with mcp, which lets the page call the user's connected claude.ai data sources at runtime rather than embedding static data from the conversation.
Artifact tool: { capabilities: { mcp: { servers: [...] } } }- Artifacts accept a new
capabilitiesinput that declares which runtime abilities the published page requires. - The first supported capability is
mcp, enabling the page to call the user's claude.ai connectors (Slack, Google Drive, etc.) viawindow.claude.mcpat open time. - Omitting
capabilitieson a republish carries the stored declaration forward; passing{}explicitly clears all capabilities. - A new skill,
artifact-capabilities, must be loaded before declaring any capability or writingwindow.claude.*runtime code — it carries the current contract's typed call definitions and per-capability guidance. - Type definitions (
.d.tsfiles) for the runtime contract are extracted to a local cache directory and are authoritative over any memorized API shape. - Connector tools appear in the tool list as
mcp__<connector>__<toolName>; theservervalue in the capabilities declaration is the<connector>segment. - Only claude.ai connectors are valid — locally-configured MCP servers cannot be declared as Artifact capabilities.
- The dataviz/artifact skill prompt gains a new "## Live data via connected sources" section when this feature is enabled, explaining the workflow.
- The Artifact tool description itself now mentions the
capabilitiesinput and the requirement to load theartifact-capabilitiesskill.
[Gradual Rollout] — controlled by CLAUDE_CODE_ARTIFACT_MCP env var or tengu_cloth_snorkel feature flag.
New skill registered as registerArtifactCapabilitiesSkill (search for "Runtime capabilities for published Artifacts"); capabilities schema added (search for "Runtime capabilities this page declares, as {name: config}"); gated by n4y() which checks CLAUDE_CODE_ARTIFACT_MCP ?? Qe("tengu_cloth_snorkel", !1)
Strings lifted out of the shipped bundle, so the claim above can be checked against them.
tengu_cloth_snorkel Off by default, switched on for this accountThe shipped code defaults this off, and the flag server returned on for the one account this site reads on this version. That is the reading that makes the entry above worth a second look, and it still says nothing about your account.
This account: on · anonymous baseline: on · compiled default in v2.1.209: off
These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.
Read once, for one account on one subscription tier, against v2.1.209. It isn't a statement about your account. What a flag value here can and cannot tell you
A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.
A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.
New in this build: tengu_cloth_snorkel