Connect to Standalone Adaptive Planning MCP Server
- Configure your external agent for standalone Adaptive Planning. SeeConfigure External Agents for Standalone Adaptive Planning. After configuring your external agent, you get the OAuth Client ID and Client Secret needed for connecting to the MCP Server.
The MCP Server URL is available on the page for your instance. Use this URL to access the Adaptive Planning MCP Server:
https://<MCP Hostname>/<tenant>-<environment>/mcp?appName=<adaptive_instance_code>
Example:
https://api-us.adaptiveplanning.com/greenco-prod/mcp?appName=greenco_instance
Where:
- api-us.adaptiveplanning.comis the MCP hostname
- greenco-prodis the tenant environment
These steps are generic for any AI agent. For specific steps for Claude, ChatGPT, or Cursor, see the examples at the end.
- Retrieve the OAuth server metadata, including the supported endpoints, scopes, and algorithms.Run this command:curl -s https://<MCP Hostname>/<tenant>-<environment>/.well-known/oauth-authorization-server | jq .Example:curl -s https://api-us.adaptiveplanning.com/demo-sales/.well-known/oauth-authorization-server | jq .The response includesissuer,authorization_endpoint,token_endpoint,jwks_uri,scopes_supported, andid_token_signing_alg_values_supported. The signing algorithm value isRS512.
- Generate a Proof Key for Code Exchange (PKCE) code verifier and code challenge.Run these commands:# Generate code_verifier (43-128 URL-safe base64 characters) CODE_VERIFIER=$(openssl rand -base64 32 | tr -d '=' | tr '+/' '-_') echo "code_verifier: $CODE_VERIFIER" # code_challenge = BASE64URL(SHA256(code_verifier)) CODE_CHALLENGE=$(echo -n "$CODE_VERIFIER" | openssl dgst -sha256 -binary | base64 | tr -d '=' | tr '+/' '-_') echo "code_challenge: $CODE_CHALLENGE"
- Open the authorize endpoint in a browser to retrieve the authorization code.Replace the placeholders with your MCP host, tenant, environment, client ID, redirect URL, and code challenge. Replacerandom_state_valuewith a random state value.https://<MCP Hostname>/<tenant>-<environment>/oauth2/authorize?response_type=code&client_id=<client_id>&redirect_uri=<redirect_url>&scope=MCP-Basic&state=random_state_value&code_challenge=<code_challenge>&code_challenge_method=S256After you sign in and provide consent, the browser redirects to this URL:<redirect_url>?code=auth_code&state=....
- Retrieve the access token and refresh token with the authorization code and code verifier.Use the client ID and client secret for basic authentication.curl -s -X POST \ https://<MCP Hostname>/<tenant>-<environment>/oauth2/token \ -u <client_id>:<client_secret> \ -d "grant_type=authorization_code" \ -d "redirect_uri=<redirect_url>" \ -d "code_verifier=<code_verifier>" \ -d "code=<auth_code>" | jq .Response:{ "access_token": "<access_token>", "refresh_token": "<refresh_token>", "scope": "MCP-Basic", "token_type": "Bearer", "expires_in": 3599 }The access token is a signed JSON Web Token (JWT) that uses the RS512 algorithm. Decode the token at jwt.io to verify these claims:tenant,env,instance_code,sub(userguid), andtokenType. ThetokenTypevalue isAPToken.You have an access token and a refresh token for the Adaptive Planning MCP Server.
- Use the refresh token to retrieve a new access token without signing in again.curl -s -X POST \ https://<MCP Hostname>/<tenant>-<environment>/oauth2/token \ -u <client_id>:<client_secret> \ -d "grant_type=refresh_token" \ -d "refresh_token=<refresh_token>" | jq .The response includes a new access token and a rotated refresh token. The previous refresh token is immediately invalidated.
Connect to Adaptive Planning MCP Server from Claude Desktop
- In Claude Desktop, navigate to
- ClickAddto add a custom connector.
- Enter a name for your custom connector
- Add the Adaptive Planning MCP Server URL and clickContinue.
- UnderOAuth client, selectUse your own OAuth client.
- Enter the client ID and client secret that you saved when you created the OAuth client.
- ClickAddand then clickConnect.
- Enter your Adaptive Planning username and password.
- SelectMCP-Basicand clickApprove.
- ClickAuthenticate. A new browser window opens up.
- Enter your credentials or sign in with SAML SSO.
Connect to Adaptive Planning MCP Server from ChatGPT
- In Chatgpt, navigate to .
- ClickBrowse Directoryand then clickAddand selectAdd custom MCP server.
- Enter a name and description for the custom connection.
- InConnection, enter the Adaptive Planning MCP Server URL. This URL is available on the page in Adaptive Planning.Example: https://api-us.adaptiveplanning.com/demodkumastandg26r1-sales/mcp?appName=DEMO_DKUMA_STANDG26R1
- ForAuthentication, selectOAuth.
- ClickAdvanced OAuth settingsand selectRegistration method: User Defined Client.
- Copy the callback URL to use for Adaptive ASOR credential configuration.Example: https://chatgpt.com/connector/oauth/HJLpeeZaewVDXn
- Enter the Client ID and Client Secret that you saved when configuring your external agent. See Configure External Agents for Standalone Adaptive Planning.
- SelectI understand and want to continue.
- ClickCreate as a plugin.
- In Adaptive Planning, navigate to .
- UnderCredentialsupdate the redirect URI to match the callback URL you copied from the connection you configured in ChatGPT.Example: https://chatgpt.com/connector/oauth/HJLpeeZaewVDXn
- ClickAuthenticate. A new browser window opens up.
- Enter your credentials or sign in with SAML SSO.
Connect to Adaptive Planning MCP Server from Cursor
- In Cursor, navigate to Settings -> Customize -> MCPs
- Click New MCP Server.
- Paste this json after replacing the required fields:{ "mcpServers": { "my-remote-server": { "url": "<MCP URL>", "auth": { "CLIENT_ID": "<client_id>", "CLIENT_SECRET": "<client_secret>", "scopes": ["MCP-Basic"] } } } }
- Save your changes.
- ClickAuthenticate. A new browser window opens up.
- Enter your credentials or sign in with SAML SSO.