Skip to main content
OAuth apps let third-party clients access Forecastable on behalf of signed-in users. Each app has a client_id, client_secret, approved scopes, optional redirect URIs, and optional organization access limits. Use OAuth when an external product must run an authorization flow — for example, Claude custom connectors connecting to the Forecastable MCP server.

When to use OAuth

Use an OAuth app when:
  • users sign in to Forecastable and approve access themselves
  • a third-party client exchanges an authorization code for an access token
  • you need per-user delegated access instead of a single static API key
Use API keys for integrations that cannot run an OAuth consent flow, such as scripts or MCP clients that only support static bearer tokens.

Prerequisites

  • a Forecastable account with the developer role
  • access to the organization the OAuth app should be scoped to

Create an OAuth app

Open Settings → Developer → OAuth Apps.
  1. Click Create OAuth App.
  2. Enter an app name and select the organization.
  3. On the app detail page, copy the Client ID and Client secret from Credentials.
  4. Add redirect URLs the client will use after authorization.
  5. Select the scopes the app may request.
  6. Optionally configure display information (icon, name, descriptions) shown on the consent screen.
For Claude custom connectors, add this redirect URL:
Redirect URLs are optional on the app until a client needs them. Authorization fails if the client sends a redirect_uri that is not registered on the app. You can regenerate the client secret or signing secret from the app detail page. Regeneration invalidates the previous value immediately.

Dynamic client registration

OAuth-aware MCP clients can create OAuth apps automatically with Dynamic Client Registration. Cursor and Claude custom connectors use this flow so users only enter the connector name and MCP server URL. Clients discover the registration endpoint from:
The metadata includes:
Registration accepts authorization-code clients with PKCE. Redirect URIs may be:
  • any https:// URL (for example Claude or Cursor Agents)
  • loopback HTTP (http://localhost…, http://127.0.0.1…, http://[::1]…)
  • Cursor desktop callbacks: cursor://anysphere.cursor-mcp/oauth/callback and cursor-nightly://anysphere.cursor-mcp/oauth/callback
Forecastable returns a generated client_id and, when token_endpoint_auth_method is not none, a client_secret. The client stores those credentials and uses them during the token exchange. OAuth JSON errors use RFC 6749 shapes ({ "error": "invalid_request", "error_description": "…" }), not the Integration API error envelope.

Authorization code flow (PKCE)

Forecastable supports OAuth 2.0 authorization code with PKCE (S256). This is the flow Claude and other interactive MCP clients use.

Authorize

Unauthenticated users are redirected to Forecastable login, then returned to the authorize URL.
Required query parameters: After the user clicks Allow, Forecastable redirects to redirect_uri with ?code=…&state=….

Token exchange

For grant_type=authorization_code, send: Successful response:
Access tokens expire after one hour. The client must run the authorization flow again to obtain a new token.

Client credentials flow

OAuth apps also support client_credentials for server-to-server access using the app’s client ID and secret, without an end-user login.
The requested scopes must be a subset of those configured on the OAuth app. Tokens are issued to the app principal, not an individual user session.

Discovery metadata

OAuth-aware clients can read Forecastable metadata from:
These documents list supported grant types, endpoints, scopes, and the protected MCP resource URL. During authorization, users see:
  • app name, icon, and description from the OAuth app Display info
  • the workspace (organization) context
  • grouped scopes with short explanations
  • Allow and Cancel actions
Users must already belong to the organization bound to the OAuth app. Approved tokens inherit the app’s allowed scopes and organization access for that user.

Use access tokens

Send issued tokens the same way as API keys:
The same scope and organization rules apply to REST endpoints and MCP tools.

Claude custom connector

For step-by-step Claude setup with screenshots, see the MCP server guideClaude Desktop tab.

Troubleshooting

Add the exact callback URL the client uses to the OAuth app Redirect URLs list and save.
Confirm the client ID and secret match the OAuth app. Regenerate the secret in Forecastable if needed, then update the client.
Authorization requests must use code_challenge_method=S256 and resource=https://app.forecastable.com/mcp for MCP integrations.
Add the missing scopes on the OAuth app, save, and have the user reconnect so they can approve the updated permissions.

API keys

Static bearer tokens for integrations you control directly.

Scopes

Approved scopes and what each permission allows.

Rate limits

Per-token limits, 429 responses, and retry behavior.