Skip to main content
Glama

set_contact_preferences

Destructive

Replace a contact's preference overrides and restore global defaults by passing an empty object. Stores settings off the connection without sending messages or editing checkpoints.

Instructions

Replace this contact's preference overrides at the user's request; {} restores the global values.

Stored off the connection. No messages, sharing, checkpoints or scheduler edits.

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": {
      "data_type": "<data_type>",
      "peer_userid": "<peer_userid>",
      "overrides": "<overrides>"
    },
    "name": "set_contact_preferences"
  }
}

Input Schema

NameRequiredDescriptionDefault
data_typeYes
overridesYes
peer_useridYes
expected_peer_useridsNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.18.7

TDQS

B3.4/5.0
Behavior4/5

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

The annotations already declare destructiveHint=true and readOnlyHint=false. The description adds valuable operational context: it replaces (rather than merges) overrides, an empty object restores global values, and the change does not affect messages, sharing, checkpoints, or scheduler edits. It does not explain permissions or reversibility beyond the reset behavior.

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?

The description is two short sentences and front-loads the core action and reset semantics. The scope exclusions are terse and useful. The phrase 'Stored off the connection' is slightly cryptic but does not waste much space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a destructive mutation with a nested overrides object and four parameters, and an output schema exists. The description covers replacement scope and reset behavior but omits key details about the other parameters, especially expected_peer_userids, and does not describe permission or concurrency requirements.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry parameter meaning. It only partially clarifies 'overrides' by noting that '{}' restores global values. It says nothing about data_type, peer_userid, or expected_peer_userids, leaving most of the four-parameter schema undocumented.

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?

The description states a specific verb and resource: 'Replace this contact's preference overrides'. This distinguishes it from the read-only sibling get_contact_preferences. It is clear but does not explicitly name or compare against that sibling.

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

Usage Guidelines3/5

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

It implies usage through 'at the user's request' and explains that '{}' restores global values. However, it does not state when to use this instead of get_contact_preferences or set_contact_status, nor does it list prerequisites or exclusions beyond the vague phrase 'at the user's request'.

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