Skip to main content
Glama

update_project

Idempotent

Update project metadata (name, description, multiTenant/publicSignup flags, email verification mode and email branding). Does not affect the project's data table or schema.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoUpdated display name
logoUrlNoHTTPS URL of the logo shown in this project's account emails (verification, password reset). Without it, the emails show the project name as text.
brandColorNoHeader and button color for this project's account emails, as #rrggbb.
project_idNoProject record ID (e.g. 'PRJ3'). Optional if whoami returned a default_project_id — falls back to that; pass explicitly to target a different project.
descriptionNoUpdated description
multiTenantNoUpdated multiTenant flag. true = each tenantId-less signup creates its own tenant; false = single shared tenant (only the first signup bootstraps it, others join via tenantId). Only takes effect when publicSignup is also true.
publicSignupNoUpdated publicSignup flag. true = the public may self-register a new tenant via /auth/signup (subject to multiTenant above); false = only the project owner may create tenants, via direct POST /tenants.
emailVerificationNoEmail verification for this project's users. off (default): no verification email is sent. optional: a verification email is sent on signup and emailVerified is tracked, but nothing is blocked. required: signup returns no session and signin is refused with EMAIL_NOT_VERIFIED until the user verifies. Before switching a project that already has users to required, their existing accounts must be marked verified (scripts/backfill_project_auth_fields.py --grandfather-users) or they are locked out.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / brandColor
      Added value: +{
      +  "description": "Header and button color for this project's account emails, as #rrggbb.",
      +  "type": "string"
      +}
    • addedInput schema / properties / emailVerification
      Added value: +{
      +  "description": "Email verification for this project's users. off (default): no verification email is sent. optional: a verification email is sent on signup and emailVerified is tracked, but nothing is blocked. required: signup returns no session and signin is refused with EMAIL_NOT_VERIFIED until the user verifies. Before switching a project that already has users to required, their existing accounts must be marked verified (scripts/backfill_project_auth_fields.py --grandfather-users) or they are locked out.",
      +  "enum": [
      +    "off",
      +    "optional",
      +    "required"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / logoUrl
      Added value: +{
      +  "description": "HTTPS URL of the logo shown in this project's account emails (verification, password reset). Without it, the emails show the project name as text.",
      +  "type": "string"
      +}
  2. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds a genuinely useful boundary ('does not affect the data table or schema'), though it omits partial-update behavior for the 0-required-parameter semantics.

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 tight sentences, purpose front-loaded, second sentence adding scope with zero waste. Nothing redundant.

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 100% schema coverage, annotations covering safety, and no output schema, the definition gives an agent everything needed to call correctly. Only the absence of any when-to-use routing keeps it from a 5.

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 each parameter carries rich guidance (e.g., multiTenant/publicSignup interaction, emailVerification lock-out warning). The description only names the fields without adding format or interaction detail, so the baseline 3 is appropriate.

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?

States a specific verb+resource ('Update project metadata') and enumerates the affected surface (name, description, flags, email verification/branding). The scope boundary 'Does not affect the project's data table or schema' helps distinguish it from update_field/update_entity, though it doesn't name create_project or describe_project explicitly.

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

Usage Guidelines3/5

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

Clarifies what is and isn't affected, implying it's for mutating project-level settings rather than schema/data. However, it gives no explicit when-to-use routing versus siblings like describe_project or create_project, and no prerequisites for invoking it.

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