Skip to main content

Overview

Formo supports OAuth for remote MCP clients that can discover and complete an OAuth authorization flow.
Formo OAuth consent page for MCP clients

Setup

  1. Open ChatGPT settings
  2. Go to Apps
  3. Click Advanced settings
  4. Enable Developer mode
Enable Developer mode in ChatGPT app settings
  1. Go back to Apps
  2. Click Create app
  3. Enter the app details: Name
    MCP server URL
    • Description: optional
    • Authentication: OAuth
Create a Formo MCP app in ChatGPT
  1. Click Create
  2. Sign in to Formo, select a project, and approve access
  3. Start asking ChatGPT questions about your Formo analytics
ChatGPT Developer mode is a beta feature. ChatGPT apps created in Developer mode also cannot use memory.
Formo can be configured as a data-only MCP app; no extra app UI is required to query analytics.

Scopes

Formo MCP OAuth supports the following scopes:
OAuth access is bound to the project selected on the Formo consent page. The MCP server validates that the user still has access to that project before serving requests.

Troubleshooting

  • 403 MCP access requires a Scale or Enterprise plan: The signed-in workspace is on a Growth plan. MCP authorization is gated server-side, so the OAuth flow will not complete. Upgrade the workspace to a Scale or Enterprise plan, then reconnect.
  • Client does not start OAuth: Confirm the MCP server URL is exactly https://api.formo.so/v0/mcp/ and includes the trailing slash.
  • Invalid scope: Request supported scopes only (see the table above), plus offline_access when refresh is needed.
  • Consent page asks you to sign in again: Sign in to Formo and you will be returned to the same OAuth authorization flow.
  • No projects are available: The signed-in Formo account must be an owner or admin of a team with at least one project.
  • Project access denied after connecting: Reconnect and choose a project that your Formo user can still access.
  • API key stopped working: OAuth does not replace API keys. Check that the key has the permission the failing tool needs (analytics and SQL need query:read), has not been revoked, and is sent as Authorization: Bearer <workspace_api_key>.

OAuth discovery

Most OAuth-capable MCP clients discover Formo’s OAuth configuration automatically from the MCP server URL:
Unauthenticated requests return a 401 with a WWW-Authenticate challenge that points clients to Formo’s protected resource metadata. Access tokens expire after 1 hour; clients that request offline_access can refresh access without asking the user to sign in again.
The openid-configuration path is an alias that returns the same OAuth authorization-server metadata for clients that look there. Formo MCP is OAuth 2.0 only and does not implement full OpenID Connect.