Skip to main content
Glama
jonmmease
by jonmmease

get_conversation_messages

Retrieve messages from a specific iMessage conversation using chat ID or contact details, with enriched sender information and pagination controls.

Instructions

Get messages from a specific conversation.

You can specify the conversation by either chat_id or contact identifier. If contact is provided, it will be normalized and used to find the chat. Messages are enriched with contact names for senders.

Args: chat_id: Database row ID of the chat (from list_conversations) contact: Phone number or email to find the conversation limit: Maximum number of messages to return (default: 50) offset: Number of messages to skip (default: 0)

Returns: Dictionary with messages list, conversation info, and pagination.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
chat_idNo
contactNo
limitNo
offsetNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context beyond basic functionality: it explains that messages are 'enriched with contact names for senders,' describes how contact normalization works, and mentions default values for limit and offset. However, it doesn't cover important aspects like error handling, rate limits, authentication needs, or whether this is a read-only operation, which are significant gaps for a tool with no annotations.

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 well-structured and appropriately sized: it starts with a clear purpose statement, followed by usage details, an 'Args' section with parameter explanations, and a 'Returns' section. Every sentence adds value, such as clarifying contact normalization and referencing sibling tools. However, it could be slightly more concise by integrating the parameter details more seamlessly, and the structure, while clear, isn't perfectly front-loaded with the most critical 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?

Given the complexity (a 4-parameter tool with no annotations but an output schema), the description is mostly complete. It covers the purpose, parameter semantics, and return value structure ('Dictionary with messages list, conversation info, and pagination'), which aligns with the output schema. The main gap is the lack of behavioral details like error handling or permissions, but the output schema reduces the need to explain return values, so it's reasonably comprehensive for the context.

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?

The schema description coverage is 0%, so the description must fully compensate. It successfully adds detailed meaning for all four parameters: it explains that 'chat_id' is a 'Database row ID of the chat (from list_conversations),' 'contact' is a 'Phone number or email to find the conversation' that gets normalized, and 'limit' and 'offset' control pagination with defaults. This provides clear semantics beyond what the bare schema offers, making it easy for an agent to understand how to use each parameter correctly.

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 clearly states the tool's purpose: 'Get messages from a specific conversation.' It specifies the verb ('Get') and resource ('messages from a specific conversation'), making the intent unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_recent_messages' or 'search_messages', which could provide similar functionality, so it doesn't reach the highest score.

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?

The description provides some implied usage guidance by explaining that you can specify a conversation by 'chat_id or contact identifier' and mentioning that 'contact is normalized and used to find the chat.' It also references 'list_conversations' as a source for chat_id. However, it lacks explicit when-to-use rules, such as when to prefer this tool over 'get_recent_messages' or 'search_messages', and doesn't mention any prerequisites or exclusions, leaving room for ambiguity.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jonmmease/jons-mcp-imessage'

If you have feedback or need assistance with the MCP directory API, please join our Discord server