Replace a client's servers
Replaces the client’s required and optional saved-server attachments without round-tripping the whole config. Composed server-side from the client’s current config, so every other setting is preserved — and expectedConfigId is required so two concurrent server replacements cannot silently lose one.
Authorizations
MCPJam API key (sk_…). Create one at Settings → API keys. Guest sessions cannot use the API, and API keys cannot manage other API keys.
Path Parameters
ID of the hosted project that contains the server.
Client name or ID. A name is matched case-insensitively and must be unique in the project; an ambiguous name is refused with 409 CONFLICT listing the candidate ids rather than resolved to one of them.
Body
Replaces the client's server attachments wholesale. Every id must name a live server in the same project. Per-server connection overrides are trimmed to the surviving selection.
The configId you last read for this client. ALWAYS required here: this operation rewrites the config, and without the token a write composed from a stale read silently reverts whatever landed in between. A mismatch is 409 CONFLICT carrying details.currentConfigId.
1Attached but not required to connect.
The impact you last read for this client. Optional, and checked transactionally when sent — a consumer added or removed since you read it makes the write conflict (details.currentImpact) instead of quietly affecting more than you were told it would.
Response
The updated client settings.
A client plus its resolved config (model, capabilities, host context, MCP profile) and the read-backs an editor needs.
Client config v2 DTO. Opaque object; shape mirrors the inspector's client editor.
The concurrency token — see Client.configId.
Unix epoch milliseconds.
Unix epoch milliseconds.
What a config edit to this client would follow. These are the DURABLE consumers that re-resolve the client's current config; past runs, per-turn traces and pinned eval-suite snapshots hold a config id and are unaffected. Direct playground and client-chat use follows the edit too and has no row to count.

