Skip to content

Spala Public MCP

by spala.ai · remote · no sign-in to list tools · v1.0.2 · published by ai.spala

Discovery, OAuth, project operations, and exact project MCP handoff for Spala backend projects.

Deletes · 6Changes · 1

16 tools: 6 can delete or cancel things, 1 change things and 9 only read.

Scanned Oct 21, 2026

13 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http public https://mcp.spala.ai/mcp --header 'Accept: <your-accept>'

Findings

Matches of fixed checks, with the text they matched.

2 warn11 info
  • The server marks "spala_start" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "spala_start" says "start": a word for a change.

    What this check looks for
  • The server marks "project_get_mcp_manifest" destructive (destructiveHint: true), and its name says "get", a word for reading.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}; The name "project_get_mcp_manifest" says "get": a word for reading.

    What this check looks for
  • The input schema at properties.installerVersion.description mentions "credential".

    Matched text

    inputSchema.properties.installerVersion.description: "...laude/Codex application version or read credential stores."

    What this check looks for
  • The description mentions "credentials".

    Matched text

    description: "...lds without exposing OAuth or dashboard credentials."

    What this check looks for
  • The input schema at oneOf[0].properties.bootstrapChallenge.description mentions "credential".

    Matched text

    inputSchema.oneOf[0].properties.bootstrapChallenge.description: "...The verifier remains only in the local credential store."

    What this check looks for
  • The input schema at oneOf[1].properties.bootstrapChallenge.description mentions "credential".

    Matched text

    inputSchema.oneOf[1].properties.bootstrapChallenge.description: "...The verifier remains only in the local credential store."

    What this check looks for
Show 7 more findings
  • The input schema at properties.bootstrapChallenge.description mentions "credential".

    Matched text

    inputSchema.properties.bootstrapChallenge.description: "...The verifier remains only in the local credential store."

    What this check looks for
  • The input schema at oneOf[0].properties.bootstrapChallenge.description mentions "credential".

    Matched text

    inputSchema.oneOf[0].properties.bootstrapChallenge.description: "...The verifier remains only in the local credential store."

    What this check looks for
  • The input schema at oneOf[1].properties.bootstrapChallenge.description mentions "credential".

    Matched text

    inputSchema.oneOf[1].properties.bootstrapChallenge.description: "...The verifier remains only in the local credential store."

    What this check looks for
  • The input schema at properties.bootstrapChallenge.description mentions "credential".

    Matched text

    inputSchema.properties.bootstrapChallenge.description: "...The verifier remains only in the local credential store."

    What this check looks for
  • The input schema at oneOf[0].properties.bootstrapChallenge.description mentions "credential".

    Matched text

    inputSchema.oneOf[0].properties.bootstrapChallenge.description: "...The verifier remains only in the local credential store."

    What this check looks for
  • The input schema at oneOf[1].properties.bootstrapChallenge.description mentions "credential".

    Matched text

    inputSchema.oneOf[1].properties.bootstrapChallenge.description: "...The verifier remains only in the local credential store."

    What this check looks for
  • The input schema at properties.bootstrapChallenge.description mentions "credential".

    Matched text

    inputSchema.properties.bootstrapChallenge.description: "...The verifier remains only in the local credential store."

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

16 tools

Deletes or cancels 6Claude Code: deny
  • account_setupAUTH REQUIRED; WRITES MISSING ACCOUNT DATA TO THE SPALA CONTROL PLANE.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    AUTH REQUIRED; WRITES MISSING ACCOUNT DATA TO THE SPALA CONTROL PLANE. Fills missing first and last name fields and creates the first company or workspace organization when none exists. Invoke only with real account and organization values supplied by the user.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • organization_createAUTH REQUIRED; WRITES A NEW SPALA ORGANIZATION FOR THE SIGNED-IN ACCOUNT.No findings

    Why it is in this group

    • The name "organization_create" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    AUTH REQUIRED; WRITES A NEW SPALA ORGANIZATION FOR THE SIGNED-IN ACCOUNT. Creates an additional company or workspace organization using the supplied name.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • project_connectAUTH REQUIRED; IDEMPOTENT PROJECT CONNECTION WRITE.3 findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).

    Findings

    • Info

      The input schema at oneOf[0].properties.bootstrapChallenge.description mentions "credential".

      Matched text

      inputSchema.oneOf[0].properties.bootstrapChallenge.description: "...The verifier remains only in the local credential store."

      What this check looks for
    • Info

      The input schema at oneOf[1].properties.bootstrapChallenge.description mentions "credential".

      Matched text

      inputSchema.oneOf[1].properties.bootstrapChallenge.description: "...The verifier remains only in the local credential store."

      What this check looks for
    • Info

      The input schema at properties.bootstrapChallenge.description mentions "credential".

      Matched text

      inputSchema.properties.bootstrapChallenge.description: "...The verifier remains only in the local credential store."

      What this check looks for
    Description, as the server wrote it
    AUTH REQUIRED; IDEMPOTENT PROJECT CONNECTION WRITE. Prepares one accessible Spala project for agent access. Accepts one installer client (codex, roo, claude-code, cursor, a2a); when omitted, returns a client-selection response without executable arguments. Pending projects return project_provisioning with status 202 and retryAfterSeconds; retry the same call within the stated budget. Active projects do not need a manifest before connect. Returns a client-specific workspace binding plan: protected one-time bootstrap for Codex, Roo, and Cursor; verifier-bound delegated bootstrap for Claude Code.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • project_createAUTH REQUIRED; WRITES TO THE SPALA CONTROL PLANE.No findings

    Why it is in this group

    • The name "project_create" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    AUTH REQUIRED; WRITES TO THE SPALA CONTROL PLANE. Creates a real Spala project with the supplied project name in an accessible organization. Provisioning is asynchronous; follow the returned retry interval and bounded retry guidance, never create a duplicate. Accepts an organization id when multiple organizations are available and automatically scopes a sole organization. This operation is not idempotent.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • project_get_mcp_manifestAUTH REQUIRED; IDEMPOTENT PROJECT CONNECTION WRITE.4 findings

    Why it is in this group

    • The name "project_get_mcp_manifest" says "get": a word for reading.
    • The server marks it destructive (destructiveHint: true).

    Findings

    • Info

      The input schema at oneOf[0].properties.bootstrapChallenge.description mentions "credential".

      Matched text

      inputSchema.oneOf[0].properties.bootstrapChallenge.description: "...The verifier remains only in the local credential store."

      What this check looks for
    • Info

      The input schema at oneOf[1].properties.bootstrapChallenge.description mentions "credential".

      Matched text

      inputSchema.oneOf[1].properties.bootstrapChallenge.description: "...The verifier remains only in the local credential store."

      What this check looks for
    • Info

      The input schema at properties.bootstrapChallenge.description mentions "credential".

      Matched text

      inputSchema.properties.bootstrapChallenge.description: "...The verifier remains only in the local credential store."

      What this check looks for
    • Warn

      The server marks "project_get_mcp_manifest" destructive (destructiveHint: true), and its name says "get", a word for reading.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}; The name "project_get_mcp_manifest" says "get": a word for reading.

      What this check looks for
    Description, as the server wrote it
    AUTH REQUIRED; IDEMPOTENT PROJECT CONNECTION WRITE. Prepares one accessible project and returns its exact platform-provided project MCP manifest URL, MCP URL, and client-specific workspace binding plan. Accepts one installer client (codex, roo, claude-code, cursor, a2a); when omitted, returns a client-selection response without executable arguments.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • project_selectAUTH REQUIRED; IDEMPOTENT PROJECT CONNECTION WRITE.3 findings

    Why it is in this group

    • The name "project_select" says "select": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    Findings

    • Info

      The input schema at oneOf[0].properties.bootstrapChallenge.description mentions "credential".

      Matched text

      inputSchema.oneOf[0].properties.bootstrapChallenge.description: "...The verifier remains only in the local credential store."

      What this check looks for
    • Info

      The input schema at oneOf[1].properties.bootstrapChallenge.description mentions "credential".

      Matched text

      inputSchema.oneOf[1].properties.bootstrapChallenge.description: "...The verifier remains only in the local credential store."

      What this check looks for
    • Info

      The input schema at properties.bootstrapChallenge.description mentions "credential".

      Matched text

      inputSchema.properties.bootstrapChallenge.description: "...The verifier remains only in the local credential store."

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
Changes things 1Claude Code: ask
  • spala_startAUTH REQUIRED; READ-ONLY STARTUP.1 finding

    Why it is in this group

    • The name "spala_start" says "start": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "spala_start" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "spala_start" says "start": a word for a change.

      What this check looks for
    Description, as the server wrote it
    AUTH REQUIRED; READ-ONLY STARTUP. Invoke after OAuth to begin Spala account or project setup. Returns a versioned startup phase with account readiness, organizations, safely scoped project discovery, and one explicit next action. Reports missing account fields, automatically scopes a sole organization, and returns all accessible choices when multiple organizations exist.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
Only reads 9Claude Code: allow
  • account_statusAUTH REQUIRED; READ-ONLY.1 finding

    Why it is in this group

    • The name "account_status" says "status": a word for reading.

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "...lds without exposing OAuth or dashboard credentials."

      What this check looks for
    Description, as the server wrote it
    AUTH REQUIRED; READ-ONLY. Verifies the current public MCP OAuth identity and account readiness. Returns the authenticated identity, available organizations, and exact missing account fields without exposing OAuth or dashboard credentials.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • addon_listLists public Spala addons and integrations matching an optional query.No findings

    Why it is in this group

    • The name "addon_list" says "list": a word for reading.
    Description, as the server wrote it
    Lists public Spala addons and integrations matching an optional query. Curated public subset; use project addons_search/addons_get to verify availability and installed status. Invoke for Telegram bots and CRM, webhooks, outbound HTTP API calls, transactional email, media uploads, and realtime messaging. Returns addon ids, names, descriptions, and tags.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • project_get_public_contextFor embeddings and similarity search, use Vector fields and native Similarity Search with owner/tenant filters.No findings

    Why it is in this group

    • The name "project_get_public_context" says "get": a word for reading.
    Description, as the server wrote it
    For embeddings and similarity search, use Vector fields and native Similarity Search with owner/tenant filters. Do not store search embeddings as JSON arrays or compute cosine similarity in Custom Code. Keep embedding dimensions/model consistent. If pgvector is unavailable, request database administrator setup; do not substitute JSON. Migrating existing embeddings requires approval. Includes native-block and filter guidance, addon discovery, and the requirement to justify narrowly scoped Custom Code. AUTH REQUIRED; READ-ONLY. Returns documented MCP handoff fields for one accessible project without exposing tokens, private source code, unrelated customer data, or executable installer arguments.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • project_listAUTH REQUIRED; READ-ONLY.No findings

    Why it is in this group

    • The name "project_list" says "list": a word for reading.
    Description, as the server wrote it
    AUTH REQUIRED; READ-ONLY. Lists projects accessible to the authenticated Spala user in one organization. Accepts an organization id when multiple organizations are available and automatically scopes a sole organization.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • spala_get_onboardingReturns machine-readable Spala onboarding information for MCP clients.1 finding

    Why it is in this group

    • The name "spala_get_onboarding" says "get": a word for reading.

    Findings

    • Info

      The input schema at properties.installerVersion.description mentions "credential".

      Matched text

      inputSchema.properties.installerVersion.description: "...laude/Codex application version or read credential stores."

      What this check looks for
    Description, as the server wrote it
    Returns machine-readable Spala onboarding information for MCP clients. Includes product scope, OAuth metadata, supported installer client identifiers, authenticated project-handoff status, workflow stages, and canonical links.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • spala_get_tool_mapReturns a machine-readable routing map for Spala MCP clients.No findings

    Why it is in this group

    • The name "spala_get_tool_map" says "get": a word for reading.
    Description, as the server wrote it
    Returns a machine-readable routing map for Spala MCP clients. Identifies public and authenticated tools, supported installer clients, OAuth endpoints, project handoff rules, and project-MCP entry points.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • spala_helpReturns a human-readable overview of Spala, canonical start URLs, and the boundary between public discovery and project-scoped backend MCPs.No findings

    Why it is in this group

    • The description's first verb is "return": a word for reading.
    Description, as the server wrote it
    Returns a human-readable overview of Spala, canonical start URLs, and the boundary between public discovery and project-scoped backend MCPs. Invoke for product, setup, or integration orientation. This read-only tool requires no authentication and does not access or modify project data.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • template_listLists public Spala backend templates matching an optional query.No findings

    Why it is in this group

    • The name "template_list" says "list": a word for reading.
    Description, as the server wrote it
    Lists public Spala backend templates matching an optional query. Invoke to discover available backend starting points such as marketplace, dashboard API, reservation, inventory, or document management. Returns template ids, names, descriptions, and tags.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.2. Values in angle brackets are yours to fill in.

claude mcp add --transport http public https://mcp.spala.ai/mcp --header 'Accept: <your-accept>'

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__public__spala_help",
      "mcp__public__spala_get_onboarding",
      "mcp__public__spala_get_tool_map",
      "mcp__public__docs_search",
      "mcp__public__template_list",
      "mcp__public__addon_list",
      "mcp__public__account_status",
      "mcp__public__project_list",
      "mcp__public__project_get_public_context"
    ],
    "ask": [
      "mcp__public__spala_start"
    ],
    "deny": [
      "mcp__public__account_setup",
      "mcp__public__organization_create",
      "mcp__public__project_create",
      "mcp__public__project_connect",
      "mcp__public__project_select",
      "mcp__public__project_get_mcp_manifest"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as public. Review it before you use it.