Skip to main content
Glama
draiqw
by draiqw

tg_person

Read-onlyIdempotent

Consolidate a person's profile, shared groups, chat ranking, and recent private messages in one call. Use it before writing to someone to see bio, username, online status, flags, and conversation history.

Instructions

Everything the account knows about one person, in a single call. Use this before writing to someone instead of chaining tg_chat_info, tg_contacts, tg_common_chats and tg_history.

Returns the profile (bio, @username, direct link, online status, birthday if Telegram exposes it, your private note on the contact), the flags that matter (bot, premium, verified, in your contacts, blocked), the groups you share, where the person sits in Telegram's own top-correspondents ranking, the last messages of your private conversation and when that conversation started.

Limit worth knowing: MTProto has no global search by author, so "what did this person write" here means your private chat only. For what they wrote in a shared group, call tg_history(chat=, from_user=).

Args: user: user id, @username, t.me link, exact name, or "me". messages: how many recent private messages to include; 0 drops the texts but keeps the counters (total messages, when the chat started). chats: how many shared groups to list; 0 skips the lookup. brief: drop reactions, link cards and edit times. Same messages, about a quarter smaller — for triage, not for reading a chat closely.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
userYes
briefNo
chatsNo
messagesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive, so safety is covered structurally. The description adds genuinely new behavioral context beyond annotations: the MTProto global-search limitation scoping author search to private chats, and the semantic effects of messages=0 (drops texts but keeps counters) and chats=0 (skips the lookup). This is valuable disclosure an agent would not otherwise know.

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?

Front-loaded with purpose and usage before descending into detail, with the 'Limit worth knowing' warning clearly separated. The returns enumeration is long, but that length is justified for a tool consolidating four siblings and no output schema exists to carry that burden. Every sentence earns its place; only minor tightening of the profile-fields list is possible.

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?

With no output schema, the description compensates by enumerating return categories thoroughly. Parameters, limitations, alternative tools, and 0-value semantics are all covered. The only minor gap is expected behavior for unresolvable user inputs, but for a read-only aggregation tool with complete param docs and annotations, nothing critical is missing.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries the full burden — and it succeeds completely. user is expanded to 'user id, @username, t.me link, exact name, or "me"', messages and chats each explain their 0-value behavior, and brief quantifies its effect ('same messages, about a quarter smaller'). Every one of the 4 parameters receives meaning the bare schema types do not convey.

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 opens with 'Everything the account knows about one person, in a single call,' naming the exact resource (one person) and precise scope (aggregated account knowledge). It differentiates from siblings by explicitly stating it replaces chaining tg_chat_info, tg_contacts, tg_common_chats and tg_history, and it enumerates concrete return categories (profile, flags, shared groups, ranking, last messages). An agent cannot confuse this with any of the 70+ siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use guidance: 'Use this before writing to someone instead of chaining...' It also provides a when-not-to-use case with the MTProto limitation ('no global search by author... for what they wrote in a shared group, call tg_history(chat=<group>, from_user=<person>)'), naming the exact alternative and its parameters. Nothing is left to inference.

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