env0
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@env0deploy the development environment from template 'app-dev'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Env0's MCP Server
The Env0 MCP Server connects AI tools Env0's platform. This gives AI agents, assistants, and chatbots the ability to interact with environments in Env0's platform (for example, deploying, canceling and getting the logs of environments), as well as getting the resources from Env0's Cloud Compass. All through natural language interactions.
🛠️ Installation
Requirements
Docker - Required to run the MCP server container
MCP Client - One of the following AI coding assistants:
Cursor, Claude Code, VSCode, Windsurf, Cline, Zed, JetBrains AI Assistant, or another MCP-compatible client
Env0 API Credentials - You'll need to gather the following from your env0 account:
🔑 API Key and Secret
Create an API key and secret by following the env0 API Keys guide.
🏢 Organization ID
Find your organization ID in the env0 dashboard:
Click on your organization icon in the bottom left corner
Select Settings from the left side panel
Go to the General tab under Organization Settings
Copy the Organization ID
For detailed instructions, see the env0 Organizations documentation.
Note: The Organization ID is required if you belong to multiple organizations. If you only have access to one organization, this step ensures the MCP server connects to the correct one.
Go to: Settings -> Cursor Settings -> MCP & Integrations -> New MCP Server
Pasting the following configuration into your Cursor ~/.cursor/mcp.json file is the recommended approach. You may also install in a specific project by creating .cursor/mcp.json in your project folder. See Cursor MCP docs for more info.
{
"mcpServers": {
"env0": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "ENV0_API_KEY=your-api-key-here",
"-e", "ENV0_API_SECRET=your-api-secret-here",
"-e", "ENV0_ORGANIZATION_ID=your-org-id-here",
"env0/mcp-server"
]
}
}
}Run this command. See Claude Code MCP docs for more info.
claude mcp add env0 -- docker run -i --rm -e ENV0_API_KEY=your-api-key-here -e ENV0_API_SECRET=your-api-secret-here -e ENV0_ORGANIZATION_ID=your-org-id-here env0/mcp-serverAdd this to your Windsurf MCP raw config file. See Windsurf MCP docs for more info.
{
"mcpServers": {
"env0": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "ENV0_API_KEY=your-api-key-here",
"-e", "ENV0_API_SECRET=your-api-secret-here",
"-e", "ENV0_ORGANIZATION_ID=your-org-id-here",
"env0/mcp-server"
]
}
}
}Add this to your VS Code MCP config file. See VS Code MCP docs for more info.
{
"mcp": {
"servers": {
"env0": {
"type": "stdio",
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "ENV0_API_KEY=your-api-key-here",
"-e", "ENV0_API_SECRET=your-api-secret-here",
"-e", "ENV0_ORGANIZATION_ID=your-org-id-here",
"env0/mcp-server"
]
}
}
}
}Open Cline.
Click the hamburger menu (☰) to open the side menu.
Go to the MCP Servers section.
Switch to the Installed tab.
Click on Configure MCP Servers.
Add the env0 MCP server to your configuration:
{
"mcpServers": {
"env0": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "ENV0_API_KEY=your-api-key-here",
"-e", "ENV0_API_SECRET=your-api-secret-here",
"-e", "ENV0_ORGANIZATION_ID=your-org-id-here",
"env0/mcp-server"
]
}
}
}Add this to your Zed settings.json. See Zed Context Server docs for more info.
{
"context_servers": {
"env0": {
"command": {
"path": "docker",
"args": [
"run", "-i", "--rm",
"-e", "ENV0_API_KEY=your-api-key-here",
"-e", "ENV0_API_SECRET=your-api-secret-here",
"-e", "ENV0_ORGANIZATION_ID=your-org-id-here",
"env0/mcp-server"
]
},
"settings": {}
}
}
}To configure the env0 MCP server in Augment Code, you can use either the graphical interface or manual configuration.
A. Using the Augment Code UI
Click the hamburger menu.
Select Settings.
Navigate to the Tools section.
Click the + Add MCP button.
Enter the following command:
docker run -i --rm -e ENV0_API_KEY=your-api-key-here -e ENV0_API_SECRET=your-api-secret-here -e ENV0_ORGANIZATION_ID=your-org-id-here env0/mcp-serverName the MCP: env0.
Click the Add button.
B. Manual Configuration
Press Cmd/Ctrl Shift P or go to the hamburger menu in the Augment panel
Select Edit Settings
Under Advanced, click Edit in settings.json
Add the server configuration to the
mcpServersarray in theaugment.advancedobject
{
"augment.advanced": {
"mcpServers": [
{
"name": "env0",
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "ENV0_API_KEY=your-api-key-here",
"-e", "ENV0_API_SECRET=your-api-secret-here",
"-e", "ENV0_ORGANIZATION_ID=your-org-id-here",
"env0/mcp-server"
]
}
]
}
}Once the MCP server is added, restart your editor.
Add this to your Roo Code MCP configuration file. See Roo Code MCP docs for more info.
{
"mcpServers": {
"env0": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "ENV0_API_KEY=your-api-key-here",
"-e", "ENV0_API_SECRET=your-api-secret-here",
"-e", "ENV0_ORGANIZATION_ID=your-org-id-here",
"env0/mcp-server"
]
}
}
}See Gemini CLI Configuration for details.
Open the Gemini CLI settings file. The location is
~/.gemini/settings.json(where~is your home directory).Add the following to the
mcpServersobject in yoursettings.jsonfile:
{
"mcpServers": {
"env0": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "ENV0_API_KEY=your-api-key-here",
"-e", "ENV0_API_SECRET=your-api-secret-here",
"-e", "ENV0_ORGANIZATION_ID=your-org-id-here",
"env0/mcp-server"
]
}
}
}If the mcpServers object does not exist, create it.
Open Claude Desktop developer settings and edit your claude_desktop_config.json file to add the following configuration. See Claude Desktop MCP docs for more info.
{
"mcpServers": {
"env0": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "ENV0_API_KEY=your-api-key-here",
"-e", "ENV0_API_SECRET=your-api-secret-here",
"-e", "ENV0_ORGANIZATION_ID=your-org-id-here",
"env0/mcp-server"
]
}
}
}Add this to your Opencode configuration file. See Opencode MCP docs for more info.
{
"mcp": {
"env0": {
"type": "local",
"command": [
"docker", "run", "-i", "--rm",
"-e", "ENV0_API_KEY=your-api-key-here",
"-e", "ENV0_API_SECRET=your-api-secret-here",
"-e", "ENV0_ORGANIZATION_ID=your-org-id-here",
"env0/mcp-server"
],
"enabled": true
}
}
}See OpenAI Codex for more information.
Add the following configuration to your OpenAI Codex MCP server settings:
[mcp_servers.env0]
command = "docker"
args = [
"run", "-i", "--rm",
"-e", "ENV0_API_KEY=your-api-key-here",
"-e", "ENV0_API_SECRET=your-api-secret-here",
"-e", "ENV0_ORGANIZATION_ID=your-org-id-here",
"env0/mcp-server"
]See JetBrains AI Assistant Documentation for more details.
In JetBrains IDEs go to
Settings->Tools->AI Assistant->Model Context Protocol (MCP)Click
+ Add.Click on
Commandin the top-left corner of the dialog and select the As JSON option from the listAdd this configuration and click
OK
{
"mcpServers": {
"env0": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "ENV0_API_KEY=your-api-key-here",
"-e", "ENV0_API_SECRET=your-api-secret-here",
"-e", "ENV0_ORGANIZATION_ID=your-org-id-here",
"env0/mcp-server"
]
}
}
}Click
Applyto save changes.The same way env0 could be added for JetBrains Junie in
Settings->Tools->Junie->MCP Settings
See Kiro Model Context Protocol Documentation for details.
Navigate
Kiro>MCP ServersAdd a new MCP server by clicking the
+ Addbutton.Paste the configuration given below:
{
"mcpServers": {
"env0": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "ENV0_API_KEY=your-api-key-here",
"-e", "ENV0_API_SECRET=your-api-secret-here",
"-e", "ENV0_ORGANIZATION_ID=your-org-id-here",
"env0/mcp-server"
],
"env": {},
"disabled": false,
"autoApprove": []
}
}
}Click
Saveto apply the changes.
Use the Add manually feature and fill in the JSON configuration information for that MCP server. For more details, visit the Trae documentation.
{
"mcpServers": {
"env0": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "ENV0_API_KEY=your-api-key-here",
"-e", "ENV0_API_SECRET=your-api-secret-here",
"-e", "ENV0_ORGANIZATION_ID=your-org-id-here",
"env0/mcp-server"
]
}
}
}Add this to your Amazon Q Developer CLI configuration file. See Amazon Q Developer CLI docs for more details.
{
"mcpServers": {
"env0": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "ENV0_API_KEY=your-api-key-here",
"-e", "ENV0_API_SECRET=your-api-secret-here",
"-e", "ENV0_ORGANIZATION_ID=your-org-id-here",
"env0/mcp-server"
]
}
}
}See Warp Model Context Protocol Documentation for details.
Navigate
Settings>AI>Manage MCP servers.Add a new MCP server by clicking the
+ Addbutton.Paste the configuration given below:
{
"env0": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "ENV0_API_KEY=your-api-key-here",
"-e", "ENV0_API_SECRET=your-api-secret-here",
"-e", "ENV0_ORGANIZATION_ID=your-org-id-here",
"env0/mcp-server"
],
"env": {},
"working_directory": null,
"start_on_launch": true
}
}Click
Saveto apply the changes.
See LM Studio MCP Support for more information.
Navigate to
Program(right side) >Install>Edit mcp.json.Paste the configuration given below:
{
"mcpServers": {
"env0": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "ENV0_API_KEY=your-api-key-here",
"-e", "ENV0_API_SECRET=your-api-secret-here",
"-e", "ENV0_ORGANIZATION_ID=your-org-id-here",
"env0/mcp-server"
]
}
}
}Click
Saveto apply the changes.Toggle the MCP server on/off from the right hand side, under
Program, or by clicking the plug icon at the bottom of the chat box.
You can configure the env0 MCP server in Visual Studio 2022 by following the Visual Studio MCP Servers documentation.
Add this to your Visual Studio MCP config file (see the Visual Studio docs for details):
{
"mcp": {
"servers": {
"env0": {
"type": "stdio",
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "ENV0_API_KEY=your-api-key-here",
"-e", "ENV0_API_SECRET=your-api-secret-here",
"-e", "ENV0_ORGANIZATION_ID=your-org-id-here",
"env0/mcp-server"
]
}
}
}
}For more information and troubleshooting, refer to the Visual Studio MCP Servers documentation.
Add this to your Crush configuration file. See Crush MCP docs for more info.
{
"$schema": "https://charm.land/crush.json",
"mcp": {
"env0": {
"type": "stdio",
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "ENV0_API_KEY=your-api-key-here",
"-e", "ENV0_API_SECRET=your-api-secret-here",
"-e", "ENV0_ORGANIZATION_ID=your-org-id-here",
"env0/mcp-server"
]
}
}
}Open the "Settings" page of the app, navigate to "Plugins," and enter the following JSON:
{
"mcpServers": {
"env0": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "ENV0_API_KEY=your-api-key-here",
"-e", "ENV0_API_SECRET=your-api-secret-here",
"-e", "ENV0_ORGANIZATION_ID=your-org-id-here",
"env0/mcp-server"
]
}
}
}More information is available on BoltAI's Documentation site. For BoltAI on iOS, see this guide.
Edit your Rovo Dev CLI MCP config by running the command below:
acli rovodev mcpAdd this configuration:
{
"mcpServers": {
"env0": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "ENV0_API_KEY=your-api-key-here",
"-e", "ENV0_API_SECRET=your-api-secret-here",
"-e", "ENV0_ORGANIZATION_ID=your-org-id-here",
"env0/mcp-server"
]
}
}
}To configure the env0 MCP server in Zencoder, follow these steps:
Go to the Zencoder menu (...)
From the dropdown menu, select Agent tools
Click on the Add custom MCP
Add the name and server configuration from below, and make sure to hit the Install button
{
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "ENV0_API_KEY=your-api-key-here",
"-e", "ENV0_API_SECRET=your-api-secret-here",
"-e", "ENV0_ORGANIZATION_ID=your-org-id-here",
"env0/mcp-server"
]
}Once the MCP server is added, you can easily continue using it.
See Qodo Gen docs for more details.
Open Qodo Gen chat panel in VSCode or IntelliJ.
Click Connect more tools.
Click + Add new MCP.
Add the following configuration:
Qodo Gen Docker Connection
{
"mcpServers": {
"env0": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "ENV0_API_KEY=your-api-key-here",
"-e", "ENV0_API_SECRET=your-api-secret-here",
"-e", "ENV0_ORGANIZATION_ID=your-org-id-here",
"env0/mcp-server"
]
}
}
}See Local and Remote MCPs for Perplexity for more information.
Navigate
Perplexity>SettingsSelect
Connectors.Click
Add Connector.Select
Advanced.Enter Server Name:
env0Paste the following JSON in the text area:
{
"args": [
"run", "-i", "--rm",
"-e", "ENV0_API_KEY=your-api-key-here",
"-e", "ENV0_API_SECRET=your-api-secret-here",
"-e", "ENV0_ORGANIZATION_ID=your-org-id-here",
"env0/mcp-server"
],
"command": "docker",
"env": {}
}Click
Save.
Related MCP server: MCP Cloud Services Server
🔧 Available Tools
The Env0 MCP Server provides a comprehensive set of tools to interact with Env0's platform through natural language. These tools are organized into the following categories:
get-projects
Retrieve all projects from your Env0 organization.
Description: Get the projects from env0
Parameters: None required
Usage: "Show me all my projects" or "List projects"
get-environments
Retrieve environments from Env0, with optional filtering.
Description: Get the environments from env0
Parameters:
environmentId(optional): Get a specific environment by IDname(optional): Filter by environment nameprojectId(optional): Filter by project IDlimit(optional): Maximum number of environments to returnoffset(optional): Pagination offset
Usage: "Show me all environments" or "Get environment with ID xyz"
deploy-environment
Create a new deployment for an existing environment.
Description: Creates a new deployment for an existing env0 environment. Always requires user to approve the deployment in env0.
Parameters:
environmentId(required): The environment ID to deploycomment(optional): Deployment commentrevision(optional): Specific revision to deploy
⚠️ Important: This action ALWAYS requires user approval before execution
Usage: "Deploy environment xyz" or "Deploy the latest version of my staging environment"
abort-environment
Abort a running environment's deployment.
Description: Abort an environment's current deployment
Parameters:
environmentId(required): The environment ID to abort
Usage: "Abort the deployment of environment xyz"
approve-environment
Approve an environment plan, pending approval for applying.
Description: Approve an environment plan, pending approval for applying.
Parameters:
environmentId(required): The environment ID to approve
Usage: "Approve environment xyz"
cancel-environment
Cancel an environment plan, pending user approval.
Description: Cancel an environment plan that is pending user approval.
Parameters:
environmentId(required): The environment ID to cancel
Usage: "Cancel environment xyz"
get-plan-logs
Retrieve Terraform/OpenTofu plan logs (or any other IaC's dry runs results) for an environment.
Description: Get plan logs for a specific environment from env0
Parameters:
environmentId(required): The environment ID to get logs for
Note: For full plan details, see the env0 console
Usage: "Show me the plan logs for environment xyz"
get-error-analysis
Analyze errors from the last environment deployment.
Description: Analyzes errors in the last environment's deployment
Parameters:
environmentId(required): The environment ID to analyze errors for
Usage: "Analyze errors for environment xyz" or "What went wrong with my last deployment?"
get-deployment-context
Fetch full debug context for one specific (historical) deployment: metadata, all step statuses, and the log of the most relevant step (auto-picks the failed step; falls back to the plan step on success).
Description: Debug a past deployment by ID — metadata + steps + auto-picked step log
Parameters:
deploymentLogId(required): The deployment to inspect. Usesearch-deploymentsfirst to find one.stepName(optional): Inspect a specific step (e.g.,tf:apply,tf:destroy). Omit to auto-pick (failed step preferred, falls back to plan step).
Note: For the latest deployment's plan log, prefer
get-plan-logs(no ID needed). For an error summary, preferget-error-analysis.state:getis blocked.Usage: "Why did the deployment from yesterday on env X fail?" → chain via
search-deploymentsthen this tool.
get-cloud-configurations
Retrieve cloud configurations from Env0's Cloud Compass.
Description: Get the compass cloud configurations
Parameters: None required
Usage: "Show me my cloud configurations"
get-cloud-resources
Retrieve cloud resources with advanced filtering capabilities.
Description: Get cloud resources from env0
Parameters: Complex filtering options including:
filters(required): Object with various filter options:cloudProvider: Filter by cloud provider (AWS, GCP, AzureLAW)cloudConfigurationId: Filter by cloud configuration IDenvironmentId: Filter by environment IDresourceId: Filter by resource IDname: Filter by resource nametype: Filter by resource typeregion: Filter by regionservice: Filter by servicemanagementType: Filter by management typedriftStatus: Filter by drift statusseverity: Filter by severity (High, Medium, Low, Optimal, Ignored, Reset)searchBy: General search term
paging: Pagination options (limit, offset)orderBy: Sorting options
Usage: "Show me all AWS resources" or "Find resources with high severity drift"
generate-iac
Generate Infrastructure as Code (Terraform/OpenTofu) from existing cloud resources.
Description: Generate Infrastructure as Code (IaC) for cloud resources
Parameters:
cloudResourceIds(required): Array of cloud resource IDs to generate IaC foriacType(required): Type of IaC to generate ("OpenTofu" or "Terraform")
Returns: Job ID for tracking progress
Usage: "Generate Terraform code for these resources" or "Create OpenTofu configuration for resource xyz"
check-iac-job-status
Monitor the progress of IaC generation jobs.
Description: Check the status and retrieve results of an Infrastructure as Code generation job
Parameters:
jobId(required): Job ID returned from generate-iac request
Note: Jobs can take up to around 1 minute to complete
Usage: "Check the status of job abc123" or "Is my IaC generation ready?"
💡 Usage Examples
Here are some example natural language queries you can use with the MCP server:
Project & Environment Management:
"Show me all my projects"
"List environments in project xyz"
"Get details for environment abc123"
"Do I have any environments in project xyz that require my attention?"
Deployments:
"Deploy my staging environment"
"Deploy environment xyz with comment 'hotfix deployment'"
"Abort the running deployment for environment xyz"
Monitoring:
"Show me the plan logs for my production environment"
"What's the status of environment abc123?"
"Analyze errors for environment xyz" or "What went wrong with my last deployment?"
"Why did the deployment from yesterday on env xyz fail?" (chains
search-deployments→get-deployment-context)"Show me the apply log for deployment abc123"
Cloud Resources:
"Show me all my AWS resources"
"Find resources with drift issues"
"List all S3 buckets in us-east-1 in AWS account xyz"
"Generate Terraform code for resource xyz from AWS account xyz"
"Check if my IaC generation job is complete"
For Development of the MCP Server
To set up the development environment and test the server:
Clone and install dependencies:
git clone <repository-url> cd mcp-server npm installRun the server:
npm startTest with MCP Inspector:
Use the MCP Inspector tool for testing and debugging:
npx @modelcontextprotocol/inspector npm startThis will open a web interface at http://localhost:6274 where you can interact with the MCP server and test its capabilities.
Authentication
To allow the MCP server to connect to Env0's platform, you need to provide your API credentials. To create a new API key, please follow (this guide)[https://docs.env0.com/docs/api-keys]
Once you have your API credentials, you can configure them in the MCP server by setting the following environment variables:
export ENV0_API_KEY="your-api-key-id"
export ENV0_API_SECRET="your-api-key-secret"
export ENV0_ORGANIZATION_ID="your-organization-id"You can also create a .env file like our example .env.example and fill in the values:
# Required: Your env0 API Key ID (Get this from the Env0 site using the guide above)
ENV0_API_KEY=your-api-key-id-here
# Required: Your env0 API Key Secret (Get this from the Env0 site using the guide above)
ENV0_API_SECRET=your-api-key-secret-here
# Your env0 Organization ID (found in your env0 organization settings). This is required if you have multiple organizations
ENV0_ORGANIZATION_ID=your-organization-id-hereDocker Configuration
The env0 MCP server supports Docker deployment, making it easy to run in containerized environments and integrate with MCP clients.
Building the Docker Image
Build the Docker image:
docker build -t env0/mcp-server .Test the container:
docker run --rm -e ENV0_API_KEY=your-api-key -e ENV0_API_SECRET=your-api-secret -e ENV0_ORGANIZATION_ID=your-org-id env0/mcp-server
Docker Transport Modes
The container supports both MCP transport modes:
1. Stdio Transport (Default)
Used by most MCP clients (Claude Desktop, Windsurf)
Communication via stdin/stdout
Use
-iflag for interactive mode
2. HTTP Transport
For remote MCP server access
Set
MCP_TRANSPORTenvironment variable tohttpto enable
docker run -d -p 3000:3000 -e PORT=3000 -e MCP_TRANSPORT=http env0/mcp-serverThen, configure your MCP client to use the HTTP transport mode:
{
"mcpServers": {
"env0": {
"serverUrl": "http://localhost:3000/mcp"
}
}
}Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/env0/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server