Skip to main content
Glama
pghdma

CallRail MCP

by pghdma

update_sms_thread

Update an SMS thread's lead-management fields. This is the texting equivalent of update_call. Closes the gap where texting leads couldn't be tagged / noted / qualified via API.

Instructions

Update an SMS thread's lead-management fields. This is the texting equivalent of update_call. Closes the gap where texting leads couldn't be tagged / noted / qualified via API.

Args: thread_id: Thread id (from list_sms_threads). notes: Note text (max 4000 chars). Empty string rejected. value: Numeric lead value. tags: Tag names to apply (max 100). append_tags: If True (default), tags are ADDED to existing ones (CallRail's append_tags flag). If False, tags REPLACES the thread's tag list. lead_qualification: e.g. 'good_lead', 'not_a_lead'. Values are plan-configurable so unknown strings are passed through. account_id: Auto-resolves if omitted.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tagsNo
notesNo
valueNo
thread_idYes
account_idNo
append_tagsNo
lead_qualificationNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.0.4

TDQS

A4.6/5.0
Behavior4/5

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

There are no annotations, so the description carries the full burden. It supplies meaningful behavioral detail: append_tags toggles between adding tags and replacing the thread's entire tag list, empty notes are rejected, tags are capped at 100, account_id auto-resolves, and unknown lead_qualification values are passed through. It could further disclose mutation/reversibility implications or response behavior, but it is well above a minimal description.

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 front-loaded with the core purpose and sibling relation, then uses a clean Args block to enumerate parameters without redundancy or filler. Each sentence adds either purpose context or needed constraints; nothing needs to be cut.

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 7-parameter mutation tool with no annotations and an output schema present, the description is complete: it explains every parameter, key constraints, the append/replace semantic, and the relationship to update_call. Return values are covered by the existing output schema, so no extra return-format prose is needed.

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%, and the description fully compensates. Every parameter is explained beyond the raw schema: thread_id's source, notes length and empty-string rejection, value as numeric, tags count limit, append_tags flag behavior, lead_qualification's configurable values, and account_id auto-resolution. This is exactly the kind of parameter semantics an agent needs.

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: 'Update an SMS thread's lead-management fields.' It distinguishes itself from the closest sibling by explicitly framing itself as 'the texting equivalent of update_call' and by naming the exact gap it fills ('texting leads couldn't be tagged / noted / qualified via API'). An agent can identify what this tool does and how it differs from update_call without inspecting the schema.

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?

It clearly identifies the intended context: updating an SMS thread's lead-management fields rather than a call's, and points to update_call as the call-side equivalent. It does not, however, give explicit exclusions or a 'when not to use' statement, nor does it mention alternatives for read-only thread operations like get_sms_thread/list_sms_threads, so it falls just short of a 5.

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