Skip to main content
Glama

Spala Public MCP

Connect Spala Project

project_connect
DestructiveIdempotent

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. Returns a client-specific workspace binding plan: protected one-time bootstrap for Codex, Roo, and Cursor; verifier-bound delegated bootstrap for Claude Code.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
clientNoTarget MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.
profileNoSet to guided to preserve the compact build-and-test surface through project handoff. Omit for the default full compatibility surface.
projectIdNoExact Spala project ID. Mutually exclusive with subdomain.
subdomainNoExact project subdomain returned by the Spala projects API. Mutually exclusive with projectId.
organizationIdNoOptional organization ID returned for the signed-in account.
bootstrapChallengeNoS256 challenge returned by project prepare. The verifier remains only in the local credential store.
bootstrapRequestIdNoNon-secret local request ID returned by project prepare. Claude Code only.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
ruleNo
mcpUrlYes
handoffYes
projectYes
bootstrapYes
nextStepsNo
transportYes
serverNameYes
installPlanYes
toolProfileNo
workspaceOnlyNo
intentBoundaryNo
preparedByProjectBackendNo
bootstrapPreparedByProjectBackendNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "bootstrapChallenge": {
      -        "description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store.",
      -        "pattern": "^[A-Za-z0-9_-]{43}$",
      -        "type": "string"
      -      },
      -      "bootstrapRequestId": {
      -        "description": "Non-secret local request ID returned by project prepare. Claude Code only.",
      -        "pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
      -        "type": "string"
      -      },
      -      "client": {
      -        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      -        "enum": [
      -          "codex",
      -          "roo",
      -          "claude-code",
      -          "cursor",
      -          "a2a"
      -        ],
      -        "type": "string"
      -      },
      -      "projectId": {
      -        "description": "Exact Spala project ID. Mutually exclusive with subdomain.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "projectId"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "bootstrapChallenge": {
      -        "description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store.",
      -        "pattern": "^[A-Za-z0-9_-]{43}$",
      -        "type": "string"
      -      },
      -      "bootstrapRequestId": {
      -        "description": "Non-secret local request ID returned by project prepare. Claude Code only.",
      -        "pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
      -        "type": "string"
      -      },
      -      "client": {
      -        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      -        "enum": [
      -          "codex",
      -          "roo",
      -          "claude-code",
      -          "cursor",
      -          "a2a"
      -        ],
      -        "type": "string"
      -      },
      -      "organizationId": {
      -        "description": "Optional organization ID returned for the signed-in account.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "subdomain": {
      -        "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "subdomain"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "bootstrapChallenge": {
      +        "description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store.",
      +        "pattern": "^[A-Za-z0-9_-]{43}$",
      +        "type": "string"
      +      },
      +      "bootstrapRequestId": {
      +        "description": "Non-secret local request ID returned by project prepare. Claude Code only.",
      +        "pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
      +        "type": "string"
      +      },
      +      "client": {
      +        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      +        "enum": [
      +          "codex",
      +          "roo",
      +          "claude-code",
      +          "cursor",
      +          "a2a"
      +        ],
      +        "type": "string"
      +      },
      +      "profile": {
      +        "description": "Set to guided to preserve the compact build-and-test surface through project handoff. Omit for the default full compatibility surface.",
      +        "enum": [
      +          "guided"
      +        ],
      +        "type": "string"
      +      },
      +      "projectId": {
      +        "description": "Exact Spala project ID. Mutually exclusive with subdomain.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "projectId"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "bootstrapChallenge": {
      +        "description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store.",
      +        "pattern": "^[A-Za-z0-9_-]{43}$",
      +        "type": "string"
      +      },
      +      "bootstrapRequestId": {
      +        "description": "Non-secret local request ID returned by project prepare. Claude Code only.",
      +        "pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
      +        "type": "string"
      +      },
      +      "client": {
      +        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      +        "enum": [
      +          "codex",
      +          "roo",
      +          "claude-code",
      +          "cursor",
      +          "a2a"
      +        ],
      +        "type": "string"
      +      },
      +      "organizationId": {
      +        "description": "Optional organization ID returned for the signed-in account.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "profile": {
      +        "description": "Set to guided to preserve the compact build-and-test surface through project handoff. Omit for the default full compatibility surface.",
      +        "enum": [
      +          "guided"
      +        ],
      +        "type": "string"
      +      },
      +      "subdomain": {
      +        "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "subdomain"
      +    ],
      +    "type": "object"
      +  }
      +]
    • addedInput schema / properties / profile
      Added value: +{
      +  "description": "Set to guided to preserve the compact build-and-test surface through project handoff. Omit for the default full compatibility surface.",
      +  "enum": [
      +    "guided"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / toolProfile
      Added value: +{
      +  "enum": [
      +    "full",
      +    "guided"
      +  ],
      +  "type": "string"
      +}
  2. Changed3 schema fields changed
    • changedInput schema / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "bootstrapChallenge": {
      -        "description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store.",
      -        "pattern": "^[A-Za-z0-9_-]{43}$",
      -        "type": "string"
      -      },
      -      "bootstrapRequestId": {
      -        "description": "Non-secret local request ID returned by project prepare. Claude Code only.",
      -        "pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
      -        "type": "string"
      -      },
      -      "client": {
      -        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      -        "enum": [
      -          "codex",
      -          "roo",
      -          "claude-code",
      -          "cursor",
      -          "a2a"
      -        ],
      -        "type": "string"
      -      },
      -      "profile": {
      -        "description": "Optional project MCP tool profile. full preserves the complete compatibility surface; guided exposes the compact build-and-test surface. Defaults to full.",
      -        "enum": [
      -          "full",
      -          "guided"
      -        ],
      -        "type": "string"
      -      },
      -      "projectId": {
      -        "description": "Exact Spala project ID. Mutually exclusive with subdomain.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "projectId"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "bootstrapChallenge": {
      -        "description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store.",
      -        "pattern": "^[A-Za-z0-9_-]{43}$",
      -        "type": "string"
      -      },
      -      "bootstrapRequestId": {
      -        "description": "Non-secret local request ID returned by project prepare. Claude Code only.",
      -        "pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
      -        "type": "string"
      -      },
      -      "client": {
      -        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      -        "enum": [
      -          "codex",
      -          "roo",
      -          "claude-code",
      -          "cursor",
      -          "a2a"
      -        ],
      -        "type": "string"
      -      },
      -      "organizationId": {
      -        "description": "Optional organization ID returned for the signed-in account.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "profile": {
      -        "description": "Optional project MCP tool profile. full preserves the complete compatibility surface; guided exposes the compact build-and-test surface. Defaults to full.",
      -        "enum": [
      -          "full",
      -          "guided"
      -        ],
      -        "type": "string"
      -      },
      -      "subdomain": {
      -        "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "subdomain"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "bootstrapChallenge": {
      +        "description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store.",
      +        "pattern": "^[A-Za-z0-9_-]{43}$",
      +        "type": "string"
      +      },
      +      "bootstrapRequestId": {
      +        "description": "Non-secret local request ID returned by project prepare. Claude Code only.",
      +        "pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
      +        "type": "string"
      +      },
      +      "client": {
      +        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      +        "enum": [
      +          "codex",
      +          "roo",
      +          "claude-code",
      +          "cursor",
      +          "a2a"
      +        ],
      +        "type": "string"
      +      },
      +      "projectId": {
      +        "description": "Exact Spala project ID. Mutually exclusive with subdomain.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "projectId"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "bootstrapChallenge": {
      +        "description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store.",
      +        "pattern": "^[A-Za-z0-9_-]{43}$",
      +        "type": "string"
      +      },
      +      "bootstrapRequestId": {
      +        "description": "Non-secret local request ID returned by project prepare. Claude Code only.",
      +        "pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
      +        "type": "string"
      +      },
      +      "client": {
      +        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      +        "enum": [
      +          "codex",
      +          "roo",
      +          "claude-code",
      +          "cursor",
      +          "a2a"
      +        ],
      +        "type": "string"
      +      },
      +      "organizationId": {
      +        "description": "Optional organization ID returned for the signed-in account.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "subdomain": {
      +        "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "subdomain"
      +    ],
      +    "type": "object"
      +  }
      +]
    • removedInput schema / properties / profile
      Removed value: -{
      -  "description": "Optional project MCP tool profile. full preserves the complete compatibility surface; guided exposes the compact build-and-test surface. Defaults to full.",
      -  "enum": [
      -    "full",
      -    "guided"
      -  ],
      -  "type": "string"
      -}
    • removedOutput schema / properties / toolProfile
      Removed value: -{
      -  "enum": [
      -    "full",
      -    "guided"
      -  ],
      -  "type": "string"
      -}
  3. Changed3 schema fields changed
    • changedInput schema / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "bootstrapChallenge": {
      -        "description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store.",
      -        "pattern": "^[A-Za-z0-9_-]{43}$",
      -        "type": "string"
      -      },
      -      "bootstrapRequestId": {
      -        "description": "Non-secret local request ID returned by project prepare. Claude Code only.",
      -        "pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
      -        "type": "string"
      -      },
      -      "client": {
      -        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      -        "enum": [
      -          "codex",
      -          "roo",
      -          "claude-code",
      -          "cursor",
      -          "a2a"
      -        ],
      -        "type": "string"
      -      },
      -      "projectId": {
      -        "description": "Exact Spala project ID. Mutually exclusive with subdomain.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "projectId"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "bootstrapChallenge": {
      -        "description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store.",
      -        "pattern": "^[A-Za-z0-9_-]{43}$",
      -        "type": "string"
      -      },
      -      "bootstrapRequestId": {
      -        "description": "Non-secret local request ID returned by project prepare. Claude Code only.",
      -        "pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
      -        "type": "string"
      -      },
      -      "client": {
      -        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      -        "enum": [
      -          "codex",
      -          "roo",
      -          "claude-code",
      -          "cursor",
      -          "a2a"
      -        ],
      -        "type": "string"
      -      },
      -      "organizationId": {
      -        "description": "Optional organization ID returned for the signed-in account.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "subdomain": {
      -        "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "subdomain"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "bootstrapChallenge": {
      +        "description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store.",
      +        "pattern": "^[A-Za-z0-9_-]{43}$",
      +        "type": "string"
      +      },
      +      "bootstrapRequestId": {
      +        "description": "Non-secret local request ID returned by project prepare. Claude Code only.",
      +        "pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
      +        "type": "string"
      +      },
      +      "client": {
      +        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      +        "enum": [
      +          "codex",
      +          "roo",
      +          "claude-code",
      +          "cursor",
      +          "a2a"
      +        ],
      +        "type": "string"
      +      },
      +      "profile": {
      +        "description": "Optional project MCP tool profile. full preserves the complete compatibility surface; guided exposes the compact build-and-test surface. Defaults to full.",
      +        "enum": [
      +          "full",
      +          "guided"
      +        ],
      +        "type": "string"
      +      },
      +      "projectId": {
      +        "description": "Exact Spala project ID. Mutually exclusive with subdomain.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "projectId"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "bootstrapChallenge": {
      +        "description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store.",
      +        "pattern": "^[A-Za-z0-9_-]{43}$",
      +        "type": "string"
      +      },
      +      "bootstrapRequestId": {
      +        "description": "Non-secret local request ID returned by project prepare. Claude Code only.",
      +        "pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
      +        "type": "string"
      +      },
      +      "client": {
      +        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      +        "enum": [
      +          "codex",
      +          "roo",
      +          "claude-code",
      +          "cursor",
      +          "a2a"
      +        ],
      +        "type": "string"
      +      },
      +      "organizationId": {
      +        "description": "Optional organization ID returned for the signed-in account.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "profile": {
      +        "description": "Optional project MCP tool profile. full preserves the complete compatibility surface; guided exposes the compact build-and-test surface. Defaults to full.",
      +        "enum": [
      +          "full",
      +          "guided"
      +        ],
      +        "type": "string"
      +      },
      +      "subdomain": {
      +        "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "subdomain"
      +    ],
      +    "type": "object"
      +  }
      +]
    • addedInput schema / properties / profile
      Added value: +{
      +  "description": "Optional project MCP tool profile. full preserves the complete compatibility surface; guided exposes the compact build-and-test surface. Defaults to full.",
      +  "enum": [
      +    "full",
      +    "guided"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / toolProfile
      Added value: +{
      +  "enum": [
      +    "full",
      +    "guided"
      +  ],
      +  "type": "string"
      +}
  4. Changed3 schema fields changed
    • changedInput schema / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "client": {
      -        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      -        "enum": [
      -          "codex",
      -          "roo",
      -          "claude-code",
      -          "cursor",
      -          "a2a"
      -        ],
      -        "type": "string"
      -      },
      -      "projectId": {
      -        "description": "Exact Spala project ID. Mutually exclusive with subdomain.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "projectId"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "client": {
      -        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      -        "enum": [
      -          "codex",
      -          "roo",
      -          "claude-code",
      -          "cursor",
      -          "a2a"
      -        ],
      -        "type": "string"
      -      },
      -      "organizationId": {
      -        "description": "Optional organization ID returned for the signed-in account.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "subdomain": {
      -        "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "subdomain"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "bootstrapChallenge": {
      +        "description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store.",
      +        "pattern": "^[A-Za-z0-9_-]{43}$",
      +        "type": "string"
      +      },
      +      "bootstrapRequestId": {
      +        "description": "Non-secret local request ID returned by project prepare. Claude Code only.",
      +        "pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
      +        "type": "string"
      +      },
      +      "client": {
      +        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      +        "enum": [
      +          "codex",
      +          "roo",
      +          "claude-code",
      +          "cursor",
      +          "a2a"
      +        ],
      +        "type": "string"
      +      },
      +      "projectId": {
      +        "description": "Exact Spala project ID. Mutually exclusive with subdomain.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "projectId"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "bootstrapChallenge": {
      +        "description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store.",
      +        "pattern": "^[A-Za-z0-9_-]{43}$",
      +        "type": "string"
      +      },
      +      "bootstrapRequestId": {
      +        "description": "Non-secret local request ID returned by project prepare. Claude Code only.",
      +        "pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
      +        "type": "string"
      +      },
      +      "client": {
      +        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      +        "enum": [
      +          "codex",
      +          "roo",
      +          "claude-code",
      +          "cursor",
      +          "a2a"
      +        ],
      +        "type": "string"
      +      },
      +      "organizationId": {
      +        "description": "Optional organization ID returned for the signed-in account.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "subdomain": {
      +        "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "subdomain"
      +    ],
      +    "type": "object"
      +  }
      +]
    • addedInput schema / properties / bootstrapChallenge
      Added value: +{
      +  "description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store.",
      +  "pattern": "^[A-Za-z0-9_-]{43}$",
      +  "type": "string"
      +}
    • addedInput schema / properties / bootstrapRequestId
      Added value: +{
      +  "description": "Non-secret local request ID returned by project prepare. Claude Code only.",
      +  "pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
      +  "type": "string"
      +}
  5. Changed2 schema fields changed
    • changedInput schema / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "client": {
      -        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      -        "enum": [
      -          "codex",
      -          "roo",
      -          "claude-code",
      -          "cursor"
      -        ],
      -        "type": "string"
      -      },
      -      "projectId": {
      -        "description": "Exact Spala project ID. Mutually exclusive with subdomain.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "projectId"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "client": {
      -        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      -        "enum": [
      -          "codex",
      -          "roo",
      -          "claude-code",
      -          "cursor"
      -        ],
      -        "type": "string"
      -      },
      -      "organizationId": {
      -        "description": "Optional organization ID returned for the signed-in account.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "subdomain": {
      -        "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "subdomain"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "client": {
      +        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      +        "enum": [
      +          "codex",
      +          "roo",
      +          "claude-code",
      +          "cursor",
      +          "a2a"
      +        ],
      +        "type": "string"
      +      },
      +      "projectId": {
      +        "description": "Exact Spala project ID. Mutually exclusive with subdomain.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "projectId"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "client": {
      +        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      +        "enum": [
      +          "codex",
      +          "roo",
      +          "claude-code",
      +          "cursor",
      +          "a2a"
      +        ],
      +        "type": "string"
      +      },
      +      "organizationId": {
      +        "description": "Optional organization ID returned for the signed-in account.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "subdomain": {
      +        "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "subdomain"
      +    ],
      +    "type": "object"
      +  }
      +]
    • changedInput schema / properties / client / enum
      Previous value: -[
      -  "codex",
      -  "roo",
      -  "claude-code",
      -  "cursor"
      -]New value: +[
      +  "codex",
      +  "roo",
      +  "claude-code",
      +  "cursor",
      +  "a2a"
      +]
  6. Changed4 schema fields changed
    • changedInput schema / description
      Previous value: -"Provide exactly one project selector and a supported coding or A2A client."New value: +"Provide exactly one project selector and a supported agentic workspace client (codex, roo, claude-code, or cursor) to receive executable installer argv."
    • changedInput schema / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "client": {
      -        "description": "Target agent client. Coding clients receive a workspace installer plan; a2a receives a server-side one-time handoff plan.",
      -        "enum": [
      -          "codex",
      -          "roo",
      -          "claude-code",
      -          "cursor",
      -          "a2a"
      -        ],
      -        "type": "string"
      -      },
      -      "projectId": {
      -        "description": "Exact Spala project ID. Mutually exclusive with subdomain.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "projectId"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "client": {
      -        "description": "Target agent client. Coding clients receive a workspace installer plan; a2a receives a server-side one-time handoff plan.",
      -        "enum": [
      -          "codex",
      -          "roo",
      -          "claude-code",
      -          "cursor",
      -          "a2a"
      -        ],
      -        "type": "string"
      -      },
      -      "organizationId": {
      -        "description": "Optional organization ID returned for the signed-in account.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "subdomain": {
      -        "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "subdomain"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "client": {
      +        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      +        "enum": [
      +          "codex",
      +          "roo",
      +          "claude-code",
      +          "cursor"
      +        ],
      +        "type": "string"
      +      },
      +      "projectId": {
      +        "description": "Exact Spala project ID. Mutually exclusive with subdomain.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "projectId"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "client": {
      +        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      +        "enum": [
      +          "codex",
      +          "roo",
      +          "claude-code",
      +          "cursor"
      +        ],
      +        "type": "string"
      +      },
      +      "organizationId": {
      +        "description": "Optional organization ID returned for the signed-in account.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "subdomain": {
      +        "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "subdomain"
      +    ],
      +    "type": "object"
      +  }
      +]
    • changedInput schema / properties / client / description
      Previous value: -"Target agent client. Coding clients receive a workspace installer plan; a2a receives a server-side one-time handoff plan."New value: +"Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan."
    • changedInput schema / properties / client / enum
      Previous value: -[
      -  "codex",
      -  "roo",
      -  "claude-code",
      -  "cursor",
      -  "a2a"
      -]New value: +[
      +  "codex",
      +  "roo",
      +  "claude-code",
      +  "cursor"
      +]
  7. Changed4 schema fields changed
    • changedInput schema / description
      Previous value: -"Provide exactly one project selector and a supported agentic workspace client (codex, roo, claude-code, or cursor) to receive executable installer argv."New value: +"Provide exactly one project selector and a supported coding or A2A client."
    • changedInput schema / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "client": {
      -        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      -        "enum": [
      -          "codex",
      -          "roo",
      -          "claude-code",
      -          "cursor"
      -        ],
      -        "type": "string"
      -      },
      -      "projectId": {
      -        "description": "Exact Spala project ID. Mutually exclusive with subdomain.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "projectId"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "client": {
      -        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      -        "enum": [
      -          "codex",
      -          "roo",
      -          "claude-code",
      -          "cursor"
      -        ],
      -        "type": "string"
      -      },
      -      "organizationId": {
      -        "description": "Optional organization ID returned for the signed-in account.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "subdomain": {
      -        "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "subdomain"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "client": {
      +        "description": "Target agent client. Coding clients receive a workspace installer plan; a2a receives a server-side one-time handoff plan.",
      +        "enum": [
      +          "codex",
      +          "roo",
      +          "claude-code",
      +          "cursor",
      +          "a2a"
      +        ],
      +        "type": "string"
      +      },
      +      "projectId": {
      +        "description": "Exact Spala project ID. Mutually exclusive with subdomain.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "projectId"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "client": {
      +        "description": "Target agent client. Coding clients receive a workspace installer plan; a2a receives a server-side one-time handoff plan.",
      +        "enum": [
      +          "codex",
      +          "roo",
      +          "claude-code",
      +          "cursor",
      +          "a2a"
      +        ],
      +        "type": "string"
      +      },
      +      "organizationId": {
      +        "description": "Optional organization ID returned for the signed-in account.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "subdomain": {
      +        "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "subdomain"
      +    ],
      +    "type": "object"
      +  }
      +]
    • changedInput schema / properties / client / description
      Previous value: -"Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan."New value: +"Target agent client. Coding clients receive a workspace installer plan; a2a receives a server-side one-time handoff plan."
    • changedInput schema / properties / client / enum
      Previous value: -[
      -  "codex",
      -  "roo",
      -  "claude-code",
      -  "cursor"
      -]New value: +[
      +  "codex",
      +  "roo",
      +  "claude-code",
      +  "cursor",
      +  "a2a"
      +]
  8. Changed3 schema fields changed
    • changedInput schema / description
      Previous value: -"Provide exactly one project selector and a supported agentic workspace client (codex or roo) to receive executable installer argv."New value: +"Provide exactly one project selector and a supported agentic workspace client (codex, roo, claude-code, or cursor) to receive executable installer argv."
    • changedInput schema / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "client": {
      -        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      -        "enum": [
      -          "codex",
      -          "roo"
      -        ],
      -        "type": "string"
      -      },
      -      "projectId": {
      -        "description": "Exact Spala project ID. Mutually exclusive with subdomain.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "projectId"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "client": {
      -        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      -        "enum": [
      -          "codex",
      -          "roo"
      -        ],
      -        "type": "string"
      -      },
      -      "organizationId": {
      -        "description": "Optional organization ID returned for the signed-in account.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "subdomain": {
      -        "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "subdomain"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "client": {
      +        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      +        "enum": [
      +          "codex",
      +          "roo",
      +          "claude-code",
      +          "cursor"
      +        ],
      +        "type": "string"
      +      },
      +      "projectId": {
      +        "description": "Exact Spala project ID. Mutually exclusive with subdomain.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "projectId"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "client": {
      +        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      +        "enum": [
      +          "codex",
      +          "roo",
      +          "claude-code",
      +          "cursor"
      +        ],
      +        "type": "string"
      +      },
      +      "organizationId": {
      +        "description": "Optional organization ID returned for the signed-in account.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "subdomain": {
      +        "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "subdomain"
      +    ],
      +    "type": "object"
      +  }
      +]
    • changedInput schema / properties / client / enum
      Previous value: -[
      -  "codex",
      -  "roo"
      -]New value: +[
      +  "codex",
      +  "roo",
      +  "claude-code",
      +  "cursor"
      +]
  9. Changed7 schema fields changed
    • changedInput schema / description
      Previous value: -"Provide exactly one project selector and a supported handoff target. Codex/Roo receive installer argv; a2a receives a direct one-time project session."New value: +"Provide exactly one project selector and a supported agentic workspace client (codex or roo) to receive executable installer argv."
    • changedInput schema / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "client": {
      -        "description": "Target agent handoff. Codex and Roo receive a workspace installer plan; a2a receives a server-side one-time project MCP session.",
      -        "enum": [
      -          "codex",
      -          "roo",
      -          "a2a"
      -        ],
      -        "type": "string"
      -      },
      -      "projectId": {
      -        "description": "Exact Spala project ID. Mutually exclusive with subdomain.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "projectId"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "client": {
      -        "description": "Target agent handoff. Codex and Roo receive a workspace installer plan; a2a receives a server-side one-time project MCP session.",
      -        "enum": [
      -          "codex",
      -          "roo",
      -          "a2a"
      -        ],
      -        "type": "string"
      -      },
      -      "organizationId": {
      -        "description": "Optional organization ID returned for the signed-in account.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "subdomain": {
      -        "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "subdomain"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "client": {
      +        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      +        "enum": [
      +          "codex",
      +          "roo"
      +        ],
      +        "type": "string"
      +      },
      +      "projectId": {
      +        "description": "Exact Spala project ID. Mutually exclusive with subdomain.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "projectId"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "client": {
      +        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      +        "enum": [
      +          "codex",
      +          "roo"
      +        ],
      +        "type": "string"
      +      },
      +      "organizationId": {
      +        "description": "Optional organization ID returned for the signed-in account.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "subdomain": {
      +        "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "subdomain"
      +    ],
      +    "type": "object"
      +  }
      +]
    • changedInput schema / properties / client / description
      Previous value: -"Target agent handoff. Codex and Roo receive a workspace installer plan; a2a receives a server-side one-time project MCP session."New value: +"Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan."
    • changedInput schema / properties / client / enum
      Previous value: -[
      -  "codex",
      -  "roo",
      -  "a2a"
      -]New value: +[
      +  "codex",
      +  "roo"
      +]
    • changedOutput schema / description
      Previous value: -"Prepared project MCP connection. CLI targets receive a workspace-only installer handoff; a2a receives a direct one-time server-side session."New value: +"Prepared project MCP connection and workspace-only installer handoff."
    • removedOutput schema / properties / handoffTarget
      Removed value: -{
      -  "type": "string"
      -}
    • changedOutput schema / required
      Previous value: -[
      -  "project",
      -  "handoff",
      -  "mcpUrl",
      -  "serverName",
      -  "transport",
      -  "handoffTarget",
      -  "bootstrap"
      -]New value: +[
      +  "project",
      +  "handoff",
      +  "mcpUrl",
      +  "serverName",
      +  "transport",
      +  "installPlan",
      +  "bootstrap"
      +]
  10. Changed7 schema fields changed
    • changedInput schema / description
      Previous value: -"Provide exactly one project selector and a supported agentic workspace client (codex or roo) to receive executable installer argv."New value: +"Provide exactly one project selector and a supported handoff target. Codex/Roo receive installer argv; a2a receives a direct one-time project session."
    • changedInput schema / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "client": {
      -        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      -        "enum": [
      -          "codex",
      -          "roo"
      -        ],
      -        "type": "string"
      -      },
      -      "projectId": {
      -        "description": "Exact Spala project ID. Mutually exclusive with subdomain.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "projectId"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "client": {
      -        "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan.",
      -        "enum": [
      -          "codex",
      -          "roo"
      -        ],
      -        "type": "string"
      -      },
      -      "organizationId": {
      -        "description": "Optional organization ID returned for the signed-in account.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "subdomain": {
      -        "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "subdomain"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "client": {
      +        "description": "Target agent handoff. Codex and Roo receive a workspace installer plan; a2a receives a server-side one-time project MCP session.",
      +        "enum": [
      +          "codex",
      +          "roo",
      +          "a2a"
      +        ],
      +        "type": "string"
      +      },
      +      "projectId": {
      +        "description": "Exact Spala project ID. Mutually exclusive with subdomain.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "projectId"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "client": {
      +        "description": "Target agent handoff. Codex and Roo receive a workspace installer plan; a2a receives a server-side one-time project MCP session.",
      +        "enum": [
      +          "codex",
      +          "roo",
      +          "a2a"
      +        ],
      +        "type": "string"
      +      },
      +      "organizationId": {
      +        "description": "Optional organization ID returned for the signed-in account.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "subdomain": {
      +        "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "subdomain"
      +    ],
      +    "type": "object"
      +  }
      +]
    • changedInput schema / properties / client / description
      Previous value: -"Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan."New value: +"Target agent handoff. Codex and Roo receive a workspace installer plan; a2a receives a server-side one-time project MCP session."
    • changedInput schema / properties / client / enum
      Previous value: -[
      -  "codex",
      -  "roo"
      -]New value: +[
      +  "codex",
      +  "roo",
      +  "a2a"
      +]
    • changedOutput schema / description
      Previous value: -"Prepared project MCP connection and workspace-only installer handoff."New value: +"Prepared project MCP connection. CLI targets receive a workspace-only installer handoff; a2a receives a direct one-time server-side session."
    • addedOutput schema / properties / handoffTarget
      Added value: +{
      +  "type": "string"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "project",
      -  "handoff",
      -  "mcpUrl",
      -  "serverName",
      -  "transport",
      -  "installPlan",
      -  "bootstrap"
      -]New value: +[
      +  "project",
      +  "handoff",
      +  "mcpUrl",
      +  "serverName",
      +  "transport",
      +  "handoffTarget",
      +  "bootstrap"
      +]
  11. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "description": "Prepared project MCP connection and workspace-only installer handoff.",
      +  "properties": {
      +    "bootstrap": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "bootstrapPreparedByProjectBackend": {
      +      "type": "boolean"
      +    },
      +    "handoff": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "installPlan": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "intentBoundary": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "mcpUrl": {
      +      "format": "uri",
      +      "type": "string"
      +    },
      +    "nextSteps": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "preparedByProjectBackend": {
      +      "type": "boolean"
      +    },
      +    "project": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "rule": {
      +      "type": "string"
      +    },
      +    "serverName": {
      +      "type": "string"
      +    },
      +    "transport": {
      +      "type": "string"
      +    },
      +    "workspaceOnly": {
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "project",
      +    "handoff",
      +    "mcpUrl",
      +    "serverName",
      +    "transport",
      +    "installPlan",
      +    "bootstrap"
      +  ],
      +  "type": "object"
      +}
  12. Added

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing that authentication is required, that the operation is an idempotent write, that omitting a client returns no executable arguments, and that bootstrap behavior differs by client (one-time protected vs verifier-bound delegated). This gives the agent a meaningful side-effect model before calling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads a compact operation classifier, then packs the object, input constraint, omission behavior, and expected output into a few dense clauses. There is no filler, repetition of the schema, or unnecessary explanation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complex oneOf selector, optional client, and existing output schema, the description covers the essential call decision and result shape. It relies on schema field descriptions for the project-prepare provenance of bootstrapChallenge and bootstrapRequestId, which is a minor but acceptable gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents every parameter at 100% coverage, including enums, patterns, mutual exclusivity, and omission behavior. The description only echoes the omitted-client behavior that appears in the schema, so it adds no material parameter-level meaning beyond the structured definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource—'Prepares one accessible Spala project for agent access'—and the concrete outcome: a client-specific workspace binding plan. The connection/write framing separates it from sibling tools like project_create or project_select even without naming them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear call context: use it when an accessible Spala project needs to be prepared for an agentic client, and it explicitly defines the omitted-client fallback behavior. It does not explicitly name alternative sibling tools for creation or selection, so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.