Skip to main content
Glama

Spala Public MCP

Select Spala Project

project_select
DestructiveIdempotent

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.

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. Changed7 schema fields changed
    • changedInput schema / description
      Previous value: -"Provide exactly one project selector: projectId or slug."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": {
      -      "projectId": {
      -        "description": "Exact Spala project ID. Mutually exclusive with slug.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "projectId"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "slug": {
      -        "description": "Exact Spala project slug. Mutually exclusive with projectId.",
      -        "maxLength": 256,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "slug"
      -    ],
      -    "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"
      +  }
      +]
    • addedInput schema / properties / client
      Added value: +{
      +  "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"
      +}
    • addedInput schema / properties / organizationId
      Added value: +{
      +  "description": "Optional organization ID returned for the signed-in account.",
      +  "maxLength": 256,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedInput schema / properties / projectId / description
      Previous value: -"Exact Spala project ID. Mutually exclusive with slug."New value: +"Exact Spala project ID. Mutually exclusive with subdomain."
    • removedInput schema / properties / slug
      Removed value: -{
      -  "description": "Exact Spala project slug. Mutually exclusive with projectId.",
      -  "maxLength": 256,
      -  "minLength": 1,
      -  "type": "string"
      -}
    • addedInput schema / properties / subdomain
      Added value: +{
      +  "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId.",
      +  "maxLength": 256,
      +  "minLength": 1,
      +  "type": "string"
      +}
  13. Changed9 schema fields changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • addedInput schema / description
      Added value: +"Provide exactly one project selector: projectId or slug."
    • addedInput schema / oneOf
      Added value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "projectId": {
      +        "description": "Exact Spala project ID. Mutually exclusive with slug.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "projectId"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "slug": {
      +        "description": "Exact Spala project slug. Mutually exclusive with projectId.",
      +        "maxLength": 256,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "slug"
      +    ],
      +    "type": "object"
      +  }
      +]
    • addedInput schema / properties / projectId / description
      Added value: +"Exact Spala project ID. Mutually exclusive with slug."
    • addedInput schema / properties / projectId / maxLength
      Added value: +256
    • addedInput schema / properties / projectId / minLength
      Added value: +1
    • addedInput schema / properties / slug / description
      Added value: +"Exact Spala project slug. Mutually exclusive with projectId."
    • addedInput schema / properties / slug / maxLength
      Added value: +256
    • addedInput schema / properties / slug / minLength
      Added value: +1
  14. First observed

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already disclose idempotent, destructive, and non-read-only traits. The description adds 'AUTH REQUIRED' (authentication requirement) and notes that it returns the same binding contract as project_connect, which is useful. It does not describe side effects beyond the annotation's destructive hint, but it does not contradict the annotations. The added value is modest yet non-trivial.

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?

The description is two short sentences that front-load the critical traits ('AUTH REQUIRED; IDEMPOTENT PROJECT CONNECTION WRITE') before the alias statement. Every word earns its place; no filler or repetition.

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 tool's complexity (7 parameters, oneOf structure, output schema, rich annotations), the description is sparse but sufficient because the schema and output schema fill in the details. It adds the essential alias context and auth requirement, which are not derivable from the schema. The missing piece is the explicit relationship to project_connect's usage scenarios, but that is a minor gap given the structured data.

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?

Schema description coverage is 100%, so each of the 7 parameters already has a clear description. The tool description itself adds no parameter-level meaning, but it doesn't need to. The baseline of 3 applies because the schema carries the full burden and the description does not undermine or enhance it.

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?

The description states a specific action ('prepares one accessible project and returns the same client-specific workspace binding contract as project_connect') and identifies itself as a compatibility alias for project_connect, clearly distinguishing it from siblings like project_create. The purpose is unambiguous even though the tool name is 'select' – the description makes the behavior concrete.

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

Usage Guidelines3/5

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

The description implies usage context by calling itself a 'Compatibility alias for project_connect,' which hints that it should be used where a compatible connection is needed. However, it does not explicitly state when to choose this over project_connect or mention any exclusions (e.g., 'use project_connect for new integrations'). The schema adds usage hints but the tool description itself lacks direct when-to-use 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.