Skip to main content
The checks differ by how you connected, so start with the section that matches your client.

Any connection

The server is configured but not connected. Most clients need a restart, or a window reload, after the config file changes. Check the client’s own MCP panel for the connection’s status rather than assuming it came up: Claude Code has /mcp, Cursor lists servers in settings, and Windsurf shows them under SettingsCascadeMCP Servers.
The endpoint answers unauthenticated requests with a 401, which is the expected response and confirms it is up:
A 401 with a WWW-Authenticate header is a healthy server. Anything else, or no response, points at your network rather than at your setup.
Some tools do not exist. Read Tools for the full set. There is no tool for deleting a ticket, for reading or updating a customer, or for editing a comment after it is posted.

OAuth connections

Add the server without a credential. Supplying an Authorization header makes the client treat the connection as already authenticated, so it never starts the OAuth flow. Remove the header, then reconnect.
The grant was revoked, or the refresh token expired. Sign in again from the client: in Claude Code that is /mcp, in Codex codex mcp login neetodesk. Other clients prompt on the next request.
The workspace is fixed when you approve the grant, so it cannot be switched afterwards. Remove the connection, add it again, and pick the right workspace at the prompt.
Check the key is httpUrl and not url in ~/.gemini/settings.json. url selects SSE, which this server does not serve. See Connect.

API key connections

Work through these in order:
  • The key goes in an Authorization: Bearer <key> header. The X-Api-Key header is for the REST API and is not read here.
  • Confirm the key is still active in your workspace admin panel. A deleted key fails the same way a mistyped one does.
  • Confirm the key belongs to the workspace in the URL. Keys are per workspace, so a key from one subdomain will not work against another.
They differ, and a wrong key is silently ignored rather than reported:Codex’s config is TOML, not JSON. Its bearer_token_env_var takes the name of an environment variable rather than the key itself.
Windsurf caps you at 100 tools across every connected server. Turn some other servers off under SettingsCascadeMCP Servers.

Missing or unexpected data

On an OAuth connection this is usually correct behaviour, not a fault. The connection is scoped to the person who approved it, so an agent restricted to their own tickets or to their groups gets a narrowed list. Confirm which account approved the grant, and check that account’s role. See Authentication.
That is the API key behaving as designed. A key carries no identity, so the connection reaches the whole workspace. Switch the connection to OAuth if you want it bounded by a person’s role.
Only enabled forms are returned. Check the form is enabled in your workspace settings.
Drafts are saved on the ticket, unsent, for you to review and send from NeetoDesk. Comments written through this server are stored on the ticket and are never emailed to the customer either.