Skip to content

Publish with the Claude skill

gotifacts ships a distributable Claude skill (gotifacts) that covers the full site lifecycle: publish, unpublish, update metadata, rollback, restore, and purge. The golden path is the MCP connector — no env vars needed, Claude authenticates via OAuth. For Claude Code, CI, or any environment without a connector, it falls back to GOTIFACTS_URL + GOTIFACTS_API_KEY.

The skill lives in the repo at examples/skill/SKILL.md.

EnvironmentPath
claude.ai / Claude mobileMCP connector (OAuth — no env vars)
Claude Code / Claude APIMCP connector or API key + env vars
CI pipelinesAPI key + env vars
Terminal window
mkdir -p ~/.claude/skills/gotifacts
cp examples/skill/SKILL.md ~/.claude/skills/gotifacts/

Set the two variables before use when not using the MCP connector:

Terminal window
export GOTIFACTS_URL=https://example.com
export GOTIFACTS_API_KEY=gtf_# scoped key for the claude group

Mint that key as in create & scope API keys, e.g. --grant "claude:publish,unpublish,patch,rollback,purge".

Ask Claude to “publish this as a web page”, “take that down”, “update the description”, or “roll back to the previous version”. The skill will ask for consent, then call the appropriate MCP tool (or curl command). Operations:

Ask Claude to…Skill action
Publish / share a page or a multi-file sitepublish_site / POST
Unpublish / take downunpublish_site / DELETE
Update title or tagsupdate_site / PATCH
List a site’s revisionslist_revisions / GET revisions
Roll back to previous (or a chosen revision)rollback_site / POST rollback
Restore from quarantinerestore_site / POST restore
Permanently deletepurge_site / POST purge

Publishing works for both a single self-contained page and a multi-file site (an index.html plus separate CSS/JS/image assets): via MCP, pass html for a single page or a files array ({path, content, encoding}, with encoding utf8 or base64) for a multi-file site; via the API key path, use the index or bundle part as shown in publish from CI.

Re-publishing the same group/slug replaces the existing site. Unpublishing keeps files in quarantine for the server’s configured TTL (default 30 days) before permanent removal. restore_site brings the site back online within the grace period; purge_site destroys it immediately and is irreversible. rollback_site restores the most recent archived version, or a specific one when given a revision (an archive timestamp from the revisions list).