Skip to main content
Glama
rchanllc

joltsms-mcp-server

joltsms_list_messages

List recent SMS messages received on JoltSMS numbers, including sender, body, parsed OTP codes, and timestamps. Filter by number or exact sender to find verification texts.

Instructions

List recent SMS messages received on your JoltSMS numbers.

Returns sender, body, parsed OTP code (if detected), and timestamps. Use number_id to filter to a specific number, or omit for all numbers. Use from_filter for exact-match sender filtering.

Input Schema

NameRequiredDescriptionDefault
limitNoMax messages to return (1-10, default 10)
sinceNoISO 8601 datetime — only return messages after this time. Example: "2025-01-15T00:00:00Z"
cursorNoPagination cursor from previous response
number_idNoFilter by number ID (UUID) or phone number (e.g. +17243213654 or 7243213654). Omit for all numbers.
from_filterNoFilter by sender phone number (exact match, e.g. "+18005551234")

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.0.0

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses what comes back (sender, body, parsed OTP code if detected, timestamps), which is real value given there is no output schema, but it says nothing about ordering, pagination limits, rate limits, or auth requirements.

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?

Three short sentences, front-loaded with purpose, then return contents, then filtering hints; no filler. The final two sentences partly repeat schema content, which keeps it from being maximally lean.

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?

For a read-only list tool with no annotations and no output schema, the description adequately covers purpose, returned fields, and basic filtering. It omits ordering/recentness semantics and pagination behavior (the cursor param is left entirely to the schema), leaving gaps an agent would want filled.

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 100%, so the schema already documents limit, since, cursor, number_id, and from_filter thoroughly. The description restates number_id and from_filter semantics without adding format or edge-case detail beyond the schema, which matches the baseline 3.

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?

States a specific verb and resource ('List recent SMS messages received on your JoltSMS numbers') with the scope (all numbers or filtered) made explicit. It is clearly distinguishable from get_latest_otp and wait_for_sms in spirit, but the description never names or contrasts those siblings, so it falls short of a 5.

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 gives parameter-level routing advice ('Use number_id to filter to a specific number, or omit for all numbers') but no tool-selection guidance against the many sibling readers (joltsms_wait_for_sms, joltsms_get_latest_otp, joltsms_mark_read). Usage is implied rather than framed as when-to-use/when-not-to-use.

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