MCP server
public-it exposes an MCP (Model Context Protocol) server so AIs can create sites and publish artifacts directly, inside the conversation. Streamable HTTP transport with OAuth 2.1 or API-key authentication.
Connection
| Endpoint | https://public-it.com/mcp |
| Transport | Streamable HTTP (spec 2025-03-26+) |
| Auth | Header Authorization: Bearer pit_… — create the key at Dashboard → API & MCP — or OAuth 2.1 (ChatGPT/Claude.ai: automatic, no key) |
Setup per tool
Claude Code / Cowork plugindocs ↗
The public-it plugin bundles the remote MCP connector and guided setup/publishing skills. After it is approved in the community directory, install it from Claude Code or Cowork and run /public-it:setup. OAuth opens in the browser; never paste an API key into chat.
Claude Desktop / claude.ai (custom connector)docs ↗
ChatGPT plugin / Developer Modedocs ↗
After directory approval, find public-it under Plugins. For development, use Settings → Connectors → Advanced → Developer mode → Create and paste the endpoint URL above. No key is needed: ChatGPT self-registers and signs in via OAuth 2.1; you approve it once on a consent screen. Manage or revoke the connection later in Dashboard → API & MCP → Connected apps. Claude.ai's custom connector also works with just the URL (OAuth) if you skip the header.
Cursor / VS Code (mcp.json)docs ↗docs ↗
Gemini CLIdocs ↗
~/.gemini/settings.json
Windsurfdocs ↗
~/.codeium/windsurf/mcp_config.json
Cline (VS Code)docs ↗
cline_mcp_settings.json
JetBrains AI Assistantdocs ↗
Settings → Tools → AI Assistant → MCP → Add
Zeddocs ↗
settings.json (bridge via mcp-remote)
OpenCodedocs ↗
opencode.json
Kirodocs ↗
.kiro/settings/mcp.json
Traedocs ↗
.trae/mcp.json
Replit (Agent)docs ↗
Settings → MCP Servers (UI)
ZCode (Z.ai)docs ↗
MCP Servers page (UI) — or import your Claude Code config
GitHub Copilot (coding agent)docs ↗
Repo → Settings → Copilot → Coding agent → MCP
Tools like Lovable, Base44, Bolt and Bubble are app builders that expose their ownMCP servers (you connect Claude/Cursor to them) — they can't consume external MCP servers like public-it yet.
OAuth and revocation
Browser-based clients use Authorization Code + PKCE and refresh tokens. Authorization lets the app view, create, publish, roll back and delete your sites. Revoke a client at any time under Dashboard → API & MCP → Connected apps; access stops immediately.
Available tools
| Tool | Description | Parameters |
|---|---|---|
list_sites | List all sites of the authenticated user, with public URLs and status. | — |
create_site | Create a new site. The subdomain becomes the public address. Use publish_html afterwards. | name · Human-friendly site namesubdomain · 3-63 chars, lowercase letters, numbers and hyphensuseWorkspaceSubdomain? · Optional opt-in to use the suggested site-workspace address; false by default |
publish_files | Publish a multi-page site: several files (HTML/CSS/JS/SVG) with folders, up to ~5MB per call. Text by default, base64 per file for small binaries. | files · Up to 200 of { path, content, base64? } — e.g. path 'blog/post.html'siteId? · Site id (or use subdomain)subdomain? · Alternative to siteIdentryFile? · File served at '/' (default index.html) |
publish_html | Publish a complete HTML document as the new live version of a site. Returns the public URL. Prefer self-contained HTML (inline CSS/JS). | html · Complete HTML documentsiteId? · Site id (or use subdomain)subdomain? · Alternative to siteId |
get_site | Get details of one site (status, live version, URL, storage). | siteId · Site id |
list_versions | List the publication history of a site (for rollback). | siteId · Site id |
rollback_site | Restore an archived version of a site (paid plans). | siteId · Site idpublicationId · Archived version id |
delete_site | Permanently delete a site and its files. Confirm with the user first. | siteId · Site id |
get_usage | Get the user's plan, site count and storage usage. | — |
Typical flow
A common conversation between a user and an AI connected to public-it:
Every publish_html puts a new version live — the history is available for rollback on paid plans (list_versions + rollback_site).
Errors
Without the authorization header the server responds 401. Business errors (quota exceeded, subdomain taken) come back as tool results with isError: true and a message explaining what to do: