SessionStartParams
session/start params.
Fields and variants
Section titled “Fields and variants”approvalModecommandIdconfigmodelIdpermissionProfileproviderIdsessionIdworkspaceRootworkspaceRootsworktree— Experimental
Source
schema/msp/experimental/msp.schema.json#/types/SessionStartParams
{ "description": "`session/start` params.", "properties": { "approvalMode": { "anyOf": [ { "$ref": "#/$defs/ApprovalMode" }, { "type": "null" } ], "description": "The session's starting approval mode; server default when omitted or\nexplicit `null` — both spellings select the default.\nSelect, never create — the value names a mode the host's configuration\nalready defines. This is the only surface that\ndeclares a non-interactive run's policy." }, "commandId": { "description": "The idempotency handle (UUIDv7). Required; the server never\nmints one.", "type": "string" }, "config": { "$ref": "#/$defs/SessionConfig", "description": "Reserved for per-session overrides owned by a future Configuration\nsection. admits only its `mcpServers` member." }, "modelId": { "description": "Initial model; server default when omitted.", "type": "string" }, "permissionProfile": { "description": "The new session's initial permission profile: a profile id the host catalog already\nadmits — the rows `permissionProfile/list` serves without\n`sessionId`. Select, never create. Omitted means today's behavior: the\nhost's configured default under native admission, unchanged. An id\nthe catalog does not carry, or one it serves unavailable, refuses the\nstart `commandRejected` (-32030; `permission_profile_unknown` /\n`permission_profile_unavailable`) before any durable byte, and an\nephemeral host refuses any id (`permission_profile_ephemeral_fixed`).\n`session/fork` does not admit the member; `session/resume` admits it\nas the launch pick. Explicit `null` is invalid\nparams: the set of members that tolerate `null` is\nclosed and excludes this one, exactly as it excludes `workspaceRoots`.", "type": "string" }, "providerId": { "description": "Initial provider routing; server default when omitted or explicit\n`null` — both spellings select the default.", "type": [ "string", "null" ] }, "sessionId": { "description": "Exact identity for this new root session. When omitted the server\nmints a UUIDv7. This field never selects an existing session: a\nretained or reserved id is rejected `commandRejected` with reason\n`session_id_conflict`.", "type": "string" }, "workspaceRoot": { "description": "Absolute path, folded into the first metadata record.", "type": "string" }, "workspaceRoots": { "description": "The session's initial runtime workspace-root set: ordered absolute\ncanonical existing directory paths; the first root is the CWD and\nplays the primary-root role; every root receives the ADR 11237\n`:workspace_roots` rules; extra roots grant no Project Trust. When\n`workspaceRoot` is also present the two must name the same folder,\ncompared on canonical forms (the raw `workspaceRoot` is\ncanonicalized first; ADR 37313 D9), or the request is invalid\nparams, and so is explicit `null`. Omitted preserves single-root\nbehavior.", "items": { "type": "string" }, "type": "array" }, "worktree": { "$ref": "#/$defs/WorktreeStartRequest", "description": "attach an existing one. **Experimental** (`session/start.worktree`;\nunopted callers are refused `-32602`). Absent means no worktree —\nthe start proceeds exactly as today.", "x-msp-descriptor": "session/start.worktree", "x-msp-stability": "experimental" } }, "required": [ "commandId" ], "type": "object"}