Skip to main content
Glama

Get project settings

get_settings
Read-onlyIdempotent

A project's configuration: repo, ref, framework, port, build/dependency commands, health-check path, canonical host, sub-path, output dir, and environment variables. Shows whether the project already has a database or file storage: a managed Postgres shows up as DATABASE_URL and managed object storage as S3_ENDPOINT/S3_BUCKET/S3_ACCESS_KEY/S3_SECRET_KEY/S3_REGION/S3_FORCE_PATH_STYLE, and the app reads them straight from its environment at runtime. Secret-looking values are masked unless reveal_secrets=true AND the token is read-write — read-only tokens always receive masked values. A masked value is not a problem: the variable is set in the pod, so the app reads it from its environment and nobody needs to paste it.

Input Schema

NameRequiredDescriptionDefault
project_idYesthe project id (from list_projects)
reveal_secretsNowhen true, return full env var values including secrets; default false masks secret-looking values as ***. Requires a read-write token — read-only tokens always get masked values regardless of this flag. Changing env vars does not need it: set_env_vars merges by default, so writing one var never requires reading the others.

Output Schema

NameRequiredDescriptionDefault
refNo
envsYes
nameYes
portNo
repoNo
frozenNo
sub_pathNo
build_cmdNo
frameworkNo
expires_atNo
project_idYes
source_kindNo
display_nameNo
google_loginYes
canonical_hostNo
default_publicYes
dependencies_cmdNo
output_directoryNo
google_login_modeNo
health_check_pathNo
storage_mount_pathNo
google_login_allowed_emailsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.7/5.0
Behavior5/5

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

Annotations already cover the read-only/idempotent/non-destructive profile, but the description goes well beyond them: it discloses that secret-looking values are masked unless reveal_secrets=true AND the token is read-write, that read-only tokens always get masked values, and that masked values still work at runtime because the variable is injected into the pod. That is exactly the non-obvious operational context an agent cannot infer from structured fields.

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 content is front-loaded with the field inventory followed by the two constraints that matter (database/storage markers, then masking). It is slightly repetitive — the 'a masked value is not a problem' point is argued twice across the final two sentences — but every sentence carries real information.

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?

An output schema exists and annotations declare the safety profile, so the remaining burden is behavioral — auth-dependent masking and how env vars reach the app — which the description covers thoroughly. Nothing an agent needs in order to call this correctly is missing.

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 the reveal_secrets schema entry already documents masking and the read-write token requirement, so the description is largely restating structured data. project_id gets no additional meaning beyond the schema's 'from list_projects'. Baseline 3 applies when the schema does the heavy lifting.

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

Purpose4/5

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

The description precisely enumerates what the tool returns — repo, ref, framework, port, build commands, health-check path, canonical host, sub-path, output dir, env vars, and managed database/storage markers — so an agent knows exactly what resource this reads. It never contrasts with nearest siblings like get_build_env or update_settings, so differentiation is left to the name and title.

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

Usage Guidelines2/5

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

There is no statement of when to call this versus alternatives such as get_build_env, get_app_status, or list_projects, and no exclusions. The only workflow hint is indirect — a note in the schema that set_env_vars merges so reading isn't needed to write — which is not a 'use this tool when' instruction.

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