@mcpjam/cli 6.1.0 or later on Node.js 22 or later, and @mcpjam/sdk 10.3.0 or later. Older releases ignore the settings file, so pin these versions where the lock matters.
Which server
The first source that names a server wins. A locked IT settings file overrides everything below it.
Every command that can contact MCPJam (it accepts
--api-url, or it uploads results) decides its server when it starts, before it contacts MCPJam, an MCP server or a model. If MCPJAM_API_URL and MCPJAM_BASE_URL name different servers, the command exits 2 before any request.
Servers are compared after normalizing the scheme, host case, default port and trailing slash, so https://MCPJam.acme.com:443/api/v1/ and https://mcpjam.acme.com/api/v1 are the same server. An address with credentials, a query or a fragment is refused (exit 2), and the error masks those parts.
The IT settings file
Install the file at the fixed path for the platform. No environment variable can point the CLI at a different file.root-owned with mode 644 on macOS and Linux. Standard users cannot write to C:\Program Files by default.
The file is invalid when it is not JSON, when
version, apiUrl or lock is missing or has the wrong type, when version is not 1, when it has any other key, when it cannot be read, when apiUrl has credentials, a query or a fragment, or when apiUrl uses plain http:// to a host other than a loopback address.
Saved logins and API keys
What the lock covers
--api-header values, for an edge authenticator in front of your server, are sent on MCPJam API requests and the CLI login settings request only. They never go to the sign-in provider or follow a redirect.
Corporate proxy
WhenHTTPS_PROXY or HTTP_PROXY is set (either case), the CLI process sends its fetch requests through the proxy and honors NO_PROXY: MCPJam’s API, model providers and MCP servers over HTTP. HTTPS_PROXY covers https destinations and HTTP_PROXY covers http ones; with only HTTP_PROXY set, https requests use it too. localhost, 127.0.0.1 and [::1] always connect directly, so local MCP servers and the local Inspector keep working. A value without a scheme, such as proxy.corp.com:8080, means http://; a value that is not an http(s) URL is ignored with a warning. Two connections do not use the proxy yet: the relay connection of mcpjam cloud tunnel and the mcpjam oauth debugging proxy.
The update check runs in a separate short-lived process that uses Node.js’s own proxy support. On Node.js older than 22.21, or 24.x older than 24.5, the check is skipped while a proxy is set rather than sent directly.
For a TLS-inspecting proxy or a private CA, trust its root certificate the Node.js way: NODE_EXTRA_CA_CERTS=/path/to/ca.pem, or, on Node.js 22.15 or later, NODE_OPTIONS=--use-system-ca to use the system store; older releases refuse to start with that option. Set either in the environment the CLI starts in.
As a library, the SDK never changes the process-wide proxy. Configure your own Node.js process, for example with NODE_USE_ENV_PROXY=1 on Node.js 22.21 or later, or 24.5 or later; on older releases, install a proxy-aware dispatcher such as undici’s EnvHttpProxyAgent.
Check the setup
mcpjam cloud status shows the server and where it came from, without calling the network:
Limits
- The lock prevents mistakes; it is not a security boundary. An older CLI, an edited install, a hand-built
PlatformApiClient, or@mcpjam/sdk/model-factoryimported on its own ignores it. Enforce the boundary with your firewall. - A server under a path prefix (
https://acme.com/mcpjam/api/v1) is not supported. - These rules cover the CLI and the SDK’s Node entry points, not the MCPJam web app.
mcpjam xaaand the OAuth debugging defaults still reference metadata documents onapp.mcpjam.comandwww.mcpjam.com.

