Skip to main content
Glama

update_user_preferences

Persist user preferences by updating a section—reporting style, routing hints, process rules, or other—with new content that replaces existing text for future sessions.

Instructions

Persist a user preference to ~/.central-mcp/user.md.

Call this when the user expresses a PERSISTENT preference — reporting style, language, routing hints, or process rules. Applied every future session. NOT for one-off turn instructions; those need no persistence.

section — one of: "Reporting style" how to format and present responses "Routing hints" which agents/projects to prefer for task types "Process management rules" concurrency or approval constraints "Other preferences" anything else

content — new full text for that section (replaces its existing content; other sections are untouched). Plain language, bullet points recommended: "- Switch to Korean for all responses." "- Prefer claude for architecture.\n- Use codex for shell scripting."

Tip: call get_user_preferences() first so you can merge old and new content.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
contentYes
sectionYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.20.0

TDQS

A4.8/5.0
Behavior4/5

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

With no annotations provided, the description carries the full disclosure burden. It does well by stating the target file, that changes persist across sessions, and crucially that content 'replaces its existing content; other sections are untouched.' It does not mention permissions, failure behavior, or response format, but the output schema covers return values and the destructive semantics are clearly disclosed.

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?

The description is long but organized into purpose, usage, parameter blocks, and a merge tip. Every sentence carries information, examples are compact, and the key persistence/replacement semantics are front-loaded.

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 two-parameter mutation tool with an output schema and no annotations, this is complete: it covers when to call, what each parameter means, the replacement behavior, and the merge workflow. The only minor omission is authorization/error handling, which is not essential for correct invocation.

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 coverage is 0%, so the description must fully document both parameters. It does: section is enumerated with exact allowed headings and meaning, and content is explained as full replacement text with formatting recommendations and two concrete examples. This adds far more meaning than the bare string schema.

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 resource: 'Persist a user preference to ~/.central-mcp/user.md.' It goes on to list concrete categories (reporting style, language, routing hints, process rules) and explicitly contrasts itself with one-off instructions, distinguishing it from sibling tools like get_user_preferences.

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?

It states exact trigger conditions ('Call this when the user expresses a PERSISTENT preference') and an explicit exclusion ('NOT for one-off turn instructions; those need no persistence'). It also tells the agent to call get_user_preferences() first for merging, which is precise operational guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.