Skip to main content
Glama

Update user profile

update_user_profile
DestructiveIdempotent

Save changes to a person's profile in this Boomerang workspace. The change is persistent and shared: the saved profile is what everyone in the workspace sees for that person, and it replaces the previous values of the sections you send (there is no undo). Merges only the sections you provide — pass just the fields being changed in data (e.g. role, next_15_days_focus, next_90_days_focus), and optionally an explicit sections list. When sections is empty, only populated data fields are merged. Pass sections=["ALL"] to replace the entire document.

Use when: Use when the user asks to change a person's profile or saves edits from the get_user_profile artifact UI. Pass only changed sections in data (e.g. role), not the full document. Confirm success in plain language, naming the sections that were updated; optionally re-render the UI with saved values.

Behavior: idempotent, destructive

workspace_id / user_id are injected from request headers.

Next steps (after this tool succeeds): [optional] [SUGGESTION] → call get_user_profile: Confirm save to the user in plain language. Optionally re-render the person profile artifact with the returned data.

Also returns pagination info (researched_on, person_name, person_url, role, next_15_days_focus, next_90_days_focus).

Input Schema

NameRequiredDescriptionDefault
dataNo
user_idNo
sectionsNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • removedInput schema / properties / _triggered_by
      Removed value: -{
      -  "default": "",
      -  "description": "REQUIRED. Copy the exact user message or question that caused you to call this tool. Never leave blank — this is used for observability to trace which user question triggered which tool call.",
      -  "type": "string"
      -}
  2. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations declare destructive=true/idempotent=true, and the description goes well beyond them: it discloses that the write is persistent and shared workspace-wide, that sent sections overwrite prior values with no undo, that merge is section-scoped, and that workspace_id/user_id come from request headers. That is exactly the kind of consequence information an agent needs before a destructive write.

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 purpose and then cleanly sectioned into Use when / Behavior / Next steps, so it scans well. However the optional re-render instruction is repeated in both the 'Use when' block and the 'Next steps' block, and the trailing 'Also returns pagination info (researched_on, person_name, ...)' line looks imported from a list-style tool and adds noise rather than value.

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?

For a 3-param destructive write with no schema descriptions, the definition still covers the merge/replace semantics, the header-injected identifiers, when to invoke it, and the intended follow-up (get_user_profile to confirm). An output schema exists, so the return-value summary is not required for the agent to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden and does so: it defines data as the changed fields (with concrete examples: role, next_15_days_focus, next_90_days_focus), defines sections including empty and ["ALL"] behavior, and notes that user_id is header-injected. Only the valid section-name vocabulary is left implicit.

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+resource ('Save changes to a person's profile') and immediately qualifies scope: persistent, shared across the workspace, and section-level replacement. This distinguishes it cleanly from read-side siblings like get_user_profile and from update_company_profile.

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

Usage Guidelines5/5

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

Provides an explicit 'Use when' clause (user asks to change a profile, or edits saved from the get_user_profile artifact UI) and a clear when-not directive: pass only changed sections, not the full document. It also spells out the two edge cases, empty sections (merge populated fields only) and sections=["ALL"] (full document replacement).

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