{"schemaVersion":1,"name":"Spala Public MCP","serverName":"spala_public_mcp","mcpUrl":"https://mcp.spala.ai/mcp","manifestUrl":"https://mcp.spala.ai/mcp/install-manifest","transport":"streamable-http","protocolCompatibility":{"transport":"streamable-http","sdk":"@modelcontextprotocol/sdk","sdkPackageRange":"^1.27.1","specReference":"https://modelcontextprotocol.io/specification","acceptedProtocolVersions":["2025-11-25","2025-06-18"],"minimumProtocolVersion":"2025-06-18","initializeBehavior":"MCP protocol version is negotiated during initialize. This standalone release accepts only 2025-06-18 or newer supported protocol revisions and rejects older initialize protocolVersion values.","rawHttpHeaders":{"contentType":"application/json","accept":"application/json, text/event-stream"}},"maintainer":{"name":"Spala AI","contact":"paul@spala.ai","website":"https://spala.ai/"},"auth":"spala_platform_auth","authNotes":"Account and project tools require a public MCP bearer with scope api. Revoked access receives a new OAuth challenge.","role":"public-spala-mcp","dashboardUrl":"https://dashboard.spala.ai","agentStartUrl":"https://spala.ai/agents.md","links":{"agentStart":"https://spala.ai/agents.md","rootAgentJson":"https://spala.ai/.well-known/agent.json","rootMcpJson":"https://spala.ai/.well-known/mcp.json","rootLlmsTxt":"https://spala.ai/llms.txt","publicMcp":"https://mcp.spala.ai/mcp","mcpProfile":"https://docs.spala.ai/agents/mcp","npmInstaller":"https://www.npmjs.com/package/@spala-ai/mcp-install","agentIntegrations":"https://github.com/spala-ai/agent-integrations","postmanWorkspace":"https://www.postman.com/paul-8c16afeb-1705125/spala-public-mcp/overview","postmanDocumentation":"https://documenter.getpostman.com/view/54332390/2sBY4QtKjd","installManifest":"https://mcp.spala.ai/mcp/install-manifest","oauthProtectedResource":"https://mcp.spala.ai/.well-known/oauth-protected-resource/mcp","oauthAuthorizationServer":"https://mcp.spala.ai/.well-known/oauth-authorization-server","dashboard":"https://dashboard.spala.ai","docs":"https://docs.spala.ai/agents/mcp","security":"https://spala.ai/security/","limits":"https://spala.ai/limits/","launchKit":"https://spala.ai/launch-kit/","productHuntKit":"https://spala.ai/product-hunt-kit/","projectMcpTest":"https://mcp.spala.ai/.well-known/project-mcp-test.json","projectMcpTestMarkdown":"https://mcp.spala.ai/.well-known/project-mcp-test.md","smitheryServerCard":"https://mcp.spala.ai/.well-known/mcp/server-card.json","brand":"https://spala.ai/brand/"},"projectMcpResolution":{"source":"The authenticated project handoff returned by Spala.","rule":"Call project_connect and execute its client-specific workspace-only project bind plan with the exact clean mcpUrl.","note":"Codex, Roo, and Cursor follow the protected bootstrap instructions. Claude Code follows the returned verifier preparation and delegated claim instructions without project OAuth. Agents must not derive project URLs, expose credentials, or install a project MCP globally.","execution":{"bootstrapClients":{"method":"process","shell":false,"tty":true,"waitForRunningProcess":true,"stdin":{"tool":"process_stdin","processSource":"running_process","valueSource":"bootstrap.consumeUrl","appendNewline":true,"shell":false,"argv":false},"sequence":[{"order":1,"action":"start_process","argvSource":"installPlan.argv","shell":false,"tty":true},{"order":2,"action":"wait_for_running_process","required":true},{"order":3,"action":"send_process_stdin","tool":"process_stdin","processSource":"running_process","valueSource":"bootstrap.consumeUrl","appendNewline":true}]},"claudeCode":{"method":"process","shell":false,"tty":false,"waitForRunningProcess":false,"stdin":null,"sequence":[{"order":1,"action":"run_process","argvSource":"installPlan.argv","shell":false}]}}},"oauth":{"protectedResourceMetadata":"https://mcp.spala.ai/.well-known/oauth-protected-resource/mcp","authorizationServerMetadata":"https://mcp.spala.ai/.well-known/oauth-authorization-server","authorizationServer":"https://mcp.spala.ai","authorizationEndpoint":"https://mcp.spala.ai/oauth/authorize","dashboardAuthorizationUrl":"https://dashboard.spala.ai/mcp/authorize"},"publicTools":["spala_help","spala_get_onboarding","spala_get_tool_map","docs_search","template_list","addon_list"],"authenticatedTools":["spala_start","account_status","account_setup","organization_create","project_list","project_create","project_connect","project_select","project_get_mcp_manifest","project_get_public_context"],"toolCapabilities":[{"name":"spala_help","requiresAuth":false,"effect":"read","purpose":"Explain what Spala is, what the public MCP does, and where agents should start before authentication."},{"name":"spala_get_onboarding","requiresAuth":false,"effect":"read","purpose":"Return first-call onboarding for agents, including the public MCP role, project MCP role, auth metadata, enabled authenticated handoff, and required first project-MCP calls."},{"name":"spala_get_tool_map","requiresAuth":false,"effect":"read","purpose":"Return machine-readable public MCP vs project MCP routing, auth-gated tool names, OAuth metadata URLs, and exact-URL handoff rules."},{"name":"docs_search","requiresAuth":false,"effect":"read","purpose":"Search public Spala agent-facing docs for setup, OAuth, npm install, project handoff, pricing, security, limits, and MCP boundary questions."},{"name":"template_list","requiresAuth":false,"effect":"read","purpose":"List public Spala backend templates so agents can plan backend shape before using the dashboard or a separately provided project MCP."},{"name":"addon_list","requiresAuth":false,"effect":"read","purpose":"List public Spala addons and integrations so agents can plan backend workflows before using the dashboard or a separately provided project MCP."},{"name":"spala_start","requiresAuth":true,"available":true,"effect":"read","authFailureHint":"Missing, expired, or revoked bearer: HTTP 401 OAuth challenge; temporary service failure: HTTP 503.","purpose":"Run versioned authenticated startup, verify account readiness, auto-scope one organization, and safely discover organizations and projects."},{"name":"account_status","requiresAuth":true,"available":true,"effect":"read","authFailureHint":"Missing, expired, or revoked bearer: HTTP 401 OAuth challenge; temporary service failure: HTTP 503.","purpose":"Verify the account session and return account readiness plus exact missing profile or company fields."},{"name":"account_setup","requiresAuth":true,"available":true,"effect":"write","authFailureHint":"Missing or invalid bearer: HTTP 401; missing api scope: HTTP 403; temporary service failure: HTTP 503.","purpose":"Complete missing account profile data and create the first company/workspace organization without sending the user to the dashboard."},{"name":"organization_create","requiresAuth":true,"available":true,"effect":"write","authFailureHint":"Missing or invalid bearer: HTTP 401; missing api scope: HTTP 403; temporary service failure: HTTP 503.","purpose":"Create an additional organization for the authenticated Spala platform user."},{"name":"project_list","requiresAuth":true,"available":true,"effect":"read","authFailureHint":"Missing or invalid bearer: HTTP 401; missing api scope: HTTP 403; temporary service failure: HTTP 503.","purpose":"List projects available to the authenticated Spala platform user. Use this after OAuth; anonymous public MCP calls cannot list projects."},{"name":"project_create","requiresAuth":true,"implemented":true,"available":true,"effect":"write","authFailureHint":"Missing or invalid bearer: HTTP 401; missing api scope: HTTP 403; temporary service failure: HTTP 503.","purpose":"Create a real Spala project through the authenticated platform API."},{"name":"project_connect","requiresAuth":true,"available":true,"effect":"write","idempotent":true,"workspaceOnly":true,"authFailureHint":"Missing, expired, or revoked bearer: HTTP 401 OAuth challenge; temporary service failure: HTTP 503.","purpose":"Enable MCP for one authorized project when needed and return an exact workspace-only project binding plan."},{"name":"project_select","requiresAuth":true,"available":true,"effect":"write","idempotent":true,"workspaceOnly":true,"authFailureHint":"Missing or invalid bearer: HTTP 401; missing api scope: HTTP 403; temporary service failure: HTTP 503.","purpose":"Compatibility alias for project_connect. Prepares project MCP and returns an exact workspace-only binding plan."},{"name":"project_get_mcp_manifest","requiresAuth":true,"available":true,"effect":"write","idempotent":true,"workspaceOnly":true,"authFailureHint":"Missing or invalid bearer: HTTP 401; missing api scope: HTTP 403; temporary service failure: HTTP 503.","purpose":"Prepare project MCP and return exact mcpUrl and manifestUrl values plus workspace-only project bind argv."},{"name":"project_get_public_context","requiresAuth":true,"available":true,"effect":"read","authFailureHint":"Missing or invalid bearer: HTTP 401; missing api scope: HTTP 403; temporary service failure: HTTP 503.","purpose":"Return safe documented project handoff context without exposing tokens, private source code, or unrelated customer data."}],"authRequiredTools":["spala_start","account_status","account_setup","organization_create","project_list","project_create","project_connect","project_select","project_get_mcp_manifest","project_get_public_context"],"authFailureHint":"Missing or invalid bearer returns HTTP 401 OAuth metadata; missing api scope returns HTTP 403 insufficient_scope; temporary service failures return HTTP 503.","authenticatedToolNotes":{"account_status":"Compatibility account-readiness tool. spala_start is the first protected workflow call and absorbs this status.","account_setup":"Fills missing profile data and creates the first company/workspace organization after the agent asks the human for required values.","project_list":"Lists projects available to the signed-in account.","project_connect":"Idempotently prepares the exact project backend and returns a client-specific workspace bind plan: protected bootstrap for Codex, Roo, and Cursor; direct bind plus project OAuth for Claude Code.","project_select":"Compatibility alias for project_connect with the same honest write semantics.","project_get_mcp_manifest":"Prepares project MCP and returns exact handoff URLs plus the same client-specific workspace binding contract as project_connect.","project_get_public_context":"Read-only project and handoff status without a client argument or executable installer argv.","project_create":"Creates a real project for the signed-in account.","spala_start":"Runs versioned authenticated startup with account readiness and safely scoped organization/project discovery.","organization_create":"Creates an additional organization for the signed-in account, then continue through spala_start."},"projectCreateWrites":true,"projectCreateCapability":{"name":"project_create","requiresAuth":true,"implemented":true,"available":true,"effect":"write","authFailureHint":"Missing or invalid bearer: HTTP 401; missing api scope: HTTP 403; temporary service failure: HTTP 503.","purpose":"Create a real Spala project through the authenticated platform API."},"projectMcpTestTemplate":"https://mcp.spala.ai/.well-known/project-mcp-test.json","projectHandoffExample":{"projectId":"proj_xxx","name":"Example Project","mcpUrl":"https://returned-by-spala.example/mcp?scope=builder%2Cproject%2Cdata","transport":"streamable-http","note":"Shape example only. Real URLs come exclusively from the authenticated project mcp-handoff endpoint."},"projectHandoffStatus":{"available":true,"code":"enabled","authValidation":"The public MCP securely validates api-scoped access before authenticated project operations.","reason":"Authenticated project connect prepares MCP server-side and returns an exact client-specific workspace binding plan.","installerScopeHandling":"Codex, Roo, and Cursor use immediate one-time bootstrap consumption through a local credential proxy. Claude Code uses a verifier-bound delegated claim through the same project-scoped proxy without a second browser login. No project MCP is installed globally."},"supportedInstallerClients":["codex","roo","claude-code","cursor","a2a"],"agentIntegrations":{"repository":"https://github.com/spala-ai/agent-integrations","instructions":"https://github.com/spala-ai/agent-integrations#readme","role":"Preferred reviewed native integration package for supported coding-agent clients.","clients":["claude-code","codex","gemini-cli","cursor","vscode-copilot"],"includesPublicMcp":true,"includesReviewedSkills":true,"credentialsBundled":false,"projectMcpUrlsBundled":false},"installer":{"package":"@spala-ai/mcp-install","role":"Project workspace binding installer and universal fallback for clients without a native public MCP integration.","version":"0.1.29","spec":"@spala-ai/mcp-install@0.1.29","maintenanceSpec":"@spala-ai/mcp-install@latest","maintenancePolicy":"Before public init or login, replace an exact older installer package spec in that command with the npm latest channel. Project bind argv remains exact-version pinned.","codexArgvPrefix":["npx","--yes","@spala-ai/mcp-install@0.1.29"],"execution":{"method":"process","shell":false,"tty":true,"waitForRunningProcess":true,"stdin":{"tool":"process_stdin","processSource":"running_process","valueSource":"bootstrap.consumeUrl","appendNewline":true,"shell":false,"argv":false},"sequence":[{"order":1,"action":"start_process","argvSource":"installPlan.argv","shell":false,"tty":true},{"order":2,"action":"wait_for_running_process","required":true},{"order":3,"action":"send_process_stdin","tool":"process_stdin","processSource":"running_process","valueSource":"bootstrap.consumeUrl","appendNewline":true}]}},"commands":{"installerNpm":"npx --yes @spala-ai/mcp-install@latest init --client <client> --yes --json","installerPnpm":"pnpm dlx @spala-ai/mcp-install@latest init --client <client> --yes --json","installerNpmArgv":{"init":["npx","--yes","@spala-ai/mcp-install@latest","init","--client","<client>","--yes","--json"],"status":["npx","--yes","@spala-ai/mcp-install@latest","status","--client","<client>","--json"]},"installerPnpmArgv":{"init":["pnpm","dlx","@spala-ai/mcp-install@latest","init","--client","<client>","--yes","--json"],"status":["pnpm","dlx","@spala-ai/mcp-install@latest","status","--client","<client>","--json"]},"codex":"npx --yes @spala-ai/mcp-install@latest init --client codex --yes --json","claudeCode":"claude mcp add --transport http spala_public_mcp \"https://mcp.spala.ai/mcp\"","geminiCliUser":"gemini mcp add --scope user --transport http spala_public_mcp \"https://mcp.spala.ai/mcp\""}}