Skip to main content
POST
Replace a client's servers

Authorizations

Authorization
string
header
required

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

projectId
string
required

ID of the hosted project that contains the server.

client
string
required

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

application/json

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.

serverIds
string[]
required
expectedConfigId
string
required

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.

Minimum string length: 1
optionalServerIds
string[]

Attached but not required to connect.

expectedImpact
object

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.

id
string
required
name
string
required
config
object
required

Client config v2 DTO. Opaque object; shape mirrors the inspector's client editor.

ownerScope
object | null
required
configId
string

The concurrency token — see Client.configId.

hasComputer
boolean
createdAt
number

Unix epoch milliseconds.

updatedAt
number

Unix epoch milliseconds.

impact
object

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.