Skip to main content
Glama
anipotts

imessage-mcp

by anipotts

who_initiates

Read-only

Analyze conversation initiation patterns in iMessage to identify who typically starts chats after specified periods of silence, helping users understand communication dynamics with specific contacts.

Instructions

Who starts conversations? After a gap of N hours, the next message is a 'conversation initiation.' Shows per-contact who reaches out first and how often. Answers 'do I always text first?' By default excludes contacts you've never replied to.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
contactNoFilter by contact (omit for global ranking)
gap_hoursNoHours of silence before a new conversation (default: 8)
min_conversationsNoMinimum conversations to include contact (default: 5)
date_fromNoStart date (ISO)
date_toNoEnd date (ISO)
include_allNoInclude messages from all contacts, even those you've never replied to (default: false)
limitNoMax contacts to show (default 20)
Behavior3/5

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

Annotations already indicate this is a read-only, non-destructive, closed-world operation. The description adds useful context beyond annotations by explaining the 'conversation initiation' logic ('After a gap of N hours') and the default exclusion of unreplied contacts. However, it doesn't disclose behavioral traits like potential data volume, performance considerations, or output format details, which would be helpful given the lack of an output schema.

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 appropriately sized and front-loaded, starting with the core question ('Who starts conversations?') followed by key functionality and a default behavior note. Every sentence adds value without redundancy, efficiently conveying the tool's purpose and scope in three concise sentences.

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?

Given the tool's moderate complexity (7 parameters, no output schema) and rich annotations, the description is adequate but has gaps. It explains the tool's purpose and default behavior well, but without an output schema, it should ideally describe the return format (e.g., ranking, percentages) or result structure. The description relies on annotations for safety but misses opportunities to clarify output expectations.

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 fully documents all 7 parameters. The description adds marginal semantic value by implying the 'gap_hours' parameter's role in defining 'conversation initiation' and hinting at 'include_all' with the default exclusion note. However, it doesn't provide additional meaning beyond what the schema already specifies, such as parameter interactions or usage examples.

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 clearly states the tool's purpose with specific verbs ('shows per-contact who reaches out first and how often') and resources ('conversation initiation'), directly answering the question 'do I always text first?' It distinguishes itself from sibling tools by focusing on conversation initiation patterns rather than general message stats, contact lists, or temporal analysis.

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?

The description provides clear context for when to use this tool ('Answers 'do I always text first?'') and mentions a default exclusion criterion ('By default excludes contacts you've never replied to'), which helps differentiate it from tools like 'contact_stats' or 'message_stats'. However, it doesn't explicitly name alternative tools or specify when not to use it, such as for real-time message checking or detailed conversation analysis.

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/anipotts/imessage-mcp'

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