Troubleshooting
Start with these checks:
- Confirm the client uses
https://api.cloudsek.com/mcp. - Confirm both the
AuthorizationandX-CloudSEK-Org-Idheaders are present. - Ask
What CloudSEK tools do you have available? - Test a GTI query, such as
Check whether 1.2.3.4 is malicious. - Test an account query, such as
Show my latest alerts.
If GTI works but account data does not, check the Alerts API configuration and Org ID. If no tools appear, check the client configuration and connection.
Connected, but alert tools return no data
This usually means the Alerts API configuration has no records:
- A new configuration starts empty. It receives only alerts created or routed to it after setup.
- Open the configuration in the CloudSEK Platform and turn on Default if it should receive all new alerts and incidents.
- If the configuration was disabled, alerts created while it was disabled are not added later.
- Confirm
X-CloudSEK-Org-Idmatches the organization that owns the Alerts API token.
GTI results can still work because GTI uses a separate data source.
Bearer token is missing or 401 Unauthorized
The Authorization header is missing, malformed, expired, or revoked. Check:
-
The value is
Authorization: Bearer YOUR_TOKEN, with one space afterBearerand no quotes or trailing spaces in the token. -
The environment variable exists in the process that launched the client. On macOS or Linux, check without printing the secret:
test -n "$CLOUDSEK_BEARER_TOKEN" && echo set || echo missing -
Claude Desktop was fully quit and reopened after its config changed.
-
The token remains active under CloudSEK Platform → Integrations → Alerts API.
403 Forbidden or organization access error
- Confirm the Org ID comes from the same CloudSEK organization as the token.
- Check the
X-CloudSEK-Org-Idspelling and capitalization. - Ask your CloudSEK administrator whether the token can access the requested product or operation.
Tools do not appear in Claude Desktop
- Confirm the file path matches your operating system. See Claude Desktop setup.
- Validate the file as JSON using your editor's JSON diagnostics. Do not paste a config containing a token into an online validator.
- Run
node --versionandnpx --version. Install Node.js 20 or newer if either command is missing. - Fully quit Claude Desktop. Closing its window is not enough.
- Open Help → Show Logs and look for
mcp-remote, JSON parsing, or command errors. - On Windows, use the environment block shown in the Claude Desktop guide if argument strings containing spaces fail.
To check network reachability, run:
curl --head https://api.cloudsek.com/mcp
Any HTTP response confirms DNS and TLS connectivity. A non-success status can be normal because this check does not send MCP authentication or a protocol request.
Claude Code reports cloudsek not found or a connection error
- Run
claude mcp list. - If
cloudsekhas an error, runclaude mcp remove cloudsek, then add it again. - If you used
--scope project, run Claude Code from that project. - Type
/mcpinside a Claude Code session for server and tool errors. - If you passed a token on the command line, check that shell quoting did not truncate it. Rotate the token if it was stored in shell history against your policy.
Gemini CLI does not load tools
- Validate
settings.jsonas JSON. - Use
urlwith"type": "http". Do not use the deprecatedhttpUrlkey. - Start Gemini CLI from a shell where the credential variables are exported.
- Exit the current Gemini CLI process and start a new one after changing the environment or config file.
Codex CLI does not connect
- Confirm
CLOUDSEK_BEARER_TOKENandCLOUDSEK_ORG_IDare exported in the current shell. - Validate
config.tomlas TOML. - Configure the HTTP server in
config.toml. Thecodex mcp addcommand only supports STDIO servers. - Type
/mcpin a Codex session to inspect server status. - Raise
startup_timeout_secto30or60if startup times out.
Kiro does not connect
- Save the MCP config and wait a few seconds. Kiro reloads it without a restart.
- Confirm the workspace file is
.kiro/settings/mcp.jsonor the user file is~/.kiro/settings/mcp.json. - Open the command palette, search for MCP, and open the config from Kiro to confirm you edited the active file.
- Environment variables must exist before Kiro starts. Restart Kiro after changing your shell environment.
- Open the MCP server view to inspect connection status and reconnect the server.
IOC lookup tool not found
Use ioc_lookup. Older prompts may refer to get_ioc_intel, which has been
replaced. No extra GTI credential is required.
GTI tools are missing or return errors
- Confirm you use the hosted
https://api.cloudsek.com/mcpendpoint. - If tools appear but calls fail, wait one minute and retry in case the GTI service is temporarily unavailable.
- Self-hosted deployments require the server administrator to configure
GTI_MCP_URL. - Contact the CloudSEK integrations team if the issue continues.
Read tools work, but updates fail
Check the request before retrying:
- Use a token issued from 30 July 2026 or later. Earlier tokens are read-only on write routes; rotate under Integrations → Alerts API → Rotate Token.
- Use an incident display ID such as
XVA-1234, not an internal UUID. - Use the event record identifier returned by CloudSEK tools for event updates.
- Use exact status values and casing.
ClosedResolvedis valid;closed resolvedis not. - Use
P0,P1, orP2for incident priority. - Do not set event priority. Event severity is read-only.
- Set a closed status when requesting event remediation.
- On
429, wait for the retry period before sending the request again. Bulk writes have a separate, lower rate limit than single-record writes.
A write succeeded, but nothing changed
Single-record writes are idempotent. If the current value already matches the
request, the result can show changed: false. Check the current snapshot and
the returned operation ID.
Identical comments on the same record are deduplicated and return the earlier operation ID. Change the wording only when you intend to add a separate comment.
Some modules rescan assets and create a newer event in the same series. An update against a stale event identifier can be redirected to the latest event. The response states when this happens.
A bulk job looks incomplete
Bulk updates run asynchronously:
- Pass the returned
job_idtoget_job_status. - Poll until the job reaches a final state.
- Review successful, skipped, and failed records.
- Retry only failed records after correcting the cause.
A record skipped because it already has the target value is a successful no-op. If two fields needed changes, confirm that two separate jobs were created and checked.
Token expired or was rotated
- Create or rotate the token under CloudSEK Platform → Integrations → Alerts API.
- Update every client config or environment variable that uses it.
- Restart the terminal or source its shell profile when environment variables changed.
- Fully quit and reopen Claude Desktop. Kiro reloads saved config files, but it must restart when its process environment changes.