MCP server
Add Flatpage to Claude, ChatGPT, Claude Code or Cursor and publish from a chat.
Flatpage runs a remote MCP server at:
https://flatpage.app/mcpIt speaks streamable HTTP and signs in with OAuth 2.1 (dynamic client registration, PKCE), so clients add it with just the URL: you sign in to Flatpage in a pop-up and choose Allow. No key to copy. Then ask the assistant to "publish this as a page called spring-menu" and it answers with the link.
Add it to your assistant
- In Claude, open Settings → Connectors and choose Add custom connector.
- Name it
Flatpageand pastehttps://flatpage.app/mcpas the URL. - Choose Connect, sign in to Flatpage and choose Allow.
- In a chat, turn the connector on from the tools menu and ask for a page.
ChatGPT adds custom connectors in developer mode. Open Settings → Apps and Connectors, turn on Developer mode under Advanced, and create a connector with the URL https://flatpage.app/mcp and OAuth as the authentication. Sign in and allow it, then pick it from the tools menu in a chat. Which plans can use developer mode is up to OpenAI.
claude mcp add --transport http flatpage https://flatpage.app/mcpThen type /mcp in Claude Code and sign in.
Add the server to ~/.cursor/mcp.json (or the project's .cursor/mcp.json) and sign in when Cursor asks:
{
"mcpServers": {
"flatpage": { "url": "https://flatpage.app/mcp" }
}
}Any client that supports remote MCP servers over streamable HTTP with OAuth works with just the URL. Clients that can't sign in can send an API key instead:
{
"mcpServers": {
"flatpage": {
"url": "https://flatpage.app/mcp",
"headers": { "Authorization": "Bearer fpk_..." }
}
}
}Tools
| Tool | Arguments | What it does |
|---|---|---|
publish_html | html, link_name? | Publish a page as a new site and answer with its link. |
publish_file | file_name, content_base64, link_name? | Publish a .zip, .pdf or .html file, up to 25 MB. |
update_site | site, then html or file_name + content_base64 | New version of a site at the same link. |
list_sites | Your sites with links, status and views. | |
get_site_stats | site | Views for the last 30 days, this month and all time. |
rename_site | site, link_name | Change the link; the old one redirects for 30 days. |
delete_site | site, confirm | Deletes only when confirm is the site's link name. |
site is a link name (spring-menu) or a site id from list_sites. Each tool call counts as one API call toward the daily limit. Uploads go through the same scanning and plan limits as the dashboard.
Disconnecting
Connected apps are listed in the dashboard under Settings. Disconnecting one stops it at once; you can also remove the connector in the assistant.
For client developers
- Protected resource metadata:
https://flatpage.app/.well-known/oauth-protected-resource - Authorization server metadata:
https://flatpage.app/.well-known/oauth-authorization-server - A
401from/mcpcarriesWWW-Authenticate: Bearer resource_metadata="…"(RFC 9728).