Skip to main content
Glama

Update project

update_project
DestructiveIdempotent

Rename a project, update its description, change visibility, link access or lifecycle, or correct its run plan. The slug + URL stay the same. Setting run_plan only records how the project should be brought up; call init_project when you want it rebuilt.

Input Schema

NameRequiredDescriptionDefault
nameNoNew project name. The slug and URL do not change.
accessNoWho may open the URL. public = anyone with the link. team = sign-in required, and only for members of this account. password = anyone who enters the password set with access_password, no account needed. Switching away from password discards the password.
run_planNoHow this project installs and starts, as returned by get_project. Replaces the stored plan wholesale, so send every field you want kept. Set port to null when the project isn't a server (a library, a CLI, a batch job): bring-up then installs it and stops, instead of trying to serve it.
lifecycleNopersistent = lives until deleted. ephemeral = remove it with cleanup_project when its task is done.
project_idYesThe project's id, as returned by create_project or list_projects.
visibilityNopublic = live at the project URL. private = not publicly reachable. The slug and URL stay the same either way.
descriptionNoNew one-line description.
access_passwordNoSet or change the password for access password. Required when switching to password unless one is already set; send it alone to change the password, which signs out everyone who used the old one. At least 4 characters, so a 4 digit code works. Write-only: it is stored encrypted and never returned.

Output Schema

NameRequiredDescriptionDefault
idYesProject id.
urlNoPublic URL. null while the project is private.
nameNoProject name.
accessNoWho may open the URL once it is public.
run_planNoHow bring-up installs and starts the project.
lifecycleNoephemeral projects are removed with cleanup_project.
updated_atNoISO 8601 timestamp.
visibilityNopublic = live at url. private = not publicly reachable.
descriptionNoOne-line description.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already flag destructive=true and idempotent=true. The description adds non-obvious behavior beyond the schema: the slug and URL do not change on rename or visibility change, and run_plan is a stored intention rather than an action. What is actually destroyed by the destructive hint (e.g. wholesale run_plan replacement, password invalidation) is left to the schema.

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

Conciseness5/5

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

Two sentences, the operation scope first and the run_plan/init_project caveat second. Nothing redundant; every clause carries distinct information.

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?

With an output schema present and fully documented parameters, the description only needs to convey scope and the run_plan caveat, which it does. Minor gap: the destructive nature of wholesale run_plan replacement and password invalidation isn't surfaced at the top level, though the schema covers it.

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 description coverage is 100% and the parameter descriptions are richer than the summary text (e.g. the access enum semantics, port rules, password behavior). The description mostly restates the field list, so the 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?

Specific verb (update/rename/change) plus resource and an enumeration of the mutable facets: name, description, visibility, access, lifecycle, run plan. It also explicitly distinguishes itself from init_project, so an agent can tell the two apart without opening either schema.

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?

States clearly that setting run_plan only records intent and that init_project should be called when a rebuild is wanted, which is a real routing decision. It does not, however, cover other nearby alternatives (deploy, start_app, update_server) or when not to update at all.

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.