MCP server (AI assistants)

The MCP server lets Claude — or any Model Context Protocol client — read and run your studio in plain language. Ask "what's on next week's schedule?", "add a Tuesday 7pm vinyasa class with Sam", or "invite this member", and the assistant calls the same scoped operations as the Management API on your behalf. Every tool is gated by a scope, so an assistant can only do what you allow.

Endpoint

https://flow-management-api.massimo.click/mcp

It speaks Streamable HTTP MCP. Connect it two ways — pick whichever your client supports.

Connect with one-click sign-in (OAuth)

Best for interactive clients (Claude Desktop, the Claude apps, IDE assistants). The client discovers the server, registers itself automatically, and opens a browser window where you sign in to your studio and approve access — no keys to copy. The assistant then connects with your own permissions, and you can disconnect any time from your AI assistant's settings.

  1. In your assistant, add a connector / MCP server with the endpoint above.
  2. A browser window opens — sign in to your studio and approve.
  3. The assistant is connected. That's it.

Connect with a secret key

Best for automated or headless clients. Create a secret key (flow_sk_…) on the Developer page in your studio settings, grant it the scopes you want the assistant to have, and present it as a bearer token:

Authorization: Bearer flow_sk_your_secret_key

Keep secret keys server-side — never paste one into a public or shared place. Rotate or revoke it any time; the assistant loses access immediately.

Scopes the tools use

The tools below require these scopes. Grant a key only the ones you need — read-only scopes (…:read) let an assistant look but not change anything; write scopes (…:write) let it make changes.

classes:read, classes:write, content:read, content:write, coupons:read, coupons:write, instructors:read, instructors:write, locations:read, locations:write, members:read, members:write, plans:read, plans:write, programs:read, programs:write, schedule:read, schedule:write

Add it to Claude Desktop

Claude Desktop connects to a remote MCP server through the mcp-remote bridge. Add this to your claude_desktop_config.json (Settings → Developer → Edit Config), then restart Claude Desktop:

{
  "mcpServers": {
    "flowstate": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://flow-management-api.massimo.click/mcp"]
    }
  }
}

On first use a browser window opens for one-click sign-in. To connect with a secret key instead, pass it as a header:

{
  "mcpServers": {
    "flowstate": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://flow-management-api.massimo.click/mcp",
        "--header",
        "Authorization: Bearer flow_sk_your_secret_key"
      ]
    }
  }
}

Any other MCP client

For clients that accept a server URL directly (no bridge), add the endpoint as a remote MCP / Streamable-HTTP server:

https://flow-management-api.massimo.click/mcp

Then choose one-click sign-in or paste a secret key as a bearer token, exactly as above.

Tool catalog

These are the tools an assistant can call. Each maps to a Management API capability and is gated by the same scope, so an assistant can never reach something its key (or your approval) didn't grant. The list grows as new tools ship — read-only tools are safe to grant broadly; write tools change your studio's data.

Tool What it does Access Required scope
list_classes List classes Read classes:read
list_members List members Read members:read
list_schedule List scheduled sessions Read schedule:read
list_content List on-demand videos Read content:read
list_plans List plans Read plans:read
list_instructors List instructors Read instructors:read
list_locations List locations Read locations:read
list_coupons List coupons Read coupons:read
list_programs List programs Read programs:read
create_class Create a class Write classes:write
cancel_class Cancel a class Write classes:write
reschedule_occurrence Reschedule a session Write schedule:write
invite_member Invite a member Write members:write
update_content Update a video's details Write content:write
create_plan Create a plan Write plans:write
update_plan Update a plan Write plans:write
archive_plan Archive a plan Write plans:write
create_instructor Create an instructor Write instructors:write
update_instructor Update an instructor Write instructors:write
create_location Create a location Write locations:write
update_location Update a location Write locations:write
delete_location Delete a location Write locations:write
create_room Create a room Write locations:write
update_room Update a room Write locations:write
delete_room Delete a room Write locations:write
update_member Update a member's role Write members:write
cancel_membership Cancel a membership Write members:write
create_coupon Create a coupon Write coupons:write
archive_coupon Archive a coupon Write coupons:write
create_program Create a program Write programs:write
update_program Update a program Write programs:write

Good to know