Skip to main content
PATCH
Update a client

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

Edit a client. Provide at least one of name, config (whole-config replacement) or set (named fields); config and set are mutually exclusive. Config edits require expectedConfigId and renames require expectedName, so a concurrent edit is rejected rather than overwritten.

name
string
required

New display name.

Minimum string length: 1
expectedName
string

The name you last read for this client. REQUIRED whenever the request sends name: a rename does not rotate the config, so expectedConfigId cannot detect a concurrent one. A mismatch is 409 CONFLICT carrying details.currentName.

Minimum string length: 1
expectedConfigId
string

The configId you last read for this client. REQUIRED whenever the request changes the config (config or set): without it 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
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.

config
object

Replacement client config v2. Replaces the config wholesale; use set to change named fields instead.

set
object

Named fields to change, applied over the client's current config INSIDE the write transaction. Absent always means keep. null means "make it go away", and what that means depends on the field: a required field resets to its documented default, an optional one clears to absent. Object-valued fields are whole-object replacements, not merges — to change a deep knob, read the client, overlay the sub-object, and send it back whole. hostStyle, clientCapabilities, hostContext and server membership are deliberately not settable here (use a whole-config replacement, or the servers operation).

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.