---
title: app_plan_preview
url: "/docs/ai-agents/mcp-tools/app-plans/app_plan_preview/"
canonical_url: https://docs.blossom88.com/docs/ai-agents/mcp-tools/app-plans/app_plan_preview/
markdown_url: https://docs.blossom88.com/docs/ai-agents/mcp-tools/app-plans/app_plan_preview.md
summary: 'Preview a Blossom App Plan without saving it: the App, Environment and Services
  it would create, and its Capacity effect.'
categories:
- mcp
- reference
---

# app_plan_preview

Preview a Blossom App Plan without saving it: the App, Environment and Services it would create, and its Capacity effect. Use it to compare choices.

| | |
|---|---|
| Access | Read only |
| Same as | [`blossom app_plan:preview`](/docs/reference/cli/app_plan/preview/) |

## Arguments

| Argument | Type | Description |
|---|---|---|
| `data` | object | The plan, as in app_plan.yml: the repository and how its Services run. Required. |
| `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. |
| `location` | string | Location id; defaults to the Account's default Location. |

## Example

```json
{"data":{"clone_url":"https://github.com/acme/shop","services":[{"name":"web","command":"web","port":3000,"publicly_exposed":true}]}}
```
