M
mcp
/plan_deploy
Plan an app deployment
Turns YOUR repo classification (you scan the repo and pass what you found) into a complete, approvable deploy plan WITHOUT creating anything. ⚡ REDU NEEDS THREE
liveunknown~5s typical
mcpmcp
$0.0020
per call
plus $0.001 platform fee per run
Open MCP server; Cracked bills routing only
$Set up https://cracked-ai-pearl.vercel.app/SKILL.md, then use Cracked to run mcp-cloud-redu-mcp /plan_deploy for me.
Input
| Field | Type | Description |
|---|---|---|
| source_token | string | The `source_token` returned by your prepare_upload upload. ⚡ PREFER THIS over pasting: red |
| redu_md | string | PASTE the raw contents of `redu.md` from the repo root if the file exists (just `cat redu. |
| compose_yaml | string | PASTE the raw contents of the repo's docker-compose.yml / compose.yaml if it has one. redu |
| dockerfile | string | PASTE the raw contents of the repo's Dockerfile if it has one. redu scans it server-side f |
| runtime* | string | Detected app language/runtime (node, python, go, ruby, ...). Informational — the app deplo |
| containerizable | boolean | Whether the app can run in a container. Almost always true (a container is the delivery un default true |
| serves_http | boolean | Whether the repo actually RUNS an HTTP server that listens on a port. Set FALSE for a libr |
| port | integer | Port the app's HTTP server listens on (PORT env / framework default / Dockerfile EXPOSE of |
| worker | boolean | HEADLESS WORKER / daemon: the repo runs a long-lived process with NO HTTP server (a chaos- |
| start | string | How the app starts (package.json start script / Procfile / Dockerfile CMD). |
| has_container | boolean | Whether the repo already has a Dockerfile / compose file. default false |
| needs_postgres | boolean | App uses Postgres (deps pg/prisma/sqlalchemy/drizzle or DATABASE_URL). default false |
| needs_redis | boolean | App uses Redis (deps redis/ioredis/bullmq/celery or REDIS_URL). default false |
| needs_clickhouse | boolean | App uses ClickHouse: the ANALYTICS / EVENTS store, a separate tier from the app's Postgres default false |
| needs_vector_db | boolean | App uses a vector DB (deps qdrant-client / langchain+embeddings or QDRANT_URL). default false |
| needs_compose | boolean | Set TRUE when the repo ships a docker-compose.yml / compose.yaml that runs MULTIPLE servic default false |
| app_profile | string (generic | wordpress | woocommerce) | Detected app profile. Set wordpress/woocommerce when source inspection finds wp-config.php default "generic" |
| cluster_target | boolean | Set TRUE when the user asked to deploy this app as an autoscaling cluster. For WordPress/W default false |
| cluster_media_mode | string (local_uploads | central_media_origin | media_space) | For WordPress/WooCommerce cluster_target:true, use media_space as the default real fix: Re default "local_uploads" |
| media_origin_url | string | Public base URL where WordPress wp-content/uploads is served when cluster_media_mode:'cent |
Call it
curl
curl https://cracked-ai-pearl.vercel.app/v1/run \
-H "Authorization: Bearer ck_live_..." -H "content-type: application/json" \
-d '{"provider":"mcp-cloud-redu-mcp","endpoint":"/plan_deploy","input":{"runtime":"...","containerizable":true,"has_container":false,"needs_postgres":false,"needs_redis":false,"needs_clickhouse":false,"needs_vector_db":false,"needs_compose":false,"app_profile":"generic","cluster_target":false,"cluster_media_mode":"local_uploads"}}'cli
npx cracked-ai run -p mcp-cloud-redu-mcp -e /plan_deploy -i '{"runtime":"...","containerizable":true,"has_container":false,"needs_postgres":false,"needs_redis":false,"needs_clickhouse":false,"needs_vector_db":false,"needs_compose":false,"app_profile":"generic","cluster_target":false,"cluster_media_mode":"local_uploads"}'mcp
run_tool({ provider: "mcp-cloud-redu-mcp", endpoint: "/plan_deploy", input: {"runtime":"...","containerizable":true,"has_container":false,"needs_postgres":false,"needs_redis":false,"needs_clickhouse":false,"needs_vector_db":false,"needs_compose":false,"app_profile":"generic","cluster_target":false,"cluster_media_mode":"local_uploads"} })Try it
Runs against your signed-in workspace balance. Sign in if you have not.