Skip to main content
Glama

bulk_replace_user_preferences

DestructiveIdempotent

Replace a user's complete set of preference overrides in one request. The topics in the body become the recipient's entire override set: listed topics are created or updated, and every existing override not included is reset to its topic default. An empty topics array clears all overrides. Validation-atomic (all-or-nothing).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
topicsYesThe complete set of topic overrides. An empty array resets every existing override.
user_idYesThe user ID
tenant_idNoScope the replacement to a specific tenant context

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

The description discloses destructive behavior in detail: omitted overrides are reset to defaults and an empty array clears all overrides, going beyond the annotations' destructiveHint=true. It also adds the validation-atomicity trait, which annotations do not convey, and there is no contradiction with readOnlyHint=false or idempotentHint=true.

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?

Three short sentences plus one atomicity tag; each sentence carries a distinct fact (scope, reset behavior, empty-array behavior, transactional guarantee). The purpose is front-loaded and there is no filler.

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?

The description is complete enough for a destructive bulk replace: it explains the full replacement contract, the empty-array edge case, and atomicity, while annotations and full schema coverage handle safety and parameter meaning. It does not mention an alternative for partial updates or describe the response/return value, but given no output schema and a clear mutation contract, those are minor gaps.

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?

The input schema already documents all parameters (100% coverage), so the description does not need to repeat definitions. It adds meaningful behavior for `topics`—listed topics are created or updated, omitted ones are reset to defaults—which goes slightly beyond the schema's 'complete set' summary. Other parameters like `user_id` and `tenant_id` are adequately covered by schema descriptions.

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?

The description opens with a specific verb and object ('Replace a user's complete set of preference overrides'), and the second sentence clarifies the exact scope of replacement ('entire override set', 'every existing override not included is reset'). This clearly distinguishes the full-replace semantics from partial-update siblings even without naming them.

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?

The description makes the use case explicit: use this tool when the caller wants to set a user's full override set in one atomic request. It implies that partial updates or single-topic changes belong elsewhere, though it does not explicitly name alternatives like bulk_update_user_preferences, so the routing guidance is slightly implicit.

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