Skip to main content
Glama

set_service_connection_default

Destructive

Choose which managed service gives one application environment a protocol's conventional connection names (DATABASE_URL and the PG* names for postgres, REDIS_URL for redis, NATS_URL, OPENSEARCH_URL, S3_ENDPOINT and AWS_* for s3, ...), or that none does. Every connected service is always delivered under its own prefix (ORDERS_DB_DATABASE_URL); the conventional names belong to one service per protocol, recorded the first time a deploy delivers them, and never move by themselves. When that service is retired while another service of the protocol still serves the environment, the application's deploys are refused until this is chosen (get_service_instance shows connection_delivery.holder_gone on the consumer). Name instance_id to choose a connected service, or none=true so the application reads only the prefixed names. Nothing is deployed: the next deploy delivers the choice. Requires applications.deploy and clusters.operate on the cluster.

Input Schema

NameRequiredDescriptionDefault
noneNotrue to choose that no service provides the conventional names, so the application reads the prefixed names. Omit when instance_id is named.
protocolYesWire protocol whose conventional names are chosen.
namespaceYesNamespace of the application environment on that cluster.
cluster_idYesCluster id (UUID) the application environment runs on.
instance_idNoManaged service instance id (UUID) that provides the names; it must serve this environment over this protocol. Omit when none is true.
application_idYesApplication id (UUID).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.1/5.0
Behavior4/5

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

Goes well beyond the annotations by explaining the ownership model: conventional names belong to one service per protocol, are recorded on first deploy, and never move by themselves — which is what makes this a destructiveHint=true action. It also discloses that nothing is deployed immediately and states the required permissions (applications.deploy, clusters.operate). It stops short of spelling out what is destroyed for the previous holder when the choice changes.

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?

Front-loaded with the core action, then the ownership model, then the failure mode, then the call modes, then permissions — a sensible ordering. The parenthetical list of protocol-to-variable mappings is longer than needed and mildly bloats an otherwise dense paragraph.

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

Completeness4/5

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

No output schema exists, and the description does the needed work: it says nothing is deployed, that the next deploy applies the choice, and where to look when the state is broken. Only the exact effect on the previously-holding service is left implicit.

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

Parameters3/5

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

Schema coverage is 100% and every parameter already carries a description, so the description's restatement of the instance_id/none=true alternation adds little new. Its enumerations (protocol examples) and the note that the instance must serve this environment over this protocol largely duplicate schema text, so baseline 3 applies.

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?

States a specific verb and resource: choose which managed service supplies a protocol's conventional connection names (DATABASE_URL, PG*, REDIS_URL, etc.) for one application environment, or that none does. This is clearly distinguishable from siblings like get_service_instance (diagnostic read) or prepare_service_retirement, and the naming examples make the target concept concrete.

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?

Explains the trigger condition explicitly ('When that service is retired while another service of the protocol still serves the environment, the application's deploys are refused until this is chosen') and names the two call modes (instance_id vs none=true). It also points at get_service_instance's connection_delivery.holder_gone as the diagnostic signal, though it never explicitly says when NOT to use this in favor of another tool.

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