Discovery, OAuth, project operations, and exact project MCP handoff for Spala backend projects.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Required for raw Streamable HTTP JSON-RPC clients.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
AUTH REQUIRED; WRITES MISSING ACCOUNT DATA TO THE SPALA CONTROL PLANE. Fills missing first and last name fields and creates the first company or workspace organization when none exists. Invoke only with real account and organization values supplied by the user.
Account holder last name. Required when account_status reports lastName missing.
Account holder first name. Required when account_status reports firstName missing.
Company or workspace name. Required when account_status reports companyName missing.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
AUTH REQUIRED; WRITES MISSING ACCOUNT DATA TO THE SPALA CONTROL PLANE. Fills missing first and last name fields and creates the first company or workspace organization when none exists. Invoke only with real account and organization values supplied by the user.
| Argument | Type | Description |
|---|---|---|
| lastName | string | Account holder last name. Required when account_status reports lastName missing. |
| firstName | string | Account holder first name. Required when account_status reports firstName missing. |
| companyName | string | Company or workspace name. Required when account_status reports companyName missing. |
{
"type": "object",
"properties": {
"lastName": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Account holder last name. Required when account_status reports lastName missing."
},
"firstName": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Account holder first name. Required when account_status reports firstName missing."
},
"companyName": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Company or workspace name. Required when account_status reports companyName missing."
}
},
"description": "Complete missing Spala account data after OAuth. Supply only real values confirmed by the user or confidently known from the current work context.",
"additionalProperties": false
}AUTH REQUIRED; READ-ONLY. Verifies the current public MCP OAuth identity and account readiness. Returns the authenticated identity, available organizations, and exact missing account fields without exposing OAuth or dashboard credentials.
No arguments.
{
"type": "object",
"properties": {},
"description": "No arguments. Call this tool with an empty object.",
"additionalProperties": false
}Lists public Spala addons and integrations matching an optional query. Curated public subset; use project addons_search/addons_get to verify availability and installed status. Invoke for Telegram bots and CRM, webhooks, outbound HTTP API calls, transactional email, media uploads, and realtime messaging. Returns addon ids, names, descriptions, and tags.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of catalog entries to return. |
| query | string | Optional filter phrase for matching public Spala templates or addons by name, tag, or use case. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Maximum number of catalog entries to return."
},
"query": {
"type": "string",
"default": "",
"description": "Optional filter phrase for matching public Spala templates or addons by name, tag, or use case."
}
},
"description": "Optional catalog search and result limit for public Spala planning resources.",
"additionalProperties": false
}Searches the public Spala agent-facing documentation index by query. Invoke for setup, OAuth, installer, public-versus-project MCP, pricing, limits, security, templates, addons, native blocks, filters, Custom Code alternatives, or project handoff questions. Returns ranked docs entries with URLs and summaries.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of ranked documentation results to return. |
| query | string | Optional search phrase. Use words such as auth, OAuth, MCP, templates, addons, pricing, limits, frontend handoff, or project handoff. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 5,
"maximum": 20,
"minimum": 1,
"description": "Maximum number of ranked documentation results to return."
},
"query": {
"type": "string",
"default": "",
"description": "Optional search phrase. Use words such as auth, OAuth, MCP, templates, addons, pricing, limits, frontend handoff, or project handoff."
}
},
"description": "Optional text search and result limit for public Spala documentation.",
"additionalProperties": false
}AUTH REQUIRED; WRITES A NEW SPALA ORGANIZATION FOR THE SIGNED-IN ACCOUNT. Creates an additional company or workspace organization using the supplied name.
| Argument | Type | Description |
|---|---|---|
| name* | string | Human-readable company or workspace name. |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Human-readable company or workspace name."
}
},
"description": "Create an additional Spala organization for the authenticated account.",
"additionalProperties": false
}AUTH REQUIRED; IDEMPOTENT PROJECT CONNECTION WRITE. Prepares one accessible Spala project for agent access. Accepts one installer client (codex, roo, claude-code, cursor, a2a); when omitted, returns a client-selection response without executable arguments. Pending projects return project_provisioning with status 202 and retryAfterSeconds; retry the same call within the stated budget. Active projects do not need a manifest before connect. Returns a client-specific workspace binding plan: protected one-time bootstrap for Codex, Roo, and Cursor; verifier-bound delegated bootstrap for Claude Code.
| Argument | Type | Description |
|---|---|---|
| client | string | Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan. |
| profile | string | Set to guided to preserve the compact build-and-test surface through project handoff. Omit for the default full compatibility surface. |
| projectId | string | Exact Spala project ID. Mutually exclusive with subdomain. |
| subdomain | string | Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId. |
| organizationId | string | Optional organization ID returned for the signed-in account. |
| bootstrapChallenge | string | S256 challenge returned by project prepare. The verifier remains only in the local credential store. |
AUTH REQUIRED; WRITES TO THE SPALA CONTROL PLANE. Creates a real Spala project with the supplied project name in an accessible organization. Provisioning is asynchronous; follow the returned retry interval and bounded retry guidance, never create a duplicate. Accepts an organization id when multiple organizations are available and automatically scopes a sole organization. This operation is not idempotent.
| Argument | Type | Description |
|---|---|---|
| name* | string | Human-readable name for the new Spala project. |
| organizationId | string | Organization ID returned for the signed-in account. Optional only when exactly one organization is available. |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Human-readable name for the new Spala project."
},
"organizationId": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Organization ID returned for the signed-in account. Optional only when exactly one organization is available."
}
},
"description": "Create a real Spala project in an organization available to the authenticated user.",
"additionalProperties": false
}AUTH REQUIRED; IDEMPOTENT PROJECT CONNECTION WRITE. Prepares one accessible project and returns its exact platform-provided project MCP manifest URL, MCP URL, and client-specific workspace binding plan. Accepts one installer client (codex, roo, claude-code, cursor, a2a); when omitted, returns a client-selection response without executable arguments.
| Argument | Type | Description |
|---|---|---|
| client | string | Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan. |
| profile | string | Set to guided to preserve the compact build-and-test surface through project handoff. Omit for the default full compatibility surface. |
| projectId | string | Exact Spala project ID. Mutually exclusive with subdomain. |
| subdomain | string | Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId. |
| organizationId | string | Optional organization ID returned for the signed-in account. |
| bootstrapChallenge | string | S256 challenge returned by project prepare. The verifier remains only in the local credential store. |
| bootstrapRequestId | string |
For embeddings and similarity search, use Vector fields and native Similarity Search with owner/tenant filters. Do not store search embeddings as JSON arrays or compute cosine similarity in Custom Code. Keep embedding dimensions/model consistent. If pgvector is unavailable, request database administrator setup; do not substitute JSON. Migrating existing embeddings requires approval. Includes native-block and filter guidance, addon discovery, and the requirement to justify narrowly scoped Custom Code. AUTH REQUIRED; READ-ONLY. Returns documented MCP handoff fields for one accessible project without exposing tokens, private source code, unrelated customer data, or executable installer arguments.
| Argument | Type | Description |
|---|---|---|
| projectId | string | Exact Spala project ID. Mutually exclusive with subdomain. |
| subdomain | string | Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId. |
| organizationId | string | Optional organization ID returned for the signed-in account. |
{
"type": "object",
"oneOf": [
{
"type": "object",
"required": [
"projectId"
],
"properties": {
"projectId": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Exact Spala project ID. Mutually exclusive with subdomain."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"subdomain"
],
"properties": {
"subdomain": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId."
},
"organizationId": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Optional organization ID returned for the signed-in account."
}
},
"additionalProperties": false
}
],
"properties": {
"projectId": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Exact Spala project ID. Mutually exclusive with subdomain."
},
"subdomain": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId."
},
"organizationId": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Optional organization ID returned for the signed-in account."
}
},
"description": "Provide exactly one project selector: projectId or subdomain. organizationId is optional when selecting by subdomain.",
"additionalProperties": false
}AUTH REQUIRED; READ-ONLY. Lists projects accessible to the authenticated Spala user in one organization. Accepts an organization id when multiple organizations are available and automatically scopes a sole organization.
| Argument | Type | Description |
|---|---|---|
| organizationId | string | Organization ID returned for the signed-in account. Optional only when exactly one organization is available. |
{
"type": "object",
"properties": {
"organizationId": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Organization ID returned for the signed-in account. Optional only when exactly one organization is available."
}
},
"description": "List projects for an organization available to the authenticated user.",
"additionalProperties": false
}AUTH REQUIRED; IDEMPOTENT PROJECT CONNECTION WRITE. Compatibility alias for project_connect. Prepares one accessible project and returns the same client-specific workspace binding contract as project_connect.
| Argument | Type | Description |
|---|---|---|
| client | string | Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan. |
| profile | string | Set to guided to preserve the compact build-and-test surface through project handoff. Omit for the default full compatibility surface. |
| projectId | string | Exact Spala project ID. Mutually exclusive with subdomain. |
| subdomain | string | Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId. |
| organizationId | string | Optional organization ID returned for the signed-in account. |
| bootstrapChallenge | string | S256 challenge returned by project prepare. The verifier remains only in the local credential store. |
| bootstrapRequestId | string | Non-secret local request ID returned by project prepare. Claude Code only. |
Returns machine-readable Spala onboarding information for MCP clients. Includes product scope, OAuth metadata, supported installer client identifiers, authenticated project-handoff status, workflow stages, and canonical links.
| Argument | Type | Description |
|---|---|---|
| installerVersion | string | Optional project proxy installer version already known from its registration command. Do not supply the Claude/Codex application version or read credential stores. |
{
"type": "object",
"properties": {
"installerVersion": {
"type": "string",
"maxLength": 64,
"description": "Optional project proxy installer version already known from its registration command. Do not supply the Claude/Codex application version or read credential stores."
}
},
"additionalProperties": false
}Returns a machine-readable routing map for Spala MCP clients. Identifies public and authenticated tools, supported installer clients, OAuth endpoints, project handoff rules, and project-MCP entry points.
No arguments.
{
"type": "object",
"properties": {},
"description": "No arguments. Call this tool with an empty object.",
"additionalProperties": false
}Returns a human-readable overview of Spala, canonical start URLs, and the boundary between public discovery and project-scoped backend MCPs. Invoke for product, setup, or integration orientation. This read-only tool requires no authentication and does not access or modify project data.
No arguments.
{
"type": "object",
"properties": {},
"description": "No arguments. Call this tool with an empty object.",
"additionalProperties": false
}AUTH REQUIRED; READ-ONLY STARTUP. Invoke after OAuth to begin Spala account or project setup. Returns a versioned startup phase with account readiness, organizations, safely scoped project discovery, and one explicit next action. Reports missing account fields, automatically scopes a sole organization, and returns all accessible choices when multiple organizations exist.
No arguments.
{
"type": "object",
"properties": {},
"description": "No arguments. Call this tool with an empty object.",
"additionalProperties": false
}Lists public Spala backend templates matching an optional query. Invoke to discover available backend starting points such as marketplace, dashboard API, reservation, inventory, or document management. Returns template ids, names, descriptions, and tags.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of catalog entries to return. |
| query | string | Optional filter phrase for matching public Spala templates or addons by name, tag, or use case. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Maximum number of catalog entries to return."
},
"query": {
"type": "string",
"default": "",
"description": "Optional filter phrase for matching public Spala templates or addons by name, tag, or use case."
}
},
"description": "Optional catalog search and result limit for public Spala planning resources.",
"additionalProperties": false
}| bootstrapRequestId | string | Non-secret local request ID returned by project prepare. Claude Code only. |
{
"type": "object",
"oneOf": [
{
"type": "object",
"required": [
"projectId"
],
"properties": {
"client": {
"enum": [
"codex",
"roo",
"claude-code",
"cursor",
"a2a"
],
"type": "string",
"description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan."
},
"profile": {
"enum": [
"guided"
],
"type": "string",
"description": "Set to guided to preserve the compact build-and-test surface through project handoff. Omit for the default full compatibility surface."
},
"projectId": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Exact Spala project ID. Mutually exclusive with subdomain."
},
"bootstrapChallenge": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{43}$",
"description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store."
},
"bootstrapRequestId": {
"type": "string",
"pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
"description": "Non-secret local request ID returned by project prepare. Claude Code only."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"subdomain"
],
"properties": {
"client": {
"enum": [
"codex",
"roo",
"claude-code",
"cursor",
"a2a"
],
"type": "string",
"description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan."
},
"profile": {
"enum": [
"guided"
],
"type": "string",
"description": "Set to guided to preserve the compact build-and-test surface through project handoff. Omit for the default full compatibility surface."
},
"subdomain": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId."
},
"organizationId": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Optional organization ID returned for the signed-in account."
},
"bootstrapChallenge": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{43}$",
"description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store."
},
"bootstrapRequestId": {
"type": "string",
"pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
"description": "Non-secret local request ID returned by project prepare. Claude Code only."
}
},
"additionalProperties": false
}
],
"properties": {
"client": {
"enum": [
"codex",
"roo",
"claude-code",
"cursor",
"a2a"
],
"type": "string",
"description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan."
},
"profile": {
"enum": [
"guided"
],
"type": "string",
"description": "Set to guided to preserve the compact build-and-test surface through project handoff. Omit for the default full compatibility surface."
},
"projectId": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Exact Spala project ID. Mutually exclusive with subdomain."
},
"subdomain": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId."
},
"organizationId": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Optional organization ID returned for the signed-in account."
},
"bootstrapChallenge": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{43}$",
"description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store."
},
"bootstrapRequestId": {
"type": "string",
"pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
"description": "Non-secret local request ID returned by project prepare. Claude Code only."
}
},
"description": "Provide exactly one project selector and a supported agentic workspace client (codex, roo, claude-code, or cursor) to receive executable installer argv.",
"additionalProperties": false
}| Non-secret local request ID returned by project prepare. Claude Code only. |
{
"type": "object",
"oneOf": [
{
"type": "object",
"required": [
"projectId"
],
"properties": {
"client": {
"enum": [
"codex",
"roo",
"claude-code",
"cursor",
"a2a"
],
"type": "string",
"description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan."
},
"profile": {
"enum": [
"guided"
],
"type": "string",
"description": "Set to guided to preserve the compact build-and-test surface through project handoff. Omit for the default full compatibility surface."
},
"projectId": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Exact Spala project ID. Mutually exclusive with subdomain."
},
"bootstrapChallenge": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{43}$",
"description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store."
},
"bootstrapRequestId": {
"type": "string",
"pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
"description": "Non-secret local request ID returned by project prepare. Claude Code only."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"subdomain"
],
"properties": {
"client": {
"enum": [
"codex",
"roo",
"claude-code",
"cursor",
"a2a"
],
"type": "string",
"description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan."
},
"profile": {
"enum": [
"guided"
],
"type": "string",
"description": "Set to guided to preserve the compact build-and-test surface through project handoff. Omit for the default full compatibility surface."
},
"subdomain": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId."
},
"organizationId": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Optional organization ID returned for the signed-in account."
},
"bootstrapChallenge": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{43}$",
"description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store."
},
"bootstrapRequestId": {
"type": "string",
"pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
"description": "Non-secret local request ID returned by project prepare. Claude Code only."
}
},
"additionalProperties": false
}
],
"properties": {
"client": {
"enum": [
"codex",
"roo",
"claude-code",
"cursor",
"a2a"
],
"type": "string",
"description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan."
},
"profile": {
"enum": [
"guided"
],
"type": "string",
"description": "Set to guided to preserve the compact build-and-test surface through project handoff. Omit for the default full compatibility surface."
},
"projectId": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Exact Spala project ID. Mutually exclusive with subdomain."
},
"subdomain": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId."
},
"organizationId": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Optional organization ID returned for the signed-in account."
},
"bootstrapChallenge": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{43}$",
"description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store."
},
"bootstrapRequestId": {
"type": "string",
"pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
"description": "Non-secret local request ID returned by project prepare. Claude Code only."
}
},
"description": "Provide exactly one project selector and a supported agentic workspace client (codex, roo, claude-code, or cursor) to receive executable installer argv.",
"additionalProperties": false
}{
"type": "object",
"oneOf": [
{
"type": "object",
"required": [
"projectId"
],
"properties": {
"client": {
"enum": [
"codex",
"roo",
"claude-code",
"cursor",
"a2a"
],
"type": "string",
"description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan."
},
"profile": {
"enum": [
"guided"
],
"type": "string",
"description": "Set to guided to preserve the compact build-and-test surface through project handoff. Omit for the default full compatibility surface."
},
"projectId": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Exact Spala project ID. Mutually exclusive with subdomain."
},
"bootstrapChallenge": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{43}$",
"description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store."
},
"bootstrapRequestId": {
"type": "string",
"pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
"description": "Non-secret local request ID returned by project prepare. Claude Code only."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"subdomain"
],
"properties": {
"client": {
"enum": [
"codex",
"roo",
"claude-code",
"cursor",
"a2a"
],
"type": "string",
"description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan."
},
"profile": {
"enum": [
"guided"
],
"type": "string",
"description": "Set to guided to preserve the compact build-and-test surface through project handoff. Omit for the default full compatibility surface."
},
"subdomain": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId."
},
"organizationId": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Optional organization ID returned for the signed-in account."
},
"bootstrapChallenge": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{43}$",
"description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store."
},
"bootstrapRequestId": {
"type": "string",
"pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
"description": "Non-secret local request ID returned by project prepare. Claude Code only."
}
},
"additionalProperties": false
}
],
"properties": {
"client": {
"enum": [
"codex",
"roo",
"claude-code",
"cursor",
"a2a"
],
"type": "string",
"description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan."
},
"profile": {
"enum": [
"guided"
],
"type": "string",
"description": "Set to guided to preserve the compact build-and-test surface through project handoff. Omit for the default full compatibility surface."
},
"projectId": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Exact Spala project ID. Mutually exclusive with subdomain."
},
"subdomain": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId."
},
"organizationId": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Optional organization ID returned for the signed-in account."
},
"bootstrapChallenge": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{43}$",
"description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store."
},
"bootstrapRequestId": {
"type": "string",
"pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
"description": "Non-secret local request ID returned by project prepare. Claude Code only."
}
},
"description": "Provide exactly one project selector and a supported agentic workspace client (codex, roo, claude-code, or cursor) to receive executable installer argv.",
"additionalProperties": false
}