BioFlow / MCP
BioFlow ships a remote MCP (Model Context Protocol) server. Any MCP-capable agent — Claude, Claude Code, ChatGPT, Copilot, MCP Inspector, or your own — can read your analytics, edit your bio page drafts, and (with your explicit say-so) publish, all through OAuth you grant and can revoke in one click.
One remote endpoint, Streamable HTTP, no local install and no API keys to copy around:
https://app.getbioflow.com/api/mcpAdd BioFlow from your terminal, then sign in when prompted:
claude mcp add --transport http bioflow https://app.getbioflow.com/api/mcpOAuth 2.1 with PKCE. Clients register themselves via unauthenticated dynamic client registration (RFC 7591), and discovery follows RFC 8414 + RFC 9728:
https://app.getbioflow.com/.well-known/oauth-authorization-server
https://app.getbioflow.com/.well-known/oauth-protected-resourceTokens are scoped to one workspace — an agent only ever sees the workspace you connected it to.
| Feature | What it does | Required scope |
|---|---|---|
| page.list | List every bio page in the workspace: title, slug, publish status, block count, route, and theme. | pages:read |
| page.get | Read one page's draft and published state — block list with ids, theme, route, and the draft updatedAt that write tools require. | pages:read |
| analytics.summary | Workspace analytics for the last 7/30/90 days: views, clicks, unique visitors, CTR, top links, referrers, and tip revenue. | analytics:read |
| contacts.list | List captured contacts and leads (newsletter signups, form submissions, gated downloads), newest first. | contacts:read |
| file.list | List uploaded files (name, MIME type, public path) for wiring into image, file, carousel, or product blocks. | files:read |
| page.create | Create a new bio page as an unpublished draft — it never publishes; going live requires the separate page.publish tool. | pages:write |
| page.update_draft | Edit the draft's title, description, theme, or existing blocks by id — everything you don't mention is preserved. | pages:write |
| page.add_block | Append one new block to the draft, preserving every existing block byte-for-byte. | pages:write |
| page.remove_block | Delete specific blocks from the draft by id; refuses to clear the entire page. | pages:write |
| page.reorder_blocks | Rearrange the draft's blocks without editing their content — every block id listed exactly once. | pages:write |
| page.publish | Publish the draft to the live public page. Two-step: the first call returns a preview + confirmToken, the second commits. | publish · dangerous — off by default |
| page.schedule_publish | Schedule the page to publish at a future time. Two-step confirm; the commit call must repeat the same startsAt. | publish · dangerous — off by default |
page.publish and page.schedule_publish are the dangerous set: they change what real visitors see, so they require the publish scope AND a per-workspace “dangerous operations” toggle that ships OFF, and every commit is two-step confirmed (below).
| Feature | What it grants |
|---|---|
| pages:read | See your bio pages, blocks, and themes |
| pages:write | Create and edit drafts of your bio pages |
| analytics:read | See your page views, clicks, and traffic sources |
| contacts:read | See your captured contacts and leads |
| files:read | See your uploaded files and media |
| publish | Publish changes to your live pages |
These are the exact descriptions shown on the consent screen. An agent calling a tool outside its granted scopes gets a structured SCOPE_MISSING denial — never silent partial access.
Every connection starts on a consent screen listing each requested scope in plain language. Revoke any app in Settings → Connected AI apps — revocation is instant, and the same screen shows a full audit trail of every tool call the app ever made.
Draft edits never touch your live page. The publish-class tools are disabled per workspace until you flip an explicit settings toggle; until then agents get a DANGEROUS_OPS_DISABLED denial that carries a deep-link to that setting.
Calling page.publish or page.schedule_publish without a confirmToken commits nothing — it returns a preview of what would go live plus a confirmToken valid for 10 minutes. Calling again with that token (and, for scheduling, the same startsAt) commits. If the draft changed in between, the commit is refused with STALE_SNAPSHOT; a forged, expired, or rebound token is refused with CONFIRM_TOKEN_INVALID.
Every refusal is a typed code an agent can act on: SCOPE_MISSING, DANGEROUS_OPS_DISABLED (with the settings deep-link), QUOTA_EXCEEDED when a call would pass your plan limits, STALE_SNAPSHOT, CONFIRM_TOKEN_INVALID. No mystery errors, no silent no-ops.
Draft writes are guarded too: every write tool requires the expectedUpdatedAt read from page.get (optimistic concurrency — a stale draft is refused, never clobbered), and writes accept an optional idempotencyKey so a retried call can't run twice.
Yes. Agents connect through OAuth 2.1 — you approve exactly which scopes an app gets on a consent screen, tokens are limited to one workspace, and every tool call is written to an audit trail you can review in Settings → Connected AI apps. You can revoke an app at any time and revocation is instant.
Only what its granted scopes allow — and nothing that touches your live page. Draft edits stay drafts. Publishing and scheduling are off by default per workspace, and even after you enable them, every publish is a two-step flow: the agent gets a preview and a short-lived confirm token first, and nothing commits until a second call with that token.
Open Settings → Connected AI apps in your BioFlow dashboard and revoke the app. Revocation is instant — its access and refresh tokens stop working immediately.
No. The MCP server is included on every plan, including Free. Tool calls ride your plan's existing limits — an agent can't spend more than your plan allows, and over-limit calls get a structured QUOTA_EXCEEDED response instead of silent failure.
Any MCP client that speaks Streamable HTTP with OAuth: Claude (web and desktop, as a custom connector), Claude Code, ChatGPT, Microsoft Copilot, MCP Inspector, and any agent framework with an MCP client. Registration is dynamic — no pre-shared API keys needed.
More on BioFlow itself: the full FAQ, the integration directory, and pricing.
Sign up free, connect any MCP client, and let it keep your page fresh. MCP access is included on every plan.