Skip to content

session/start

Creates a brand-new session, loads it on this host, durably records the start, and auto-subscribes this connection.

Type: SessionStartParams

session/start params.

Field Type Stability Presence Description
approvalMode ApprovalMode | null optional The session’s starting approval mode; server default when omitted or explicit null — both spellings select the default. Select, never create — the value names a mode the host’s configuration already defines. This is the only surface that declares a non-interactive run’s policy.
commandId string required The idempotency handle (UUIDv7). Required; the server never mints one.
config SessionConfig optional Reserved for per-session overrides owned by a future Configuration section. admits only its mcpServers member.
modelId string optional Initial model; server default when omitted.
permissionProfile string optional The new session’s initial permission profile: a profile id the host catalog already admits — the rows permissionProfile/list serves without sessionId. Select, never create. Omitted means today’s behavior: the host’s configured default under native admission, unchanged. An id the catalog does not carry, or one it serves unavailable, refuses the start commandRejected (-32030; permission_profile_unknown / permission_profile_unavailable) before any durable byte, and an ephemeral host refuses any id (permission_profile_ephemeral_fixed). session/fork does not admit the member; session/resume admits it as the launch pick. Explicit null is invalid params: the set of members that tolerate null is closed and excludes this one, exactly as it excludes workspaceRoots.
providerId string | null optional Initial provider routing; server default when omitted or explicit null — both spellings select the default.
sessionId string optional Exact identity for this new root session. When omitted the server mints a UUIDv7. This field never selects an existing session: a retained or reserved id is rejected commandRejected with reason session_id_conflict.
workspaceRoot string optional Absolute path, folded into the first metadata record.
workspaceRoots string[] optional The session’s initial runtime workspace-root set: ordered absolute canonical existing directory paths; the first root is the CWD and plays the primary-root role; every root receives the ADR 11237 :workspace_roots rules; extra roots grant no Project Trust. When workspaceRoot is also present the two must name the same folder, compared on canonical forms (the raw workspaceRoot is canonicalized first; ADR 37313 D9), or the request is invalid params, and so is explicit null. Omitted preserves single-root behavior.
worktree WorktreeStartRequest Experimental optional attach an existing one. Experimental (session/start.worktree; unopted callers are refused -32602). Absent means no worktree — the start proceeds exactly as today.
Source

schema/msp/experimental/msp.schema.json#/methods/session~2Fstart

{
"description": "Creates a brand-new session, loads it on this host, durably records the start, and auto-subscribes this connection.",
"params": {
"$ref": "#/$defs/SessionStartParams"
},
"result": {
"$ref": "#/$defs/SessionStartResult"
}
}