Skip to main content
Restart the client first. Every client reads its MCP config at startup, and Cursor can also reload the window from the command palette. Then check the items for your kind of client.On Claude or ChatGPT, confirm that you added the connector and finished the sign-in. In ChatGPT, the plugin is created only after you tick I understand and want to continue.On Claude Code, Cursor, Gemini CLI, Codex, VS Code, Windsurf, or Antigravity, which read a config file:
  1. Check the config key. Claude Code, Cursor, Gemini CLI, Windsurf, and Antigravity nest servers under mcpServers. VS Code uses servers, and Codex uses a [mcp_servers.<name>] section in TOML. A server under the wrong key is ignored silently.
  2. Check the URL key. Windsurf and Antigravity expect serverUrl, and Gemini CLI expects httpUrl because it reserves url for SSE. Claude Code, Codex, Cursor, and VS Code expect url.
  3. Check the endpoint. It is https://connect.neetocal.com/mcp/messages, with no trailing slash.
  4. Check the syntax. In JSON a trailing comma or an unclosed brace makes the whole file unreadable, which takes out any other servers too.
Full snippets for each client are on Connect agent.
Go to chatgpt.com and open Settings → Security and login. Scroll to the bottom of the page. Developer mode is the last section, below Lockdown mode.If Lockdown mode is on, turn it off first. ChatGPT does not allow both at the same time. If Developer mode is still not there, your ChatGPT workspace admin has turned it off. Ask them to allow it, then follow the ChatGPT web app steps in Connect agent.The ChatGPT desktop app does not need Developer mode. Follow the ChatGPT desktop app steps in Connect agent instead.
On an API key connection, the Authorization header must read Bearer YOUR_API_KEY, with the word Bearer and a single space before the key. Confirm the key has not been revoked, and that it belongs to the workspace you expect: a key generated in one workspace does not work in another. Generate a new key from workspace settings if you are unsure.On an OAuth connection there is no key to check. Remove the connector and add it again to run the sign-in from the start.
A client that finds a credential in its config never starts the OAuth flow. Remove the headers block, or the bearer_token_env_var line in Codex, and restart the client. It then answers the server’s 401 by opening the sign-in.
The opposite case: the credential is missing, so the client falls back to OAuth. Add the headers block with "Authorization": "Bearer YOUR_API_KEY", or set bearer_token_env_var = "NEETOCAL_API_KEY" in Codex and export that variable, then restart the client. Codex takes the name of an environment variable, not the key itself.
The first screen asks for a workspace subdomain, or the workspace URL, not an email address. For acme.neetocal.com, enter acme. See Workspace subdomain.
That is the scoping working as intended. An OAuth connection acts as the person who approved it, so lists and searches come back filtered to your permissions, and asking for a specific meeting or booking you cannot open is refused rather than answered.If the assistant genuinely needs to reach everything in the workspace, that is what an API key connection is for. See Authentication.
The approval screen has two optional permissions, Create and update and Delete, and a tool that needs one you left unticked is refused with a message naming it. Nothing is broken and nothing half happened.To grant it, remove the connector and add it again, ticking the permission this time. See Authentication. An API key connection carries every permission, so this cannot happen on one.
An OAuth connection covers the workspaces you ticked while approving it. Name the workspace in your prompt, or ask the assistant to list the workspaces it can reach. To add another one, run the sign-in again and tick it.An API key belongs to exactly one workspace, so a key connection reaching the wrong one means the wrong key. Add the server a second time, with the other key and a different server name.
MCP needs VS Code 1.99 or later with GitHub Copilot running in Agent mode. It is not available in Ask or Edit mode. Check the version, switch Copilot to Agent mode, and confirm that .vscode/mcp.json is in the workspace you have open. On an API key connection, VS Code prompts for the key the first time the server is used, so answer that prompt.
Enable the server after saving the config: Settings → Cascade → MCP Servers in Windsurf, Settings → Customizations in Antigravity. Windsurf also caps the total number of tools at 100 across every connected server, so turn off servers you are not using and reload.
Open Customize > Connectors, remove NeetoCal, and connect it again from the NeetoCal listing.On a Team plan, Requested means an admin has not turned NeetoCal on yet. An admin turns it on under Organization settings > Connectors.
The server publishes its OAuth metadata without any credential, so one request tells you whether the problem is on the server or in your client:
A JSON document whose issuer is https://connect.neetocal.com means the host is reachable and answering, so look at the client’s setup next. It does not prove that every tool call succeeds. No answer, or an error page, means the server cannot be reached from your network. Try again in a few minutes, and if it persists, tell us.

Still stuck

Reach us through the help center, or at support@neetocal.com. Tell us which client you are using and what the assistant reports when it tries a NeetoCal tool.