---
title: app_plan_deploy
url: "/docs/ai-agents/mcp-tools/app-plans/app_plan_deploy/"
canonical_url: https://docs.blossom88.com/docs/ai-agents/mcp-tools/app-plans/app_plan_deploy/
markdown_url: https://docs.blossom88.com/docs/ai-agents/mcp-tools/app-plans/app_plan_deploy.md
summary: 'Deploy a Blossom App Plan into a new Environment: a saved plan by id, or
  a new plan from data in one step.'
categories:
- mcp
- reference
---

# app_plan_deploy

Deploy a Blossom App Plan into a new Environment: a saved plan by id, or a new plan from data in one step. It builds and releases the App within the Account's capacity limit, and returns the Environment and its deploy Activity; follow it with activity_wait.

| | |
|---|---|
| Access | Changes Blossom |
| Same as | [`blossom app_plan:deploy`](/docs/reference/cli/app_plan/deploy/) |

## Arguments

| Argument | Type | Description |
|---|---|---|
| `id` | string | App Plan id; omit to plan data and deploy it. |
| `data` | object | The plan, as in app_plan.yml: the repository and how its Services run. |
| `data.app_name` | string | App name; an existing App gets a new Environment. |
| `data.environment_name` | string | Environment name, such as production. |
| `data.clone_url` | string | Git URL of the repository, such as https://github.com/acme/shop. |
| `data.repository_type` | string | private needs a connected Git provider. One of: `public`, `private`. |
| `data.subfolder` | string | Deploy only this folder of the repository, such as apps/web. |
| `data.quickstart` | string | Start from a Quickstart key from quickstart_list instead of a repository. |
| `data.services` | object list | — |
| `data.services[].name` | string | Service name; the public one is usually web. |
| `data.services[].command` | string | How it runs, such as bundle exec puma -C config/puma.rb, or web for the Procfile's web process. |
| `data.services[].port` | integer | Port the process listens on. |
| `data.services[].publicly_exposed` | boolean | Serve it at the Environment's URL. |
| `data.services[].paths` | string list | Paths routed to this Service, such as /cable. |
| `data.services[].resources` | object | — |
| `data.env_vars` | object | Variables to set, by name. |
| `data.database_instance_id` | string | An existing Database to link. |
| `data.cache_instance_id` | string | An existing Cache to link. |
| `data.location_id` | string | Location id; defaults to the Account's default Location. |
| `environment` | string | Environment name for this deploy, such as staging; defaults to the plan's. |
| `note` | string | A note for whoever reviews the plan: why it exists, what to check, what you decided. |
| `prepared_by` | string | The agent that prepared the plan, shown beside the person's name, such as Claude. |

## Example

```json
{"id":"app_plan-100"}
```
