Skip to main content
Glama

contacts_get

Read-only

Retrieve one contact by row ID or by platform ID within a channel to look up contact details.

Instructions

One contact by row id, or by platform id within a channel (POST /api/kalagh/contacts/get · gRPC GetContact · socket "contacts/get")

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
channelIdNoRequired with platformId
contactIdNoThe contact row id
platformIdNoThe platform's user id (JID / user_id); matches the alt id too

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds transport surface (HTTP path, gRPC method, socket event), which is routing detail rather than behavioral disclosure; it says nothing about not-found/error behavior or whether lookups are scoped to the caller's channel set.

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?

A single front-loaded sentence; the lookup modes come first and the parenthetical is compact. The transport metadata is arguably noise for selection but is not verbose.

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?

There is no output schema, so the description should carry more of the return-shape burden, but it says nothing about the contact object returned or the response on a missing contact. For a 3-param lookup tool with zero required parameters and optional-identifier ambiguity, this is adequate but leaves real gaps.

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 both identifiers and the 'Required with platformId' constraint on channelId are already documented. The description restates the two lookup modes without adding format, casing, or precedence rules (e.g. which wins if both contactId and platformId are passed).

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?

States a specific verb (get) and resource (one contact), and the scope word 'One' implicitly separates it from contacts_list and contacts_search in the sibling set. It does not name a sibling explicitly, so differentiation is inferable rather than stated.

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 explains the two lookup routes (row id, or platform id within a channel), which is useful for choosing which identifier to supply, but it never states when to prefer contacts_get over contacts_search or contacts_list, nor what happens on a miss.

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