Artifact Publisher
com.artifactpublisher/mcpVersion 0.1.0Agents publish self-contained HTML to a stable review link, with page-level feedback and revoke.
Status
Responds440 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 13:47 UTC
- Latency
- 440 ms
- Remotes responding
- 1 of 1
- Sign-in
- API key
- Hosting
- Hosted outside the EU (detected)
- Registry data as of
- Nov 14, 2026, 22:14 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://app.artifactpublisher.com/mcpResponds440 msNo sign-in
Claude Code
claude mcp add --transport http artifactpublisher https://app.artifactpublisher.com/mcp --header 'Authorization: Bearer <YOUR_TOKEN>'Replace <YOUR_TOKEN> before running.
Claude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: artifactpublisher
Remote MCP server URL: https://app.artifactpublisher.com/mcp
This server expects the header Authorization.Cursor
{
"mcpServers": {
"artifactpublisher": {
"url": "https://app.artifactpublisher.com/mcp",
"headers": {
"Authorization": "Bearer <YOUR_TOKEN>"
}
}
}
}Replace <YOUR_TOKEN> before running.
VS Code
code --add-mcp '{"name":"artifactpublisher","type":"http","url":"https://app.artifactpublisher.com/mcp","headers":{"Authorization":"Bearer <YOUR_TOKEN>"}}'Replace <YOUR_TOKEN> before running.
Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
12 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
configure_workspaceRead or update workspace defaults (comments_enabled, default_expiry_seconds, default_artifact_title); pass empty settings to read. Platform guardrails are refused with an error: max_artifact_bytes, storage_bytes_limit, monthly_versions_limit, rate_limits, comment_rate_limit, publish_rate_limit, isolation, origins, artifact_origin, control_origin, storage_key_prefix, object_key_prefix, security_headers, content_security_policy. Not available in every workspace. | Yes | No | Not declared | No |
get_artifact_stateRead an artifact's state. Shared JSON key/value state, synced to viewers across versions (page JS: ArtifactRelayState). Last write wins per key. Limits: 200 keys, 16 KiB per value, 64 KiB total. artifact_id: id, slug or viewer URL. | No | Yes | Not declared | No |
get_authoring_guideRead before writing HTML: themes, ap-* layout classes, an example page, the snippet, size and sandbox rules. Optional theme (firn, firn@1) is validated and returned as selected. | No | Yes | Not declared | No |
get_feedbackRead reviewer comments, oldest first. Filters: unresolved_only, since; version (default current) for anchor_status. Page with limit and cursor. Returns comments, unresolved_count, next_cursor. artifact_id: id, slug or viewer URL. | No | Yes | Not declared | No |
list_artifactsList artifacts in this key's workspace, newest first, with unresolved comment counts. Pass `next_cursor` back as `cursor` to page. | No | Yes | Not declared | No |
publish_artifactPublish self-contained HTML as version 1; return a share link. Optional Idempotency-Key HTTP header. Limit 10 MiB UTF-8; larger on some paid plans. No network in sandbox; inline assets. Never publish secrets. For styling, add <meta name="ap-theme" content="firn"> to <head>; call get_authoring_guide for themes and layout classes. | No | No | Not declared | Yes |
reply_to_feedbackReply once to a comment (a second reply fails with conflict); resolve: true also marks it resolved. Anyone who can open the artifact can read the reply. Refused on revoked or expired artifacts. Returns the comment. | No | No | Yes | Yes |
reset_artifact_stateClear all state, including board values; HTML is unchanged. Shared JSON key/value state, synced to viewers across versions (page JS: ArtifactRelayState). Last write wins per key. Limits: 200 keys, 16 KiB per value, 64 KiB total. artifact_id: id, slug or viewer URL. | Yes | No | Not declared | Yes |
revoke_artifactStop serving this artifact (410 Gone). Cannot undo; viewed copies exist. artifact_id: id, slug or viewer URL. | Yes | No | Yes | No |
set_artifact_accessChange an artifact's access mode without a new version. For accountless coworkers use public, not allowlist. artifact_id: id, slug or viewer URL. | Yes | No | Not declared | Yes |
set_artifact_stateSet keys atomically; other keys stay. Null is stored, not deleted. Shared JSON key/value state, synced to viewers across versions (page JS: ArtifactRelayState). Last write wins per key. Limits: 200 keys, 16 KiB per value, 64 KiB total. Page JS: ArtifactRelayState.subscribe/set/patch; whole-value writes only. artifact_id: id, slug or viewer URL. | Yes | No | Not declared | Yes |
update_artifactAppend a new immutable version. `expected_version` must match current; share link moves; earlier versions stay at pinned URLs. Optional `title` renames; with no `html` only the title changes. For styling, add <meta name="ap-theme" content="firn"> to <head>; call get_authoring_guide for themes and layout classes. artifact_id: id, slug or viewer URL. | Yes | No | Not declared | Yes |
Details
- Registry status
- Active
- Published
- Oct 19, 2026
- Updated
- Oct 19, 2026
- Repository
- Not given
- Categories
- Uncategorized
- GDPR
- Not declared