{"schemaVersion":1,"name":"Spala Public MCP","serverName":"spala-public","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","initializeBehavior":"MCP protocol version is negotiated during initialize. Raw clients should use the protocolVersion returned by the server and the headers required by their MCP SDK/runtime.","rawHttpHeaders":{"contentType":"application/json","accept":"application/json, text/event-stream"}},"maintainer":{"name":"Spala AI","contact":"vitali@spala.ai","website":"https://spala.ai/"},"auth":"spala_platform_auth","authNotes":"Use Spala dashboard/platform auth. Google OAuth is one possible login method; project tools require the resulting platform authorization.","role":"public-spala-mcp","upstreamApi":"https://api.spala.ai","upstreamApiNote":"Control-plane API context only. Do not configure api.spala.ai or api.spala.ai/mcp as the Spala Public MCP server.","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://spala.ai/mcp-profile/","installManifest":"https://mcp.spala.ai/mcp/install-manifest","oauthProtectedResource":"https://mcp.spala.ai/.well-known/oauth-protected-resource","oauthAuthorizationServer":"https://mcp.spala.ai/.well-known/oauth-authorization-server","dashboard":"https://dashboard.spala.ai","docs":"https://docs.spala.ai","security":"https://spala.ai/security/","limits":"https://spala.ai/limits/","launchKit":"https://spala.ai/launch-kit/","productHuntKit":"https://spala.ai/product-hunt-kit/","mcpSmokeTest":"https://spala.ai/mcp-smoke-test/","projectMcpTest":"https://mcp.spala.ai/.well-known/project-mcp-test.json","projectMcpTestMarkdown":"https://mcp.spala.ai/.well-known/project-mcp-test.md","brand":"https://spala.ai/brand/"},"projectMcpResolution":{"source":"Authenticated Spala platform project selection data","rule":"Use the exact mcpUrl returned by project_select or project_get_mcp_manifest.","note":"Agents must not derive, guess, append /mcp to arbitrary URLs, or hardcode project MCP URLs from project names, slugs, hosts, or api.spala.ai patterns."},"oauth":{"protectedResourceMetadata":"https://mcp.spala.ai/.well-known/oauth-protected-resource","authorizationServerMetadata":"https://mcp.spala.ai/.well-known/oauth-authorization-server","authorizationServer":"https://api.spala.ai/mcp","note":"api.spala.ai/mcp is the Spala platform OAuth authorization server for this public MCP. It is not the MCP server URL agents should configure; configure mcp.spala.ai/mcp and use the bearer token from api.spala.ai/mcp for authenticated project tools."},"publicTools":["spala_help","spala_get_onboarding","spala_get_tool_map","docs_search","template_list","addon_list"],"authenticatedTools":["project_list","project_create","project_select","project_get_mcp_manifest","project_get_public_context"],"toolCapabilities":[{"name":"spala_help","requiresAuth":false,"effect":"read","purpose":"Explain Spala and public MCP starting points."},{"name":"spala_get_onboarding","requiresAuth":false,"effect":"read","purpose":"Return first-call onboarding for agents."},{"name":"spala_get_tool_map","requiresAuth":false,"effect":"read","purpose":"Return machine-readable public MCP vs project MCP routing."},{"name":"docs_search","requiresAuth":false,"effect":"read","purpose":"Search public Spala agent-facing docs index."},{"name":"template_list","requiresAuth":false,"effect":"read","purpose":"List public Spala backend templates for planning."},{"name":"addon_list","requiresAuth":false,"effect":"read","purpose":"List public Spala addons/integrations for planning."},{"name":"project_list","requiresAuth":true,"effect":"read","authFailureHint":"Follow HTTP 401 WWW-Authenticate resource metadata, complete Spala platform OAuth, then retry with Authorization: Bearer <token>.","purpose":"List projects available to the authenticated Spala platform user."},{"name":"project_create","requiresAuth":true,"dryRunOnly":true,"implemented":true,"effect":"no-op","authFailureHint":"Follow HTTP 401 WWW-Authenticate resource metadata, complete Spala platform OAuth, then retry with Authorization: Bearer <token>.","purpose":"Dry-run planning preview only in this deployment. Does not create a real project."},{"name":"project_select","requiresAuth":true,"effect":"read","authFailureHint":"Follow HTTP 401 WWW-Authenticate resource metadata, complete Spala platform OAuth, then retry with Authorization: Bearer <token>.","purpose":"Select a project and return the exact project mcpUrl. Do not infer this URL."},{"name":"project_get_mcp_manifest","requiresAuth":true,"effect":"read","authFailureHint":"Follow HTTP 401 WWW-Authenticate resource metadata, complete Spala platform OAuth, then retry with Authorization: Bearer <token>.","purpose":"Return the selected project MCP install manifest shape and exact mcpUrl."},{"name":"project_get_public_context","requiresAuth":true,"effect":"read","authFailureHint":"Follow HTTP 401 WWW-Authenticate resource metadata, complete Spala platform OAuth, then retry with Authorization: Bearer <token>.","purpose":"Return safe project handoff context for the selected authenticated project."}],"authRequiredTools":["project_list","project_create","project_select","project_get_mcp_manifest","project_get_public_context"],"authFailureHint":"Project tools return HTTP 401 with WWW-Authenticate and OAuth metadata when called without valid Spala platform authorization.","authenticatedToolNotes":{"project_list":"Requires Spala platform auth. Lists projects available to the authenticated user.","project_select":"Requires Spala platform auth. Returns the exact project MCP URL to use for backend work.","project_get_mcp_manifest":"Requires Spala platform auth. Returns the selected project MCP install manifest shape.","project_get_public_context":"Requires Spala platform auth. Returns safe project context for handoff.","project_create":"Dry-run only in the current public MCP deployment. It previews project creation and does not create a real project."},"dryRunProjectCreate":true,"projectCreateCapability":{"name":"project_create","requiresAuth":true,"dryRunOnly":true,"implemented":true,"effect":"no-op","authFailureHint":"Follow HTTP 401 WWW-Authenticate resource metadata, complete Spala platform OAuth, then retry with Authorization: Bearer <token>.","purpose":"Dry-run planning preview only in this deployment. Does not create a real project."},"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","transport":"streamable-http","note":"Example only. Agents must use the actual mcpUrl returned by project_select or project_get_mcp_manifest after auth."},"commands":{"codexAdd":"codex mcp add spala-public --url \"https://mcp.spala.ai/mcp\"","claudeCode":"claude mcp add --transport http spala-public \"https://mcp.spala.ai/mcp\"","geminiCli":"gemini mcp add spala-public --transport http \"https://mcp.spala.ai/mcp\""}}