Skip to content

SessionStartParams

session/start params.

  • approvalMode
  • commandId
  • config
  • modelId
  • permissionProfile
  • providerId
  • sessionId
  • workspaceRoot
  • workspaceRoots
  • worktree — 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"
}