ChatGPT
JamRelay can be connected to ChatGPT as a custom remote MCP app using a public HTTPS endpoint.
NOTE
Product labels and availability can vary by ChatGPT plan, workspace, account, and rollout. The UI may use terms such as Apps, Plugins, Custom app, or Developer mode.
Recommended OAuth mode
For ChatGPT, use a pre-registered confidential OAuth client. ChatGPT shows an exact callback URL during setup and allows you to enter your own client ID and client secret.
An existing JamRelay deployment using the legacy variables remains supported:
MCP_OAUTH_CLIENT_ID=chatgpt-jamrelay
MCP_OAUTH_CLIENT_SECRET=<STRONG_RANDOM_SECRET>
MCP_OAUTH_REDIRECT_URI=<EXACT_CALLBACK_FROM_CHATGPT>
MCP_OAUTH_OWNER_SECRET=<OWNER_APPROVAL_SECRET>You can also move the ChatGPT client into MCP_OAUTH_CLIENTS_PATH if you want all static clients in one registry file. DCR can remain enabled at the same time for Claude, Gemini CLI, VS Code, and other clients.
Configure ChatGPT
Use:
Server URL
https://mcp.example.com/mcp
Authentication
OAuth
Authorization URL
https://mcp.example.com/oauth/authorize
Token URL
https://mcp.example.com/oauth/token
Authorization server / issuer
https://mcp.example.com
Resource
https://mcp.example.com/mcp
Token endpoint authentication
client_secret_basicUse the client ID and client secret configured in JamRelay. Do not use the Spotify client ID or Spotify client secret here.
Callback
Copy the callback displayed by ChatGPT exactly. JamRelay validates redirect URIs exactly for pre-registered clients.
Owner approval
When ChatGPT starts authorization, JamRelay displays the owner approval page. Enter:
MCP_OAUTH_OWNER_SECRET=...That secret is local to JamRelay and is never given to ChatGPT or Spotify.
Verify
Start a fresh conversation with JamRelay enabled and try:
What is currently playing on Spotify?Then test a write action:
Create a private playlist called MCP Test.