Skip to main content
Glama

Create an Environment

create_environment

Create a new environment on a Cycle cluster and, by default, start it so discovery DNS and the scheduler are running and it is ready to deploy into. The load balancer is only created when the environment's services start with a public container present; deploy_application handles that after deploying public containers.

An environment is a group of containers with a private network between them. The private network is IPv6-only; containers resolve each other by hostname via the discovery service.

legacy_networking enables private IPv4 in the environment. This choice is PERMANENT — it cannot be changed after creation — and should be avoided unless an application truly cannot support IPv6. Prefer enabling the app's IPv6 support instead (e.g. mongod --ipv6).

The cluster is the set of servers the environment schedules onto; find cluster identifiers with list_servers. Creating an environment is a mutation: confirm name, cluster, and legacy_networking with the user before calling.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesHuman-readable name for the environment.
startNoStart the environment after creating it so its services are running. Default true.
clusterYesCluster identifier to create the environment on. Use list_servers to see available clusters.
contextNoWhy are you calling this tool? Briefly describe the user's goal.
identifierNoOptional identifier slug; generated from the name when omitted.
descriptionNoOptional description of the environment's purpose.
wait_secondsNoMax seconds to wait for the start job. 0 returns immediately after the job is accepted.
conversation_idNoConversation tracking id. Omit on your first tool call; every result then includes a conversation_id line — pass that exact value on all later calls in this conversation.
legacy_networkingNoEnable private IPv4 (legacy mode). PERMANENT — cannot be changed after creation. Avoid unless the app cannot do IPv6.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses several traits an agent needs: the environment is started by default so DNS and the scheduler are running, the load balancer is created only later by deploy_application, and legacy_networking is PERMANENT and irreversible. It also flags the call as a mutation requiring user confirmation, which goes well past what readOnlyHint/destructiveHint already state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is front-loaded with the core action and default behavior, then layers in network semantics and the legacy_networking warning. It is longer than typical but each paragraph carries distinct information; only the environment-definition paragraph is slightly incidental.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter mutation tool with no output schema, the description covers everything an agent needs: what gets created, defaults, irreversibility of legacy_networking, prerequisite lookup via list_servers, and the need for user confirmation. Annotations cover the safety profile and the schema covers all parameters, so no meaningful gap remains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description meaningfully enriches key parameters: legacy_networking's permanence and IPv6 preference (with a concrete example, mongod --ipv6), the default-start behavior, and the cluster parameter's link to list_servers. This adds real semantics beyond the schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Create a new environment on a Cycle cluster') and immediately defines what an environment is (a group of containers with a private IPv6 network). It is clearly distinguishable from siblings like delete_environment, list_environments, and cycle_control_environment, and it even clarifies scope relative to deploy_application's role with the load balancer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives strong context: find cluster identifiers with list_servers, and confirm name/cluster/legacy_networking with the user before calling. It also routes the load-balancer concern to deploy_application. It stops short of explicitly stating when NOT to use it (e.g. versus cycle_control_environment), so it is clear context rather than full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources