Skip to main content
Glama

FireText MCP by usefulapi

Add or update contact

firetext_subscribe_contact
Destructive

WRITE: adds a contact (by mobile number) to the FireText account, optionally into a group, or with update=true refreshes the names/custom fields of an existing contact. Does not send any SMS. A contact that opted out cannot be re-added this way (they must rejoin by SMS). FireText: /subscribe.

Input Schema

NameRequiredDescriptionDefault
groupNoGroup API ID to add the contact to.
mobileYesMobile number: UK 07700900123 / 447700900123, or international without + and leading zeros (e.g. 33612345678).
updateNotrue = overwrite firstname, lastname and custom1-3 of an existing contact.
custom1No
custom2No
custom3No
lastnameNo
firstnameNo
subaccountNoSub-account ID (only when the account has the sub-account module). Omit for the main account.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

With only destructiveHint=true provided, the description adds real value: it flags the call as a WRITE, discloses that no SMS is sent, and warns that update=true overwrites firstname/lastname/custom1-3. It stops short of stating auth requirements or the handling of fields omitted during an update.

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-loads the 'WRITE:' marker and the core action, then adds only the constraints an agent needs. Slightly dense/run-on in the middle clause, but every sentence carries information.

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

Completeness4/5

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

For a 9-parameter mutation tool with no output schema, it covers the essential edge cases (opt-out, no-SMS side effect, overwrite behavior on update). It leaves subaccount semantics and non-update parameter behavior to the schema, which is a minor gap.

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

Parameters3/5

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

Schema description coverage is only 44%, so the description must compensate. It clarifies the role of mobile, group and update and gestures at the name/custom fields, but firstname, lastname, custom1-3 and subaccount still lack any description-level meaning. Partial compensation for the coverage gap, landing at the baseline.

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 and resource ('adds a contact (by mobile number) to the FireText account') with the dual mode spelled out ('or with update=true refreshes the names/custom fields'). The 'Does not send any SMS' clause cleanly separates it from firetext_send_sms, so an agent can route without opening 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?

Explains the conditional use of update=true and states the important exclusion that opted-out contacts cannot be re-added this way. It gives clear context but never names a sibling tool (e.g. unsubscribe_contact) as the alternative path, so it stays just short of explicit when/when-not routing.

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.