set_setting
Set a user setting (e.g. timezone to 'America/New_York')
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| value | Yes |
Set a user setting (e.g. timezone to 'America/New_York')
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| value | Yes |
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the basic action 'Set a user setting' without disclosing side effects, persistence, validation, error handling, or return behavior. For a mutation tool, this lacks transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently communicates the essential purpose and a concrete example.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with only two string parameters and no output schema. However, the lack of annotations and absence of return-value/error information leaves gaps. It is minimally viable but not fully complete for an agent needing to know validation or success/failure behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero descriptions for 'key' and 'value'. The description adds one example (timezone to 'America/New_York'), which gives partial semantics but does not enumerate valid keys or value constraints, leaving the agent to guess about other possible settings.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Set' with a clear resource 'user setting' and provides a concrete example (timezone to 'America/New_York'). This distinguishes it from sibling tools like get_setting and list_settings, which have different actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The example implies a use case (setting timezone), but there is no explicit statement about when not to use it or when to prefer get_setting/list_settings instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.
Most tools target distinct resources and actions, but a few pairs (check_email_spam_score vs check_step_spam_score, get_deliverability vs check_domain_deliverability) have overlapping concerns. However, descriptions clarify the differences, so an agent can distinguish them with careful reading.
All tools follow a consistent verb_noun pattern with lowercase snake_case. The use of add vs create is a minor style variation but does not create confusion.
At 34 tools, the server exceeds the typical 3-15 tool range and even the 16-25 heavy range. While the broad functionality justifies many tools, the count is likely to make tool selection more difficult for an agent.
The tool set covers the full campaign lifecycle including creation, scheduling, processing, and deliverability tracking, plus contact and provider management. Notable gaps include no update_contact or get_campaign by ID, but these are workarounds via list operations.