Spala Public MCP

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

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
73%
이름 품질
81%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~6,572토큰 (도구 정의)
~4.4 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 5.13%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "public-mcp": {
      "url": "https://mcp.spala.ai/mcp"
    }
  }
}

원격 엔드포인트

https://mcp.spala.ai/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (16)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢spala_help

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.

입력 스키마

{
  "type": "object",
  "properties": {},
  "description": "No arguments. Call this tool with an empty object.",
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "markdown": {
      "type": "string"
    }
  },
  "required": [
    "markdown"
  ],
  "description": "Human-readable Spala overview and public/project MCP boundary.",
  "additionalProperties": true
}
🟢spala_get_onboarding

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.

입력 스키마

{
  "type": "object",
  "properties": {},
  "description": "No arguments. Call this tool with an empty object.",
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "product": {
      "type": "string"
    },
    "publicMcpRole": {
      "type": "string"
    },
    "projectMcpRole": {
      "type": "string"
    },
    "intentBoundary": {
      "type": "object",
      "additionalProperties": true
    },
    "workflow": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "supportedInstallerClients": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "urls": {
      "type": "object",
      "additionalProperties": true
    },
    "handoffExample": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "product",
    "publicMcpRole",
    "projectMcpRole",
    "workflow",
    "urls"
  ],
  "description": "Anonymous compatibility onboarding and canonical Spala workflow links.",
  "additionalProperties": true
}
🟢spala_get_tool_map

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.

입력 스키마

{
  "type": "object",
  "properties": {},
  "description": "No arguments. Call this tool with an empty object.",
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "publicMcp": {
      "type": "object",
      "additionalProperties": true
    },
    "projectMcp": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "publicMcp",
    "projectMcp"
  ],
  "description": "Machine-readable routing map for the public MCP and project MCP.",
  "additionalProperties": true
}
🟢docs_search(query, limit)

Searches the public Spala agent-facing documentation index by query. Invoke for setup, OAuth, installer, public-versus-project MCP, pricing, limits, security, templates, addons, or project handoff questions. Returns ranked docs entries with URLs and summaries.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Optional search phrase. Use words such as auth, OAuth, MCP, templates, addons, pricing, limits, frontend handoff, or project handoff.",
      "default": ""
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "description": "Maximum number of ranked documentation results to return.",
      "default": 5
    }
  },
  "description": "Optional text search and result limit for public Spala documentation.",
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    }
  },
  "required": [
    "query",
    "results"
  ],
  "description": "Ranked public documentation search results.",
  "additionalProperties": true
}
🟢template_list(query, limit)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Optional filter phrase for matching public Spala templates or addons by name, tag, or use case.",
      "default": ""
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "Maximum number of catalog entries to return.",
      "default": 20
    }
  },
  "description": "Optional catalog search and result limit for public Spala planning resources.",
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "templates": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    }
  },
  "required": [
    "query",
    "templates"
  ],
  "description": "Public Spala backend templates matching the optional query.",
  "additionalProperties": true
}
🟢addon_list(query, limit)

Lists public Spala addons and integrations matching an optional query. Invoke to discover capabilities such as webhooks, outbound HTTP API calls, transactional email, media uploads, and realtime messaging. Returns addon ids, names, descriptions, and tags.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Optional filter phrase for matching public Spala templates or addons by name, tag, or use case.",
      "default": ""
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "Maximum number of catalog entries to return.",
      "default": 20
    }
  },
  "description": "Optional catalog search and result limit for public Spala planning resources.",
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "addons": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    }
  },
  "required": [
    "query",
    "addons"
  ],
  "description": "Public Spala addons and integrations matching the optional query.",
  "additionalProperties": true
}
🟢spala_start

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.

입력 스키마

{
  "type": "object",
  "properties": {},
  "description": "No arguments. Call this tool with an empty object.",
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "schemaVersion": {
      "type": "integer"
    },
    "phase": {
      "type": "string"
    },
    "authenticated": {
      "type": "boolean"
    },
    "backendProvider": {
      "type": "string"
    },
    "user": {
      "type": "object",
      "additionalProperties": true
    },
    "accountSetup": {
      "type": "object",
      "additionalProperties": true
    },
    "selectedOrganizationId": {
      "type": "string"
    },
    "organizations": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "projects": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "installerMaintenance": {
      "type": "object",
      "additionalProperties": true
    },
    "nextAction": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "schemaVersion",
    "phase",
    "authenticated",
    "backendProvider",
    "user",
    "accountSetup",
    "organizations",
    "projects",
    "installerMaintenance",
    "nextAction"
  ],
  "description": "Authenticated startup state with account readiness, project discovery, and one next action.",
  "additionalProperties": true
}
🟢account_status

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.

입력 스키마

{
  "type": "object",
  "properties": {},
  "description": "No arguments. Call this tool with an empty object.",
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "authenticated": {
      "type": "boolean"
    },
    "tokenStatus": {
      "type": "string"
    },
    "oauthResource": {
      "type": "string"
    },
    "subject": {
      "type": "string"
    },
    "user": {
      "type": "object",
      "additionalProperties": true
    },
    "organizations": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "accountSetup": {
      "type": "object",
      "additionalProperties": true
    },
    "next": {
      "type": "string"
    }
  },
  "required": [
    "authenticated",
    "tokenStatus",
    "oauthResource",
    "subject",
    "user",
    "organizations",
    "accountSetup"
  ],
  "description": "Authenticated Spala account readiness and organization state.",
  "additionalProperties": true
}
🔴account_setup(firstName, lastName, companyName)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "firstName": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120,
      "description": "Account holder first name. Required when account_status reports firstName missing."
    },
    "lastName": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120,
      "description": "Account holder last name. Required when account_status reports lastName missing."
    },
    "companyName": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120,
      "description": "Company or workspace name. Required when account_status reports companyName missing."
    }
  },
  "description": "Complete missing Spala account data after OAuth. Supply only real values confirmed by the user or confidently known from the current work context.",
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "accountSetup": {
      "type": "string"
    },
    "profileUpdated": {
      "type": "boolean"
    },
    "organizationCreated": {
      "type": "boolean"
    },
    "user": {
      "type": "object",
      "additionalProperties": true
    },
    "organization": {
      "type": "object",
      "additionalProperties": true
    },
    "nextAction": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "accountSetup",
    "profileUpdated",
    "organizationCreated",
    "user",
    "organization",
    "nextAction"
  ],
  "description": "Completed account setup and the next protected startup action.",
  "additionalProperties": true
}
🔴organization_create(name)

AUTH REQUIRED; WRITES A NEW SPALA ORGANIZATION FOR THE SIGNED-IN ACCOUNT. Creates an additional company or workspace organization using the supplied name.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120,
      "description": "Human-readable company or workspace name."
    }
  },
  "required": [
    "name"
  ],
  "description": "Create an additional Spala organization for the authenticated account.",
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "organization": {
      "type": "object",
      "additionalProperties": true
    },
    "created": {
      "type": "boolean"
    },
    "nextAction": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "organization",
    "created",
    "nextAction"
  ],
  "description": "New Spala organization and the next startup action.",
  "additionalProperties": true
}
🟢project_list(organizationId)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "organizationId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "description": "Organization ID returned for the signed-in account. Optional only when exactly one organization is available."
    }
  },
  "description": "List projects for an organization available to the authenticated user.",
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "organization": {
      "type": "object",
      "additionalProperties": true
    },
    "projects": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    }
  },
  "required": [
    "organization",
    "projects"
  ],
  "description": "Projects in one authoritative organization available to the authenticated user.",
  "additionalProperties": true
}
🔴project_create(name, organizationId)

AUTH REQUIRED; WRITES TO THE SPALA CONTROL PLANE. Creates a real Spala project with the supplied project name in an accessible organization. Accepts an organization id when multiple organizations are available and automatically scopes a sole organization. This operation is not idempotent.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120,
      "description": "Human-readable name for the new Spala project."
    },
    "organizationId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "description": "Organization ID returned for the signed-in account. Optional only when exactly one organization is available."
    }
  },
  "required": [
    "name"
  ],
  "description": "Create a real Spala project in an organization available to the authenticated user.",
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "organization": {
      "type": "object",
      "additionalProperties": true
    },
    "project": {
      "type": "object",
      "additionalProperties": true
    },
    "created": {
      "type": "boolean"
    },
    "mcpUrlResolved": {
      "type": "boolean"
    },
    "provisioning": {
      "type": "object",
      "additionalProperties": true
    },
    "next": {
      "type": "string"
    }
  },
  "required": [
    "organization",
    "project",
    "created",
    "mcpUrlResolved",
    "provisioning",
    "next"
  ],
  "description": "New Spala project and provisioning guidance for project MCP handoff.",
  "additionalProperties": true
}
🔴project_connect(projectId, subdomain, organizationId, client, profile, ...)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "description": "Exact Spala project ID. Mutually exclusive with subdomain."
    },
    "subdomain": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId."
    },
    "organizationId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "description": "Optional organization ID returned for the signed-in account."
    },
    "client": {
      "type": "string",
      "enum": [
        "codex",
        "roo",
        "claude-code",
        "cursor",
        "a2a"
      ],
      "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan."
    },
    "profile": {
      "type": "string",
      "enum": [
        "guided"
      ],
      "description": "Set to guided to preserve the compact build-and-test surface through project handoff. Omit for the default full compatibility surface."
    },
    "bootstrapRequestId": {
      "type": "string",
      "pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
      "description": "Non-secret local request ID returned by project prepare. Claude Code only."
    },
    "bootstrapChallenge": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{43}$",
      "description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store."
    }
  },
  "description": "Provide exactly one project selector and a supported agentic workspace client (codex, roo, claude-code, or cursor) to receive executable installer argv.",
  "oneOf": [
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "projectId"
      ],
      "properties": {
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256,
          "description": "Exact Spala project ID. Mutually exclusive with subdomain."
        },
        "client": {
          "type": "string",
          "enum": [
            "codex",
            "roo",
            "claude-code",
            "cursor",
            "a2a"
          ],
          "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan."
        },
        "profile": {
          "type": "string",
          "enum": [
            "guided"
          ],
          "description": "Set to guided to preserve the compact build-and-test surface through project handoff. Omit for the default full compatibility surface."
        },
        "bootstrapRequestId": {
          "type": "string",
          "pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
          "description": "Non-secret local request ID returned by project prepare. Claude Code only."
        },
        "bootstrapChallenge": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{43}$",
          "description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store."
        }
      }
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "subdomain"
      ],
      "properties": {
        "subdomain": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256,
          "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId."
        },
        "organizationId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256,
          "description": "Optional organization ID returned for the signed-in account."
        },
        "client": {
          "type": "string",
          "enum": [
            "codex",
            "roo",
            "claude-code",
            "cursor",
            "a2a"
          ],
          "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan."
        },
        "profile": {
          "type": "string",
          "enum": [
            "guided"
          ],
          "description": "Set to guided to preserve the compact build-and-test surface through project handoff. Omit for the default full compatibility surface."
        },
        "bootstrapRequestId": {
          "type": "string",
          "pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
          "description": "Non-secret local request ID returned by project prepare. Claude Code only."
        },
        "bootstrapChallenge": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{43}$",
          "description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store."
        }
      }
    }
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "project": {
      "type": "object",
      "additionalProperties": true
    },
    "handoff": {
      "type": "object",
      "additionalProperties": true
    },
    "mcpUrl": {
      "type": "string",
      "format": "uri"
    },
    "toolProfile": {
      "type": "string",
      "enum": [
        "full",
        "guided"
      ]
    },
    "serverName": {
      "type": "string"
    },
    "transport": {
      "type": "string"
    },
    "preparedByProjectBackend": {
      "type": "boolean"
    },
    "bootstrapPreparedByProjectBackend": {
      "type": "boolean"
    },
    "workspaceOnly": {
      "type": "boolean"
    },
    "installPlan": {
      "type": "object",
      "additionalProperties": true
    },
    "bootstrap": {
      "type": "object",
      "additionalProperties": true
    },
    "nextSteps": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "intentBoundary": {
      "type": "object",
      "additionalProperties": true
    },
    "rule": {
      "type": "string"
    }
  },
  "required": [
    "project",
    "handoff",
    "mcpUrl",
    "serverName",
    "transport",
    "installPlan",
    "bootstrap"
  ],
  "description": "Prepared project MCP connection and workspace-only installer handoff.",
  "additionalProperties": true
}
🔴project_select(projectId, subdomain, organizationId, client, profile, ...)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "description": "Exact Spala project ID. Mutually exclusive with subdomain."
    },
    "subdomain": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId."
    },
    "organizationId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "description": "Optional organization ID returned for the signed-in account."
    },
    "client": {
      "type": "string",
      "enum": [
        "codex",
        "roo",
        "claude-code",
        "cursor",
        "a2a"
      ],
      "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan."
    },
    "profile": {
      "type": "string",
      "enum": [
        "guided"
      ],
      "description": "Set to guided to preserve the compact build-and-test surface through project handoff. Omit for the default full compatibility surface."
    },
    "bootstrapRequestId": {
      "type": "string",
      "pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
      "description": "Non-secret local request ID returned by project prepare. Claude Code only."
    },
    "bootstrapChallenge": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{43}$",
      "description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store."
    }
  },
  "description": "Provide exactly one project selector and a supported agentic workspace client (codex, roo, claude-code, or cursor) to receive executable installer argv.",
  "oneOf": [
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "projectId"
      ],
      "properties": {
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256,
          "description": "Exact Spala project ID. Mutually exclusive with subdomain."
        },
        "client": {
          "type": "string",
          "enum": [
            "codex",
            "roo",
            "claude-code",
            "cursor",
            "a2a"
          ],
          "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan."
        },
        "profile": {
          "type": "string",
          "enum": [
            "guided"
          ],
          "description": "Set to guided to preserve the compact build-and-test surface through project handoff. Omit for the default full compatibility surface."
        },
        "bootstrapRequestId": {
          "type": "string",
          "pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
          "description": "Non-secret local request ID returned by project prepare. Claude Code only."
        },
        "bootstrapChallenge": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{43}$",
          "description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store."
        }
      }
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "subdomain"
      ],
      "properties": {
        "subdomain": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256,
          "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId."
        },
        "organizationId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256,
          "description": "Optional organization ID returned for the signed-in account."
        },
        "client": {
          "type": "string",
          "enum": [
            "codex",
            "roo",
            "claude-code",
            "cursor",
            "a2a"
          ],
          "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan."
        },
        "profile": {
          "type": "string",
          "enum": [
            "guided"
          ],
          "description": "Set to guided to preserve the compact build-and-test surface through project handoff. Omit for the default full compatibility surface."
        },
        "bootstrapRequestId": {
          "type": "string",
          "pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
          "description": "Non-secret local request ID returned by project prepare. Claude Code only."
        },
        "bootstrapChallenge": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{43}$",
          "description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store."
        }
      }
    }
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "project": {
      "type": "object",
      "additionalProperties": true
    },
    "handoff": {
      "type": "object",
      "additionalProperties": true
    },
    "mcpUrl": {
      "type": "string",
      "format": "uri"
    },
    "toolProfile": {
      "type": "string",
      "enum": [
        "full",
        "guided"
      ]
    },
    "serverName": {
      "type": "string"
    },
    "transport": {
      "type": "string"
    },
    "preparedByProjectBackend": {
      "type": "boolean"
    },
    "bootstrapPreparedByProjectBackend": {
      "type": "boolean"
    },
    "workspaceOnly": {
      "type": "boolean"
    },
    "installPlan": {
      "type": "object",
      "additionalProperties": true
    },
    "bootstrap": {
      "type": "object",
      "additionalProperties": true
    },
    "nextSteps": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "intentBoundary": {
      "type": "object",
      "additionalProperties": true
    },
    "rule": {
      "type": "string"
    }
  },
  "required": [
    "project",
    "handoff",
    "mcpUrl",
    "serverName",
    "transport",
    "installPlan",
    "bootstrap"
  ],
  "description": "Prepared project MCP connection and workspace-only installer handoff.",
  "additionalProperties": true
}
🔴project_get_mcp_manifest(projectId, subdomain, organizationId, client, profile, ...)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "description": "Exact Spala project ID. Mutually exclusive with subdomain."
    },
    "subdomain": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId."
    },
    "organizationId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "description": "Optional organization ID returned for the signed-in account."
    },
    "client": {
      "type": "string",
      "enum": [
        "codex",
        "roo",
        "claude-code",
        "cursor",
        "a2a"
      ],
      "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan."
    },
    "profile": {
      "type": "string",
      "enum": [
        "guided"
      ],
      "description": "Set to guided to preserve the compact build-and-test surface through project handoff. Omit for the default full compatibility surface."
    },
    "bootstrapRequestId": {
      "type": "string",
      "pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
      "description": "Non-secret local request ID returned by project prepare. Claude Code only."
    },
    "bootstrapChallenge": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{43}$",
      "description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store."
    }
  },
  "description": "Provide exactly one project selector and a supported agentic workspace client (codex, roo, claude-code, or cursor) to receive executable installer argv.",
  "oneOf": [
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "projectId"
      ],
      "properties": {
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256,
          "description": "Exact Spala project ID. Mutually exclusive with subdomain."
        },
        "client": {
          "type": "string",
          "enum": [
            "codex",
            "roo",
            "claude-code",
            "cursor",
            "a2a"
          ],
          "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan."
        },
        "profile": {
          "type": "string",
          "enum": [
            "guided"
          ],
          "description": "Set to guided to preserve the compact build-and-test surface through project handoff. Omit for the default full compatibility surface."
        },
        "bootstrapRequestId": {
          "type": "string",
          "pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
          "description": "Non-secret local request ID returned by project prepare. Claude Code only."
        },
        "bootstrapChallenge": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{43}$",
          "description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store."
        }
      }
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "subdomain"
      ],
      "properties": {
        "subdomain": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256,
          "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId."
        },
        "organizationId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256,
          "description": "Optional organization ID returned for the signed-in account."
        },
        "client": {
          "type": "string",
          "enum": [
            "codex",
            "roo",
            "claude-code",
            "cursor",
            "a2a"
          ],
          "description": "Target MCP client for @spala-ai/mcp-install. Omit to receive client_selection_required without an executable mutation plan."
        },
        "profile": {
          "type": "string",
          "enum": [
            "guided"
          ],
          "description": "Set to guided to preserve the compact build-and-test surface through project handoff. Omit for the default full compatibility surface."
        },
        "bootstrapRequestId": {
          "type": "string",
          "pattern": "^claim_[A-Za-z0-9_-]{20,80}$",
          "description": "Non-secret local request ID returned by project prepare. Claude Code only."
        },
        "bootstrapChallenge": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{43}$",
          "description": "S256 challenge returned by project prepare. The verifier remains only in the local credential store."
        }
      }
    }
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "schemaVersion": {
      "type": "integer"
    },
    "name": {
      "type": "string"
    },
    "project": {
      "type": "object",
      "additionalProperties": true
    },
    "handoff": {
      "type": "object",
      "additionalProperties": true
    },
    "mcpUrl": {
      "type": "string",
      "format": "uri"
    },
    "manifestUrl": {
      "type": "string",
      "format": "uri"
    },
    "toolProfile": {
      "type": "string",
      "enum": [
        "full",
        "guided"
      ]
    },
    "serverName": {
      "type": "string"
    },
    "transport": {
      "type": "string"
    },
    "auth": {
      "type": "string"
    },
    "installPlan": {
      "type": "object",
      "additionalProperties": true
    },
    "bootstrap": {
      "type": "object",
      "additionalProperties": true
    },
    "nextSteps": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "intentBoundary": {
      "type": "object",
      "additionalProperties": true
    },
    "rule": {
      "type": "string"
    }
  },
  "required": [
    "schemaVersion",
    "name",
    "project",
    "handoff",
    "mcpUrl",
    "manifestUrl",
    "serverName",
    "transport",
    "installPlan",
    "bootstrap"
  ],
  "description": "Prepared project MCP manifest, exact URLs, and workspace-only installer handoff.",
  "additionalProperties": true
}
🟢project_get_public_context(projectId, subdomain, organizationId)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "description": "Exact Spala project ID. Mutually exclusive with subdomain."
    },
    "subdomain": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId."
    },
    "organizationId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "description": "Optional organization ID returned for the signed-in account."
    }
  },
  "description": "Provide exactly one project selector: projectId or subdomain. organizationId is optional when selecting by subdomain.",
  "oneOf": [
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "projectId"
      ],
      "properties": {
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256,
          "description": "Exact Spala project ID. Mutually exclusive with subdomain."
        }
      }
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "subdomain"
      ],
      "properties": {
        "subdomain": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256,
          "description": "Exact project subdomain returned by the Spala projects API. Mutually exclusive with projectId."
        },
        "organizationId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256,
          "description": "Optional organization ID returned for the signed-in account."
        }
      }
    }
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "project": {
      "type": "object",
      "additionalProperties": true
    },
    "intentBoundary": {
      "type": "object",
      "additionalProperties": true
    },
    "handoff": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "project",
    "intentBoundary",
    "handoff"
  ],
  "description": "Safe documented project handoff context without credentials or executable installer arguments.",
  "additionalProperties": true
}

권장 프롬프트

search_research
Search for information about [topic] using Spala Public MCP
예상 도구: docs_search
find_specific
Find [specific item] using Spala Public MCP
예상 도구: docs_search
retrieve_data
Get details about [item] from Spala Public MCP
예상 도구: spala_get_onboarding
fetch_info
Fetch [information type] using Spala Public MCP
예상 도구: spala_get_onboarding
list_items
List all [items] available in Spala Public MCP
예상 도구: template_list

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 16개
검증됨버전이 기록되지 않음도구 16개