Docs
MintPage is a stateless Streamable-HTTP MCP server at https://mintpage-mcp.netlify.app/mcp. Everything below is also discoverable by your agent through tools/list.
Authentication
Three equivalent ways to pass a key. Without one you’re a guest (24-hour pages, 3 a day).
Authorization: Bearer mp_…header — preferred.https://mintpage-mcp.netlify.app/mcp/mp_…— key in the path, for clients that can’t set headers (Claude.ai connectors, ChatGPT).?key=mp_…query parameter.
Keys are only ever delivered by email from /start. Lost it? Request another; old keys keep working until you call rotate_api_key.
Connecting
Claude Code
claude mcp add --transport http mintpage https://mintpage-mcp.netlify.app/mcp \
--header "Authorization: Bearer mp_…"
Claude.ai and Claude Desktop
Settings → Connectors → Add custom connector. URL: https://mintpage-mcp.netlify.app/mcp/mp_… (or the bare /mcp for guest mode). No OAuth needed.
Cursor
// .cursor/mcp.json
{ "mcpServers": { "mintpage": {
"url": "https://mintpage-mcp.netlify.app/mcp",
"headers": { "Authorization": "Bearer mp_…" } } } }
ChatGPT
Settings → Connectors → Advanced → Developer mode → Create. URL: https://mintpage-mcp.netlify.app/mcp/mp_…, authentication “None”.
Any other client or SDK
JSON-RPC 2.0 over POST. Send Accept: application/json, text/event-stream; responses are plain JSON. No sessions, no SSE stream, so it works from a cron job or a curl one-liner.
Tools
| Tool | Arguments | Notes |
|---|---|---|
publish_page | title, content, format (markdown|html), theme (paper|ink|terminal), byline, slug (Pro), expires_in_hours | Returns url and page_id. Works for guests. |
update_page | page_id + any of the above | Keeps the URL. Key required. |
list_pages | — | Newest first, with views and expiry. |
delete_page | page_id | Irreversible; URL shows “removed”. |
get_page_stats | page_id | Total views, last view, 30-day daily series. |
get_account | — | Plan, usage, limits, upgrade link. Works for guests. |
rotate_api_key | — | Returns a new key once; revokes the one in use. |
Content
Markdown is GitHub-flavored: tables, task lists, fenced code, strikethrough, autolinks. HTML is sanitized server-side: scripts, forms, iframes, event handlers and external stylesheets are removed; inline style attributes, <style> blocks (no @import/url()), images and inline SVG are allowed. Every page is served with a strict Content-Security-Policy and noindex unless the owner is on Pro.
Themes: paper (light), ink (dark), terminal (dark, monospace). Pages are responsive and print cleanly.
Limits
| Guest | Free | Pro | |
|---|---|---|---|
| Live pages | 3 / 24 h | 10 | 500 |
| Page size | 100 KB | 250 KB | 1 MB |
| Lifetime | 24 h | up to 7 days | forever, or what you set |
| Custom slugs | — | — | yes |
| Stats | — | yes | yes |
| Badge on page | yes | yes | no |
| Search engines | noindex | noindex | indexable |
| Rate limit | 120 requests / minute / IP | ||
Billing
Pro is $8/month or $59/year, through Stripe, from the dashboard. Pay with the same email as your key and the upgrade applies within seconds. Cancelling keeps Pro until the end of the paid period; pages then fall back to Free rules (they are not deleted, but new expiry applies to pages published afterwards).
Tips for prompting your agent
- “Publish this as a page and give me the link.” — the agent calls
publish_pageand returns the URL. - “Keep the same page updated.” — the agent reuses the
page_idwithupdate_page. - “Make it dark.” —
theme: "ink". - “Expire it after the meeting.” —
expires_in_hours: 3.