create-environment · v2.0.0 · 2026-10-14 · sha256 845b65e2e5012018
create-environment v2.0.0A
Immutable. This exact content never changes and is served at /api/v1/blob/845b65e2e5012018.
---
name: create-environment
description: >-
Generate Harness Environment YAML for deployment targets and create via MCP. Supports PreProduction and
Production types with environment variables, manifest overrides, and multi-environment setup (dev,
staging, prod). Use when asked to create an environment, set up staging, configure production, define
deployment targets, or manage environment overrides. Trigger phrases: create environment, deployment
environment, setup dev, setup staging, setup production, environment variables, environment overrides.
metadata:
author: Harness
version: 2.0.0
mcp-server: harness-mcp-v2
summary: Create environments (PreProduction, Production) with overrides
license: Apache-2.0
compatibility: Requires Harness MCP v2 server (harness-mcp-v2)
---
# Create Environment
Generate Harness Environment YAML and push to Harness via MCP.
## Instructions
1. **Determine environment type** - `PreProduction` for dev/staging/QA, `Production` for live environments
2. **Define variables and overrides** - Environment-specific config values and manifest overrides
3. **Generate YAML** using the structure below
4. **Create via MCP** using `harness_create` with resource_type `environment`
## Environment Structure
```yaml
environment:
name: Staging
identifier: staging
orgIdentifier: default
projectIdentifier: my_project
type: PreProduction # PreProduction or Production
tags:
tier: staging
variables:
- name: domain
type: String
value: staging.myapp.com
- name: replicas
type: Number
value: "2"
- name: db_password
type: Secret
value: <+secrets.getValue("staging_db_password")>
overrides:
manifests:
- manifest:
identifier: values_override
type: Values
spec:
store:
type: Github
spec:
connectorRef: github
repoName: config
branch: main
paths: [values-staging.yaml]
```
## Environment Types
- `PreProduction` - Dev, QA, staging, integration environments
- `Production` - Live production environments (enables additional safeguards)
## Multi-Environment Setup
Create dev, staging, and prod:
```yaml
# Dev
environment:
name: Development
identifier: dev
type: PreProduction
variables:
- name: domain
type: String
value: dev.myapp.com
# Staging
environment:
name: Staging
identifier: staging
type: PreProduction
variables:
- name: domain
type: String
value: staging.myapp.com
# Production
environment:
name: Production
identifier: prod
type: Production
variables:
- name: domain
type: String
value: myapp.com
```
## Creating via MCP
```
Call MCP tool: harness_create
Parameters:
resource_type: "environment"
org_id: "<organization>"
project_id: "<project>"
body: <environment YAML>
```
List environments:
```
Call MCP tool: harness_list
Parameters:
resource_type: "environment"
org_id: "<organization>"
project_id: "<project>"
```
## Examples
- "Create dev, staging, and prod environments" - Generate 3 environments with appropriate types
- "Set up a production environment with overrides" - Production type with manifest overrides
## Performance Notes
- When creating multiple environments (dev/staging/prod), ensure variable values are distinct per environment.
- Verify that manifest override paths exist in the referenced repository before creating.
- Use Production type only for live environments — it enables additional safeguards like deployment freezes.
## Troubleshooting
- `DUPLICATE_IDENTIFIER` - Environment exists; use `harness_update`
- Production type enables deployment freeze and approval guardrails