Skip to main content
Glama

Update a project application module

updateAppModule
Destructive

Available with Bootify Professional. Update or rename a custom application module identified by its current name. When provided, references replace all current direct dependencies. The same graph defines package boundaries for MODULITH and physical build modules for MULTI_MODULE; select either with updateAdvancedOptions first. The implicit base module is the lowest-level shared module and is integrated directly or transitively by every other module. A custom module with no references depends on base. The implicit web module is the highest-level application wrapper and automatically depends on every custom root module; in MULTI_MODULE it assembles the executable application. Neither implicit module can be edited. Dependencies must be acyclic and should point from a feature toward the lower-level modules it uses. Background information: https://bootify.io/docs/modules-tab.html

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "projectId": "<projectId>",
      "name": "<name>"
    },
    "name": "updateAppModule"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameYesCurrent name of the custom module
newNameNoNew module name; omit to keep its name
projectIdYesThe project ID returned by startProject
referencesNoUnique names of existing custom modules used as direct dependencies. References already available through another selected module are removed automatically. Omit or use an empty array to depend on the implicit base module.

Output Schema

NameRequiredDescriptionDefault
changesYesOnly settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.
projectIdYesThe project ID returned by startProject
affectedAreasYesObject lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.
userProjectChangedNoPresent only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / affectedAreas / items / enum
      Previous value: -[
      -  "APP_MODULES",
      -  "ENUMS",
      -  "DATA_OBJECTS",
      -  "ENTITIES",
      -  "RELATIONS",
      -  "INDEXES",
      -  "REST_CONTROLLERS",
      -  "FRONTEND_CONTROLLERS",
      -  "SECURITY_CONFIGS"
      -]New value: +[
      +  "APP_MODULES",
      +  "ENUMS",
      +  "DATA_OBJECTS",
      +  "ENTITIES",
      +  "RELATIONS",
      +  "INDEXES",
      +  "BREAKPOINTS",
      +  "REST_CONTROLLERS",
      +  "FRONTEND_CONTROLLERS",
      +  "SECURITY_CONFIGS"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / references / description
      Previous value: -"Unique names of existing custom modules used as direct dependencies. Omit or use an empty array to depend on the implicit base module."New value: +"Unique names of existing custom modules used as direct dependencies. References already available through another selected module are removed automatically. Omit or use an empty array to depend on the implicit base module."
  3. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Adds substantial behavior beyond the annotations: 'references replace all current direct dependencies,' redundant references 'are removed automatically,' dependencies 'must be acyclic,' and the base/web modules are immutable. The destructive replacement semantics align with destructiveHint=true and go well past it.

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 action, then constraints in a logical order, ending with a docs link. It is a dense paragraph rather than tight prose, but nearly every sentence carries non-obvious semantics, so little is wasted.

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, so return values need no explanation, and the annotations carry the safety profile. The description still supplies the domain model (implicit base/web modules, acyclicity, replacement rules) an agent needs to invoke this correctly.

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 adds graph-level meaning the schema lacks: what a module with no references depends on (base), that references point 'from a feature toward the lower-level modules it uses,' and that the same list defines MODULITH package boundaries vs MULTI_MODULE build modules.

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 and resource: 'Update or rename a custom application module identified by its current name.' The rename-vs-update framing and the 'custom' qualifier separate it from addAppModule/deleteAppModule without naming them, so it is clear but not explicitly sibling-differentiating.

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?

Gives real prerequisites and exclusions: 'select either with updateAdvancedOptions first' and 'Neither implicit module can be edited.' It never names addAppModule or deleteAppModule as alternatives, so the routing to siblings is left to the verb, but the when-to-use context is solid.

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