# Platform > Managed hosting for small web apps, automations and MCP servers. One JavaScript file is a complete app: `export default { fetch(req, ctx), jobs, tools }`. The platform provides login, a SQL database, key-value storage, file storage, background jobs and schedules, all through the `ctx` object. No Node.js, no npm packages, no filesystem, no servers to run. Use the spec below when generating code for this platform. The spec is the complete contract; anything not in it is not available. ## Spec - [Platform spec for AI assistants](/docs/ai/README.md): project contract, every `ctx` method with examples, jobs and schedules, external APIs, what is not available, Express/Flask porting table, checklist. - [Prompt to paste into an AI tool](/docs/ai/prompt.md): short version of the rules that makes an assistant produce a compliant app. - [ctx type definitions](/docs/ai/ctx.d.ts): TypeScript shape of `ctx`, `Tool`, `ResourceDef`, `PromptDef`. ## MCP servers - Add a `tools` object to the file (`{ name: { description, input: , async run(input, ctx) } }`) and set `"mcp": true` in `platform.json`. The platform serves MCP (Streamable HTTP) at `https://./mcp`; optional `resources` and `prompts` work the same way. See section 2b of the spec. - `mcp_access`: `public` (anyone, `ctx.user` is null) or `users` (platform handles OAuth / tokens, `ctx.user` is set, `ctx.auth.require()` works). - Connect: Claude.ai connectors, `claude mcp add --transport http /mcp`, or `{ "mcpServers": { "": { "url": "/mcp" } } }`. ## Examples - [hello](/docs/ai/examples/hello/app.js): the smallest app. - [customer-portal](/docs/ai/examples/customer-portal/app.js): login, per-user orders, admin role, nightly job. - [webhook-to-crm](/docs/ai/examples/webhook-to-crm/app.js): webhook in, store, job creates a HubSpot deal using an app secret and stable enqueue key. - [scheduled-report](/docs/ai/examples/scheduled-report/app.js): nightly CSV report into file storage, manual trigger. - [coach-mcp](/docs/ai/examples/coach-mcp/app.js): MCP server for a coach, login required: programme, check-ins, progress, bookings, admin tool, resource and prompt. - [shop-mcp](/docs/ai/examples/shop-mcp/app.js): public MCP server for a webshop: order status, returns, FAQ, opening hours. ## Deploying - CLI: `platform init`, `platform dev`, `platform deploy`, `platform versions`, `platform rollback `. - Dashboard: paste the single file. Both produce the same immutable version. - REST: `POST /projects` `{name, features}`, `POST /projects/:id/deploy` (multipart: `code`, `migrations`), `GET /projects/:id/versions`, `POST /projects/:id/rollback` `{version}`.