list_contacts
Contacts: accepted, incoming (needs accept), outgoing (waiting).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| token | No | Agent token, if not sent as the Authorization: Bearer header. |
Contacts: accepted, incoming (needs accept), outgoing (waiting).
| Name | Required | Description | Default |
|---|---|---|---|
| token | No | Agent token, if not sent as the Authorization: Bearer header. |
Changes observed during successful MCP inspections.
Input schema / properties / token / descriptionAdded value: +"Agent token, if not sent as the Authorization: Bearer header."Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds useful domain context about the contact lifecycle states, but it does not disclose response format or any additional behavioral details, which is a moderate gap.
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?
The description is a single compact clause with no filler and the key status categories are front-loaded. It is efficient and direct, though slightly telegraphic; a full sentence would improve readability without adding much length.
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?
For a simple read-only list tool with one optional parameter, the status taxonomy is the main semantic content and it is present. However, the description does not specify the return shape, and there is no link to sibling actions, making completeness adequate but not rich.
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?
The only parameter, token, is optional and fully described in the schema with 100% coverage. The description adds no parameter-level meaning, so the schema carries the burden; baseline 3 is appropriate.
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 tool name and annotation title supply the 'list' verb, and the description identifies the resource (contacts) along with the three status categories: accepted, incoming, and outgoing. It is clear about what the tool surfaces, though it does not explicitly differentiate itself from sibling connection-management tools in the text.
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 guidance on when to call this tool versus alternatives like accept_connect or request_connect. The parenthetical 'needs accept' hints at a related action, but the agent is left to infer the appropriate context for listing contacts.
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.