Claude Code IS the daily workflow. /publish = muscle memory. MCP makes NowPage programmable.
Wraps hc-publish.js with smart defaults. Auto-detects domain and slug from file metadata. Runs compile-jsx.js for JSX sources. Shows live URL after publish. Muscle memory for daily workflow.
# Usage in Claude Code
/publish rich-meekins-v3.html
# Auto-detects:
# - Domain from hc-metadata or defaults to ideas.asapai.net
# - Slug from filename or hc-metadata
# - Compiles JSX if needed
# - Opens URL after publish
list_pages(domain, folder, tag), delete_page(page_id or slug+domain), move_page(page_id, target_domain_id). All scoped by API key permissions.
create_domain(subdomain, root_domain), delete_domain(domain_id), repair_domains(). Create includes Vercel provisioning. Delete warns about page count.
vault_list() and vault_get(key). Scoped by API key's user. Write access through UI only for security.
get_analytics(domain, date_range). Returns page views, leads captured, top pages.
API key carries full user context. Vault access scoped to API key owner's secrets. Domain operations scoped to API key's domain_ids.
| File | Role |
|---|---|
| mcp-nowpage/server.py | MCP server — add new tools |
| lib/auth/api-key.ts | API key validation + user context |
| scripts/hc-publish.js | Publish script wrapped by /publish skill |
| compile-jsx.js | JSX compiler called by /publish |