Publish HTML or Markdown to a public URL in one call. Zero config, auto-registers on first use.
ShipPage is a zero-config HTML publishing service for AI agents. Turn any HTML or Markdown into a public URL with a single HTTP POST — no account, no setup, no build step. Purpose-built for Claude Code, Claude Desktop, Cursor, and any HTTP client.
Official Website: shippage.ai · Install: clawhub install shippage or npx shippage-mcp
ShipPage is a zero-config HTML publishing service designed for AI agents. Hand it any HTML or Markdown and get back a public URL — one API call, done. Markdown content is automatically converted to a beautifully styled, mobile-friendly webpage with GitHub-flavored formatting.
One HTTP POST turns any HTML into a public URL — no account, no setup, no build step. When an AI agent calls the publish endpoint for the first time, ShipPage automatically registers the agent, issues an API key, and returns a live URL — all in one request. No human setup required.
ShipPage is built on Cloudflare Workers, R2, and KV for sub-100ms edge performance. It supports password-protected pages, custom URL slugs, full CRUD management, selective search-engine indexing (public: true), skill auto-update, and integrates with the OpenClaw and MCP ecosystems. MIT-licensed.
clawhub install shippage
Then tell your AI: "Publish this HTML as a webpage" or "Turn this Markdown into a shareable link" — done.
Add to your claude_desktop_config.json:
{
"mcpServers": {
"shippage": {
"command": "npx",
"args": ["shippage-mcp"]
}
}
}
No API key needed. No environment variables. Supports both publish_html and publish_markdown tools.
Publish HTML:
curl -X POST https://shippage.ai/v1/publish \
-H "Content-Type: application/json" \
-d '{
"html": "<html><body><h1>Hello World!</h1></body></html>",
"title": "My Page"
}'
Publish Markdown (converted to a styled webpage automatically):
curl -X POST https://shippage.ai/v1/publish \
-H "Content-Type: application/json" \
-d '{
"html": "<html>...your rendered markdown...</html>",
"title": "My Doc"
}'
Response:
{
"ok": true,
"url": "https://shippage.ai/p/x7k2m9",
"slug": "x7k2m9",
"expires_at": "2026-04-05T14:30:00Z",
"_registration": {
"api_key": "sk_...",
"claim_url": "https://shippage.ai/claim/ABCD-1234"
}
}
Save the api_key for subsequent requests. The claim_url lets the user manage pages via web UI (optional).
| Method | Endpoint | Description | Auth |
|---|---|---|---|
POST | /v1/publish | Publish HTML, returns public URL | Optional (auto-registers if missing) |
GET | /v1/pages | List all published pages | Required |
PUT | /v1/pages/:slug | Update a page | Required |
DELETE | /v1/pages/:slug | Delete a page | Required |
GET | /p/:slug | View a published page | None |
GET | /v1/skill/version | Check for skill updates | None |
GET | /v1/skill/download | Download latest SKILL.md | None |
| Parameter | Required | Type | Description |
|---|---|---|---|
html | Yes | string | The HTML content to publish |
title | No | string | Display name for the page |
slug | No | string | Custom URL path (e.g., my-page → shippage.ai/p/my-page) |
password | No | string | Require a password to view the page |
expires_in | No | number | Seconds until expiry (default: 1,209,600 = 14 days) |
public | No | boolean | If true, the page is indexable by search engines (index,follow) and included in /sitemap.xml. Default false (noindex). |
| Feature | ShipPage | PageDrop | Manual Deploy |
|---|---|---|---|
| Zero config | ✅ | ✅ | ❌ |
| HTML → Webpage | ✅ | ✅ | ✅ |
| Markdown → Styled Webpage | ✅ | ❌ | ❌ |
| Agent identity system | ✅ | ❌ | ❌ |
| Page management (CRUD) | ✅ | ❌ | Varies |
| Password protection | ✅ | ❌ | Varies |
| Custom URL slugs | ✅ | ❌ | ✅ |
| OpenClaw + MCP ecosystem | ✅ | ❌ | ❌ |
| Skill auto-update | ✅ | ❌ | ❌ |
| Auto-expiry & cleanup | ✅ | ✅ | ❌ |
Agent calls POST /v1/publish with HTML or rendered Markdown
│
├─ First time? → Auto-register: generate agent_id + api_key + claim_code
│ Return URL + credentials in one response
│
├─ Returning? → Verify API key, check quota
│
▼
Store HTML in R2 → Store metadata in KV → Return public URL
| Limit | Value |
|---|---|
| Publishes per month | 20 |
| Max page size | 500 KB |
| Page retention | 14 days |
| Password protection | ✅ Included |
| Custom slugs | ✅ Included |
No credit card required.
Q: Do I need to register before using ShipPage? A: No. ShipPage auto-registers your AI agent on the first API call. No signup, no forms, no email verification.
Q: Can I publish Markdown directly? A: Yes. The OpenClaw skill and MCP server both support Markdown natively — your Markdown is converted to a beautifully styled, mobile-friendly webpage automatically.
Q: What happens when my pages expire? A: Free-tier pages expire after 14 days and are automatically cleaned up. You can re-publish at any time. Pro tier (coming soon) offers permanent pages.
Q: Can I use ShipPage without Claude? A: Yes. ShipPage works with any HTTP client. The API is a standard REST endpoint — use it from any AI agent, script, or tool.
Q: How does skill auto-update work? A: The ShipPage skill checks for updates on first use each session. If a new version is available, it downloads and replaces itself automatically. Changes take effect in the next session.
Q: Is ShipPage open source? A: Yes. The source code is available at github.com/jieshu666/ShipPage-Skill under the MIT license.
Contributions are welcome! Please open an issue or submit a pull request.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y shippage-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-jieshu666-shippage": {
"command": "npx",
"args": [
"-y",
"shippage-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceshippage-mcpnpmShipPage works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.