Skip to main content
Glama

update_portal_settings

Idempotent

Change a portal's settings: name, subdomain, locale, theme, colour, sign-in type (the login window), whether people can register themselves. The answer says where the menu is now (menu) and whether the change moved it (menu_moved), who gets into the portal now (access), whether your call changed that (access_changed) and whether people can create their own accounts (self_registration).

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": {
      "app_id": "<app_id>",
      "portal_id": "<portal_id>"
    },
    "name": "update_portal_settings"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNoDisplay name
colorNoThe colour: 0=White, 1=Black, 2=Grey, 3=Blue, 4=Green, 5=Orange, 6=Red. In themes 0, 1, 3, 4, 12, 13 0 is a light menu with dark letters, and 1–6 a menu of that colour with white letters. It keeps the theme and the menu's place.
themeNoThe theme, which also decides where the menu is: 0=Standard (menu: a bar across the top), 1=Professional (menu: a narrow strip of icons on the left that opens on hover), 3=Professional Opened (menu: an always-open panel on the left), 4=Wide (menu: a narrow strip of icons on the left that opens on hover), 9=Fullscreen (menu: no menu bar), 11=Carbon dark (menu: a bar across the top), 12=Left list (menu: an always-open panel on the left), 13=Right list (menu: an always-open panel on the right). A theme decides where the menu is, so a theme change can move it. When the person said where the menu must be, that decides the theme: left → 12, right → 13, top → 0 or 11. For colours use `color`: it keeps the theme, so the menu stays where it is.
app_idYesProject ID (from list_projects)
localeNoen, uk, ru, ...
auth_typeNoThe portal's sign-in (the login window): 0=public: anyone with the link gets in, no sign-in; 1=one shared login and password for everyone; 2=sign-in required: each person signs in with their own login and password. The numbers are for this call only: never show them to the person. A sign-in mode does not let people register themselves (create their own accounts): that is this tool's `self_registration`; accounts are otherwise made by inviting people (invite_portal_user).
portal_idYesPortal ID (from list_portals or describe_project)
subdomainNoThe subdomain without .quintadb.com
self_registrationNotrue = a visitor can create their own account on the portal's login page; false = accounts only by invitation. Pass true ONLY when the person asked for exactly this — a request for «login» or «a login window» is not one. false is what «keep outsiders or non-members out» and «nobody may register by themselves» ask for.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / self_registration / description
      Previous value: -"true = a visitor can create their own account on the portal's login page; false = accounts only by invitation. Pass it ONLY when the person asked for exactly this — a request for «login» or «a login window» is not one."New value: +"true = a visitor can create their own account on the portal's login page; false = accounts only by invitation. Pass true ONLY when the person asked for exactly this — a request for «login» or «a login window» is not one. false is what «keep outsiders or non-members out» and «nobody may register by themselves» ask for."
  2. Changed2 schema fields changed
    • changedInput schema / properties / auth_type / description
      Previous value: -"The portal's sign-in (the login window): 0=public: anyone with the link gets in, no sign-in; 1=one shared login and password for everyone; 2=sign-in required: each person signs in with their own login and password. The numbers are for this call only: never show them to the person. This tool cannot let people register themselves (create their own accounts): the owner switches that in the portal's settings; accounts are otherwise made by inviting people (invite_portal_user)."New value: +"The portal's sign-in (the login window): 0=public: anyone with the link gets in, no sign-in; 1=one shared login and password for everyone; 2=sign-in required: each person signs in with their own login and password. The numbers are for this call only: never show them to the person. A sign-in mode does not let people register themselves (create their own accounts): that is this tool's `self_registration`; accounts are otherwise made by inviting people (invite_portal_user)."
    • addedInput schema / properties / self_registration
      Added value: +{
      +  "description": "true = a visitor can create their own account on the portal's login page; false = accounts only by invitation. Pass it ONLY when the person asked for exactly this — a request for «login» or «a login window» is not one.",
      +  "type": "boolean"
      +}
  3. Changed1 schema field changed
    • changedInput schema / properties / auth_type / description
      Previous value: -"The portal's sign-in (the login window): 0=public, no sign-in, 1=Basic HTTP, 2=sign-in with a login and a password"New value: +"The portal's sign-in (the login window): 0=public: anyone with the link gets in, no sign-in; 1=one shared login and password for everyone; 2=sign-in required: each person signs in with their own login and password. The numbers are for this call only: never show them to the person. This tool cannot let people register themselves (create their own accounts): the owner switches that in the portal's settings; accounts are otherwise made by inviting people (invite_portal_user)."
  4. Changed4 schema fields changed
    • changedInput schema / properties / auth_type / description
      Previous value: -"Автентифікація порталу (вікно входу): 0=публічний без входу, 1=Basic HTTP, 2=вхід за логіном/паролем"New value: +"The portal's sign-in (the login window): 0=public, no sign-in, 1=Basic HTTP, 2=sign-in with a login and a password"
    • changedInput schema / properties / color / description
      Previous value: -"Колір 0-6: 0=White, 1=Black, 2=Grey, 3=Blue, 4=Green, 5=Orange, 6=Red"New value: +"The colour: 0=White, 1=Black, 2=Grey, 3=Blue, 4=Green, 5=Orange, 6=Red. In themes 0, 1, 3, 4, 12, 13 0 is a light menu with dark letters, and 1–6 a menu of that colour with white letters. It keeps the theme and the menu's place."
    • changedInput schema / properties / subdomain / description
      Previous value: -"Субдомен без .quintadb.com"New value: +"The subdomain without .quintadb.com"
    • changedInput schema / properties / theme / description
      Previous value: -"Тема: 0=Standard, 1=Professional, 3=Professional Opened (CRM/ERP), 4=Wide, 9=Fullscreen, 11=Carbon (dark), 13=Right List, 15=Jalousie"New value: +"The theme, which also decides where the menu is: 0=Standard (menu: a bar across the top), 1=Professional (menu: a narrow strip of icons on the left that opens on hover), 3=Professional Opened (menu: an always-open panel on the left), 4=Wide (menu: a narrow strip of icons on the left that opens on hover), 9=Fullscreen (menu: no menu bar), 11=Carbon dark (menu: a bar across the top), 12=Left list (menu: an always-open panel on the left), 13=Right list (menu: an always-open panel on the right). A theme decides where the menu is, so a theme change can move it. When the person said where the menu must be, that decides the theme: left → 12, right → 13, top → 0 or 11. For colours use `color`: it keeps the theme, so the menu stays where it is."
  5. Changed1 schema field changed
    • addedInput schema / properties / auth_type
      Added value: +{
      +  "description": "Автентифікація порталу (вікно входу): 0=публічний без входу, 1=Basic HTTP, 2=вхід за логіном/паролем",
      +  "type": "integer"
      +}
  6. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true and destructiveHint=false, but with no output schema the description carries the burden of describing the response, and it does so (menu, menu_moved, access, access_changed, self_registration). It also discloses behavioral rules the annotations can't, notably that a theme change can relocate the menu while a colour change does not. Missing any note on permissions or failure modes.

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 purpose sentence, then a second sentence covering return values. The response-clause is long and reads as a run-on list, but every element is informative and the description avoids redundancy overall.

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?

For a 9-parameter mutation tool with no output schema, the description is complete enough: it names the mutable facets, supplies the theme/colour decision rule, and explains what the call returns. Only the absence of any permission/prerequisite note keeps it short of 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 the schema descriptions are unusually rich (colour/theme/auth_type enumerations and their side effects), so the baseline is the schema's. The description's parameter-level contribution is mostly restating the setting names; its real added semantics (theme vs colour, the self_registration caution) live in the schema, not here.

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 ('Change a portal's settings') and enumerates the exact facets it controls (name, subdomain, locale, theme, colour, sign-in type, self-registration), which clearly separates it from siblings like update_portal_user, update_portal_page and update_portal_menu_item. An agent can pick it without opening the 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?

Gives real routing guidance: use `theme` when the person specifies where the menu goes (left/right/top mapping), use `color` when only the colour matters because it preserves the theme, and pass `self_registration=true` ONLY when explicitly requested. It also points to invite_portal_user as the alternative path for account creation. No explicit when-not-to-call-this-tool statement, hence 4 not 5.

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