Skip to main content
Glama

Resolve a contact (RoxyBot)

contacts_resolve

Resolve a phone number by name or alias for calls and messages, ignoring case and accents. Returns the matching contact or null when none or multiple people match.

Instructions

Find a phone number by name for RoxyBot calls and messages. Matches name or alias, ignoring case and accents; a unique first-name match also counts. Returns {contact: {naam, nummer}} or {contact: null} when nothing or more than one person matches.

Input Schema

NameRequiredDescriptionDefault
naamYesThe name as spoken, e.g. 'Sarah'.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses case/accent-insensitive matching, the first-name shortcut, and — critically — that ambiguous multi-matches yield {contact: null} rather than an error. Missing is any note on auth/prerequisites or the phone-number format returned, which keeps it off a 5.

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?

Two sentences, front-loaded with the action, then matching rules, then return contract. Every clause carries information; nothing is restated from the schema or title.

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?

There is no output schema, and the description compensates by sketching the return object and the null case, which is what an agent needs to branch on the result. Only the number's format and any auth assumptions are left implicit for a mutation-free single-parameter lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real semantics the schema lacks: the value may be a name or alias, case and accents are ignored, and a unique first-name match is accepted. That directly informs what to pass.

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?

States a specific verb and resource ("Find a phone number by name") plus the consumer (RoxyBot calls and messages). No sibling tool does contact resolution, so the agent can route here unambiguously; the matching rules and return shape further pin down scope.

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?

Gives clear context for use (resolving a contact for RoxyBot calls/messages) and, implicitly, that this is the lookup path when only a name is known. It does not name exclusions or alternatives, but no sibling provides overlapping functionality, so little is left ambiguous.

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