Fixes for the common problems: can’t connect, refused at sign-in, missing tools, the wrong institute, client ID prompts and expired sessions.
Most problems come down to one of three things: the server URL, the settings in your admin portal, or your AI app still showing an old tool list. Work through the matching section below.
After any fix, start a new chat and ask: Who am I connected as? If that answers with your name and institute, the connection works.
It must include /i/<institute_id>. That part tells the server which institute you’re connecting to, and the sign-in screen opens on that institute’s own admin portal.
Check the server is on
An admin must turn on MCP server enabled in Settings → MCP Server and save. Until then nobody can connect, and the connection details are not shown.
Check your AI app supports remote MCP servers with sign-in
The server uses streamable HTTP and OAuth sign-in. Claude, ChatGPT, Claude Code, Cursor and VS Code support both. Some plans of some apps don’t allow custom connectors. See the setup page for your app under Connect your AI app, and your app’s own help, because menus move.
The browser didn't open, or the sign-in page never loaded
Your app opens a browser window for sign-in. If nothing opens, check pop-up blockers and try again. In Claude Code, run /mcp, pick the server and choose to authenticate. On company networks, ask IT whether the server’s address is allowed.
The AI app only sees tools you’re allowed to use. Check these in order:
1
Do you see any tools at all?
No tools at all: the server is off, the settings were not saved, or your role is not under Who can connect. Ask an admin to check. Then reconnect.
Only whoami (Who is connected): you are connected, but every area is Off for your role. Ask an admin to set one to View.
2
Is the area on?
In Settings → MCP Server → What AI apps can do, each area is Off, View or Edit. View gives the reading tools. Edit adds the editing tools. Ask an admin to raise the area.
3
Is it an edit turned on separately (opt-in)?
Publishing websites, enrolling learners, editing learner details, changing course structure, setting up course data and every CRM edit (logging, changing leads, calling, messaging, booking) are turned on separately. Setting the area to Edit, or pressing “Turn everything on”, does not switch them on. See Opt-in edits.
4
Is it on for your role?
The main settings apply to everyone who can connect. Per-role access can give a role more, never less. If a colleague with another role has the tool and you don’t, check the per-role settings.
5
Is it a CRM area?
The CRM areas show in Settings → MCP Server for every institute, but the AI app gets CRM tools only when your plan includes the CRM. Without it, the tools do not appear (or answer module_not_enabled if called). Some CRM actions are for admins or managers only; the tool says so (admin_only, not_available_for_role).
6
Has your app refreshed its tool list?
Settings changes apply on the server at once, but many apps keep the tool list they loaded when the chat started. Start a new chat. If that’s not enough, refresh or reconnect the connector in your app (in ChatGPT, open the connection under Plugins and select Refresh).
7
Did you switch the tool off in your app?
Most apps let you switch a connector, or single tools, on and off per chat. Check that menu in your app.
If a tool is listed but returns tool_not_permitted, it was switched off after the chat loaded its list. Ask an admin, then start a new chat.
Each institute has its own server URL. A connection belongs to the institute in its URL, and only works there.
You work for two institutes? Add two connectors, one per URL, with clear names (for example “City Campus” and “Online Academy”). Sign in to each with the matching account.
“You’re signed in to a different institute” at approval: your portal session is for the other institute. Sign out of the portal, sign in to the institute in the URL, and approve again.
“This token was issued for a different server URL”: the connector’s URL was changed after sign-in, or you used an old URL. Remove the connector and add it again with the URL from Settings → MCP Server.
Claude, ChatGPT, Cursor, Claude Code and VS Code usually register themselves, so you don’t need a client ID. If your app asks for one anyway:
1
Use your institute's client ID, if your app is on its list
Your client ID in Settings → MCP Server accepts the web callbacks of Claude, the older ChatGPT address and cursor.com/connector/callback. For those, paste it into the app’s OAuth client ID field. Desktop and command-line tools (Claude Code, Cursor desktop, VS Code) need a client ID of their own; see the tabs below.
2
Leave the client secret empty
There is no client secret. If the app requires one, use a different option in its sign-in settings (for example “register automatically”).
3
If sign-in then fails with a redirect error
If your app shows a different callback (redirect) URL, an admin creates a new client ID under Client IDs for other apps with that exact URL. It must be https, or http on localhost, and must match exactly. Use the new client ID instead.
ChatGPT
Claude
Claude Code
Cursor
When adding the server, pick OAuth and let ChatGPT register itself. If you must use a fixed client, an admin copies the callback URL shown in ChatGPT’s app settings and creates a client ID with it under Client IDs for other apps. Leave the secret blank. Menus and callback formats change: see OpenAI’s auth guide and OpenAI’s guide to connecting MCP servers.
When adding a custom connector, the OAuth client setting decides how Claude registers. If sign-in fails with the default, remove the connector and add it again with Register automatically, or with your own OAuth client and Your client ID. See Claude’s custom connector guide.
Your institute’s client ID does not accept Claude Code’s local callback. Ask an admin to create a client ID under Client IDs for other apps with the redirect URL http://localhost:8080/callback, then run:
Your institute’s client ID does not accept Cursor desktop’s local callback. Ask an admin to create a client ID under Client IDs for other apps with Cursor’s two redirect URLs, http://localhost:8787/callback and https://www.cursor.com/agents/mcp/oauth/callback. Then add an auth object with CLIENT_ID to the server entry in mcp.json. See Cursor → Using a fixed client ID and Cursor MCP docs.
That’s the safety check working. Previews last a short time (minutes), and any change to the request or the data makes the AI app preview again. Say “Preview it again” and confirm the new one. See Confirmations.
The AI app says it’s done, but I don’t see the change
Website, blog, automations, new courses: these are drafts. Open the editor link, or look for the draft in your admin portal. Nothing is live until someone publishes it. See Drafts vs live.
A website publish: the site is live only when the tool reported a successful publish. Ask the AI app: “Did the publish tool confirm it?”
Anything else: ask the AI app to quote what the tool returned. If the tool returned an error, see Errors.
To see exactly what the server offers your account, use the MCP Inspector:
npx @modelcontextprotocol/inspector
Choose Streamable HTTP, paste your server URL and connect. It runs the same sign-in and lists the tools, prompts and resources you can use. In Cursor, the MCP Logs output panel shows connection errors. In Claude Code, /mcp shows each server’s status.