Get contacts
get_contactsList the people this mailbox corresponds with (name, address, message count), derived from recent Inbox and Sent messages.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Full mailbox address |
get_contactsList the people this mailbox corresponds with (name, address, message count), derived from recent Inbox and Sent messages.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Full mailbox address |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds real value beyond them by disclosing the data source ('recent Inbox and Sent messages'), which tells the agent the results are derived/limited rather than a full address book. It stops short of stating any recency window or result cap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence with the resource and returned fields front-loaded and zero filler. Nothing is padded or redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the returned fields and the derivation source, which is close to everything an agent needs for a one-parameter read tool. The gap is the undefined scope of 'recent' and any limit on the number of contacts returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (one parameter, 'mailbox', documented as 'Full mailbox address'). The phrase 'this mailbox' merely confirms the parameter's role without adding format or constraint detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource ('List the people this mailbox corresponds with') and even names the returned fields (name, address, message count). No sibling tool covers contacts, so differentiating it is unnecessary, but it also never states how it relates to search_messages or list_messages, which are the closest conceptual neighbors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance and no alternative tool is mentioned. The clause 'derived from recent Inbox and Sent messages' hints at the retrieval context but does not tell an agent when this is preferable to search_messages or reading a thread.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.