Skip to main content

Troubleshooting JAMS MCP

Connection Issues

If your client says it can't connect to JAMS, check the client's MCP Log and then review the error messages.

Read the Client's MCP Log First

If the client cannot connect at all, one common cause is TLS certificate trust on the user's machine. Confirm it was configured as described in Enabling JAMS MCP.

Most TLS/auth issues only appear there, not in the JAMS server logs.

  • Claude Code: Re-run a tool from the terminal and read the mcp-remote stderr.
  • Claude Desktop: Open Settings | Developer | Open MCP Log Folder | mcp-server-JAMS.log.
  • Cursor: Open %APPDATA%\Cursor\logs\
  • VS Code: Open Output panel | MCP channel.

Common Error Messages and What They Mean

MessageDescription
"Unable to verify the first certificate"
"Self-signed certificate in certificate chain"
"Unable to get local issuer certificate"
The cert bundle isn't being found. Verify that Test-Path C:\Program Files\JAMS\Shared\JAMS MCP\ca-bundle.pem returns True and that NODE_EXTRA_CA_CERTS is set correctly in your client configuration. If you used Option A, confirm NODE_OPTIONS=--use-system-ca is present in your client's env block and that your Node version is 23.8 or newer.
"Code verifier does not match code challenge"
(Claude Desktop only)
The one-time manual sign-in was skipped. Run the manual pre-authentication in the Claude Desktop section of Enabling JAMS MCP.
ENOENT for npxCheck that Node.js is installed and npx is on PATH (Get-Command npx in PowerShell). On Claude Desktop, this is often caused by %APPDATA% not reaching the child process. Make sure the APPDATA entry is present in your configuration's environment block. See Enabling JAMS MCP.
Environment variables are not reaching the bridge (Electron clients)Cursor and VS Code launched from a desktop shortcut sometimes don't propagate environment variables to subprocesses. Launch the client from a terminal where the variable is set (e.g. open Cursor or VS Code from a shell), rather than from a desktop shortcut.

Reconnection Issue

Symptom

You initiate a connection (Claude Code /mcp, or Connect in Cursor/VS Code), the browser opens for JAMS Web Client login, and you close it without signing in. On the next attempt, the browser does not reopen and the client loops on OAuth discovery and every POST /mcp returns 401.

Cause

When you abandon the JAMS Web Client login, the mcp-remote Node subprocess remains alive and holds its OAuth callback port. The next connection attempt spawns a new mcp-remote process that cannot bind the same port (EADDRINUSE), so the callback listener never starts, no browser opens, and no token is obtained. This is a known mcp-remote behavior, not a JAMS Web Client issue.

Solution

  1. Kill the stale mcp-remote process (PowerShell):
Get-CimInstance Win32_Process -Filter "Name = 'node.exe'" |
Where-Object { $_.CommandLine -like '*mcp-remote*' } |
ForEach-Object { Stop-Process -Id $_.ProcessId -Force }

If no other Node apps are running, you can also use:

taskkill /F /IM node.exe
  1. Reconnect. Re-run the client's connect step (Claude Code /mcp, or Connect in Cursor/VS Code). The browser prompt returns and authentication completes normally.
  2. If it is still looping, clear the cached authentication state and reconnect once more.
important

This clears cached authentication for all MCP connections, not just JAMS.

Remove-Item -Recurse -Force "$env:USERPROFILE\.mcp-auth" -ErrorAction SilentlyContinue

Additional Troubleshooting

SymptomPossible Solution
It asks me to sign in over and over.The token cache was cleared, your token was revoked, or mcp-remote was upgraded to a new major version. Re-authenticate as described in Enabling JAMS MCP.
It gives me wrong answers.This is usually the LLM, not JAMS. Verify the data in the JAMS Web Client directly and refine your prompt. See Using JAMS MCP.