mcp server
creek
Open-source edge deployment platform. Deploy full-stack apps to Cloudflare Workers in seconds.
Set up
Runs on your computer. Pick your agent and operating system.
This project does not publish an install method we can turn into a config. Follow the README instead.
README
synced Oct 25, 2026Creek
Open-source deployment platform built on Cloudflare Workers.
One command deploys your full-stack app — frontend, SSR, database, cron, queue — to 300+ Cloudflare locations worldwide. Self-host on your own account, or use Creek Cloud.
npx creek deploy
What you get
- One-command deploys — auto-detects your framework, builds, and deploys
- Built-in resources — D1 database, R2 storage, KV cache, AI, Queues — provisioned per project
- Cron + Queue triggers — declare in
creek.toml, Creek wires everything up - Realtime sync — D1 writes auto-broadcast to connected clients via WebSocket
- Per-tenant analytics — requests, errors, latency, cron execution log
- Agent-first — JSON output, breadcrumb hints, MCP server, no CAPTCHAs
- Open source — Apache 2.0, self-host on your own Cloudflare account
Zero config, one command
cd my-vite-app
npx creek deploy
# Detected: creek.toml (Vite + React + D1 + KV)
# Building...
# Deploying to edge...
# ⬡ Deployed! https://my-vite-app-myteam.bycreek.com
Creek detects your framework, provisions resources, builds, and deploys.
Supported: React · Vue · Svelte · Solid · Astro · VitePress · Hono · TanStack Start · React Router · Next.js · vinext · static HTML WIP: Nuxt · SvelteKit
Try it — deploy these in ~15 seconds
No signup, no config. Click a badge, watch it go live.
| Repo | Stars | What you'll see | |
|---|---|---|---|
| satnaing/astro-paper | ⭐ 4.4k | Minimal, SEO-friendly Astro blog — the most popular Astro theme | |
| withastro/docs | ⭐ 1.6k | Astro's official documentation site | |
| vuejs/docs | ⭐ 3.2k | Vue 3's official documentation — VitePress | |
vitejs/vite /docs | ⭐ 58k | Vite's official documentation — VitePress in a monorepo subpath | |
| sanity-io/sanity-template-astro-clean | ⭐ 173 | Astro + Sanity starter — headless CMS pipeline | |
| danielcgilibert/blog-template | ⭐ 995 | Openblog — elegant, SEO-optimised Astro blog |
First click of any repo runs a full build (~60–90s). Every click after the first hits the build cache and deploys in ⚡ ~7s — the repo only rebuilds when someone pushes a new commit.
Add it to your own repo's README:
[](https://creek.dev/deploy/gh/YOUR-ORG/YOUR-REPO)
Supports GitHub tree/{branch}/{path} URLs for monorepos — point at a
subfolder the same way you'd link to it on GitHub.
Features
Realtime in 6 lines
WebSocket sync, optimistic updates, multi-user rooms. Zero boilerplate.
// Server
import { db } from "creek";
import { room } from "creek/hono";
app.use("/api/*", room());
app.post("/api/todos", async (c) => {
// db.mutate() auto-broadcasts to all connected clients
await db.mutate("INSERT INTO todos (room_id, text) VALUES (?, ?)",
c.var.room, await c.req.json().then(b => b.text));
return c.json({ ok: true });
});
// Client
import { LiveRoom, useLiveQuery } from "creek/react";
function App() {
const { data: todos, mutate } = useLiveQuery("/api/todos");
// Auto-refetches when data changes. Optimistic updates with auto-rollback.
}
Cron + Queue triggers
# creek.toml
[project]
name = "my-app"
[resources]
database = true
[triggers]
cron = ["0 */6 * * *"] # Every 6 hours
queue = true # Auto-provisions a CF Queue
// worker/index.ts
import { db, queue } from "creek";
export default {
async fetch(request, env) {
await queue.send({ type: "process", id: "123" });
return new Response("queued");
},
async scheduled(event, env, ctx) {
// Runs every 6 hours
await db.prepare("DELETE FROM stale WHERE created < ?").bind(Date.now() - 86400000).run();
},
async queue(batch, env, ctx) {
for (const message of batch.messages) {
// Process message
}
},
};
Per-tenant analytics
Built-in dashboard shows requests, errors, CPU latency (p50/p99) for the last 24h / 7d / 30d. Cron execution log included.
Built-in resources
[resources]
database = true # D1 (SQLite at the edge)
storage = true # R2 (object storage, zero egress)
cache = true # KV (key-value)
ai = true # Workers AI
Creek provisions per-tenant resources via the Cloudflare API. Each project gets its own isolated D1 database, R2 bucket, KV namespace.
Built for AI agents
# JSON output auto-enabled in non-TTY / CI
npx creek deploy --sandbox --json
{
"ok": true,
"url": "https://my-app-myteam.bycreek.com",
"deploymentId": "a1b2c3d4-...",
"cron": ["0 */6 * * *"],
"breadcrumbs": [
{ "command": "creek status", "description": "Check deployment status" }
]
}
- No CAPTCHAs — Agent Challenge protocol issues verified agent tokens (60/hr vs 10/hr)
- Breadcrumb hints in error responses guide agents to next steps
- MCP server at
mcp.creek.dev(in development) — any AI agent can deploy with a single tool call
Open source
Apache 2.0 licensed. The entire platform is open source — CLI, control plane, dashboard, runtime, sandbox, dispatch worker.
Self-host on your own Cloudflare account, or use Creek Cloud (managed).
git clone https://github.com/solcreek/creek.git
cd creek && pnpm install
# Copy wrangler.*.example → wrangler.*, fill in your CF account
pnpm --filter @solcreek/control-plane deploy
Enterprise governance features (SSO, approval workflows, policy engine) will be available under /ee in a separate license.
CLI Reference
creek deploy [dir] Deploy project or directory
creek deploy --template landing Start from a ready-made Vite + React template
creek deploy --dry-run Show the deploy plan without executing
creek deploy --json Output structured JSON (auto in CI)
creek deploy --skip-build Deploy without running build step
creek dev Local dev server with D1/KV/R2 simulation
creek status Project status, triggers, deployment info
creek deployments List deployment history
creek logs Read recent log entries (R2 archive)
creek logs --follow Live tail via WebSocket until Ctrl+C
creek logs --deployment <id> --outcome exception Filter by deploy / outcome / branch / level / search
creek rollback Rollback to a previous deployment
creek env set <key> <val> Set an environment variable
creek env ls List environment variables
creek domains add <host> Add a custom domain
creek login Authenticate with Creek
creek init Create creek.toml configuration
creek claim <sandboxId> Convert sandbox preview to permanent project
How it works
CLI / API / MCP
|
+------------+------------+
| |
Sandbox API Control Plane
(no auth, 60min) (auth, permanent)
| |
+------------+------------+
|
Workers for Platforms
(dispatch namespace)
|
+--------+--------+
| | |
Worker Static D1/R2/KV/Queue
Script Assets (per-tenant)
|
Cloudflare Edge
(300+ locations)
Sandbox path: creek deploy / creek deploy --template <name> → Sandbox API → live URL (60 min, no auth)
Production path: creek deploy → Control Plane → permanent URL + custom domain
Project structure
creek/
apps/
dashboard/ Vite + React + TanStack Router (app.creek.dev)
www/ Next.js marketing site via adapter-creek (creek.dev)
packages/
cli/ CLI — npm: creek
sdk/ TypeScript SDK — npm: @solcreek/sdk
runtime/ creek runtime for deployed apps — npm: @solcreek/runtime
deploy-core/ Shared WfP deployment logic
control-plane/ Hono API + Better Auth + D1 (api.creek.dev)
sandbox-api/ Public sandbox deploy API
sandbox-dispatch/ Sandbox routing + banner injection
dispatch-worker/ Production tenant routing
realtime-worker/ WebSocket via Durable Objects
remote-builder/ CF Containers remote build orchestrator
build-container/ Build environment Docker image
ui/ Shared UI (shadcn v4 + Base UI)
create-creek-app/ Template scaffolder — npm: create-creek-app
mcp-server/ MCP server (mcp.creek.dev)
Tech stack
- Runtime: Cloudflare Workers
- Framework: Hono (API), Vite + React (dashboard), Next.js (www)
- Database: Cloudflare D1 (SQLite) + Drizzle ORM
- Storage: Cloudflare R2
- Queue: Cloudflare Queues
- Auth: Better Auth (GitHub, Google, email/password, API keys)
- Multi-tenancy: Workers for Platforms (dispatch namespaces)
- Monorepo: pnpm workspaces + Turborepo
- Testing: Vitest (790+ tests)
Self-hosting
Creek is designed to run entirely on a single Cloudflare account.
Prerequisites
- Cloudflare account with Workers for Platforms enabled
- Node.js >= 18, pnpm >= 9
git clone https://github.com/solcreek/creek.git
cd creek
pnpm install
# Configure: copy each wrangler.*.example to wrangler.* and fill in
# your Cloudflare account ID, dispatch namespace, and resource bindings
# Deploy workers
pnpm --filter @solcreek/control-plane deploy
pnpm --filter @solcreek/sandbox-api deploy
pnpm --filter @solcreek/sandbox-dispatch deploy
pnpm --filter @solcreek/dispatch-worker deploy
See Self-Hosting Guide for detailed instructions.
Development
pnpm install
pnpm test # Run all tests (790+)
pnpm typecheck # TypeScript checks across all packages
pnpm dev # Start all dev servers
Next.js Adapter
Creek ships its own Next.js adapter — @solcreek/adapter-creek — purpose-built for Cloudflare Workers for Platforms.
npm install @solcreek/adapter-creek
creek deploy
The CLI auto-detects Next.js >= 16.2.3 and invokes the adapter. No config needed.
What it does differently from generic adapters:
- Streaming SSR via
TransformStream— compatible with Workers' request lifecycle (nonode:httpserver dependency) - Embedded manifests — all Next.js route/build/prerender manifests are inlined into the worker bundle via a custom
fsshim, so no filesystem reads at runtime - Node.js API shims —
http,https,net,inspector,fs,vm,processEventEmitter stubs — purpose-built for the APIs Next.js actually touches, not generic polyfills - Turbopack runtime patching — replaces dynamic
R.c()chunk loading with a staticrequireChunk()switch for Workers' no-filesystem constraint - Zero config — the adapter hooks into Next.js's
onBuildCompletelifecycle and produces a.creek/adapter-output/bundle the CLI uploads directly
Dogfooding: creek.dev is a Next.js app — its source lives in apps/www in this repo — and it's deployed on Creek's own infrastructure via creek deploy --yes. Same platform, same adapter, same pipeline that every other Creek user gets. If the adapter breaks, our own marketing site breaks first.
Ecosystem
- Awesome Creek — Curated list of templates, integrations, guides, and community projects. Submissions welcome.
- Templates Gallery — Live previews of official starter templates.
Contributing
We welcome contributions. Please see CONTRIBUTING.md for guidelines.
- Issues: github.com/solcreek/creek/issues
- Discussions: github.com/solcreek/creek/discussions
License
Apache 2.0 — see LICENSE.
creek.dev · Docs · Templates · Discord
Built by SolCreek.