FlatpageDocs

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/mcp

It 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

  1. In Claude, open Settings → Connectors and choose Add custom connector.
  2. Name it Flatpage and paste https://flatpage.app/mcp as the URL.
  3. Choose Connect, sign in to Flatpage and choose Allow.
  4. 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/mcp

Then 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

ToolArgumentsWhat it does
publish_htmlhtml, link_name?Publish a page as a new site and answer with its link.
publish_filefile_name, content_base64, link_name?Publish a .zip, .pdf or .html file, up to 25 MB.
update_sitesite, then html or file_name + content_base64New version of a site at the same link.
list_sitesYour sites with links, status and views.
get_site_statssiteViews for the last 30 days, this month and all time.
rename_sitesite, link_nameChange the link; the old one redirects for 30 days.
delete_sitesite, confirmDeletes 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 401 from /mcp carries WWW-Authenticate: Bearer resource_metadata="…" (RFC 9728).