The server does not appear at all
Claude or ChatGPT
Claude or ChatGPT
- Re-open the connector or plugin settings and confirm the entry was saved with the endpoint
https://connect.neetoauth.com/mcp/messages. - Adding a connector does not enable it in an existing conversation. Start a new one.
Clients that read a config file
Clients that read a config file
- Confirm you edited the file your client actually reads:
~/.claude.json,~/.codex/config.toml,~/.cursor/mcp.json,~/.gemini/settings.json,.vscode/mcp.json, or~/.codeium/windsurf/mcp_config.json. - Check the top-level key. VS Code uses
servers; every other client usesmcpServers, and Codex uses a[mcp_servers.<name>]table. - Check the URL field. Windsurf uses
serverUrland the Gemini CLI useshttpUrl; the rest useurl. - Codex reads TOML, not JSON. A JSON block in
config.tomlwill not parse. - Validate the file. A trailing comma or an unclosed brace makes the client skip every server in it, not just this one.
- Restart the assistant. Most clients read the config only at startup.
It connects but every call is rejected
Connected with OAuth
Connected with OAuth
- The token is scoped to you, so a call fails when your own NeetoAuth permissions do not cover it. Ask a workspace owner to grant the permission, or connect with an API key.
- The token is scoped to one workspace. If you approved it for a different workspace than the one you are asking about, remove the server and add it again.
- Sign in again to refresh an expired token: run
/mcpin Claude Code,codex mcp login neetoauthin Codex, or reconnect from your client’s UI.
Connected with an API key
Connected with an API key
- Confirm the header is exactly
Authorization: Bearer YOUR_API_KEY, with the key in place of the placeholder. - Confirm the key belongs to the workspace you are asking about, and that it has not been deleted or rotated.
- In Codex,
bearer_token_env_varnames an environment variable rather than holding the key. Make sure that variable is exported in the environment Codex starts from.
An invitation is rejected
rolemust beownerornon_owner. Product-specific roles go inapps, not inrole.- Each entry in
appsmust name a product enabled for the workspace and a role that product exposes. RunListProductsto see the valid pairs. - The workspace rejects a second invitation for someone who is already an active member. List the members first to check.
A deactivation is rejected
- The email must match an active member exactly; a partial address will not resolve.
- Someone already deactivated cannot be deactivated again.
- The last owner cannot be removed. Promote another member to owner first.