Skip to main content
Glama

Compare chats

tg_compare_chats
Read-only

Compare indexed files from two Telegram chats to identify shared files and files unique to either chat, matching by name, name plus size, stem, or identical file.

Instructions

Compare the indexed files of two chats: what both have, what only one has. by=name (same file name), name_size (same name and size), stem (name without extension/punctuation) or file (identical Telegram file).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "chat_a": "<chat_a>",
      "chat_b": "<chat_b>"
    },
    "name": "tg_compare_chats"
  }
}

Input Schema

NameRequiredDescriptionDefault
byNoname_size
chat_aYesChat: @username, username, t.me link, t.me/c/<id> link, or numeric id such as -100123…
chat_bYesChat: @username, username, t.me link, t.me/c/<id> link, or numeric id such as -100123…
sampleNo
accountNoAccount id (see tg_list_accounts). Defaults to the default account.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.5/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 a meaningful behavioral constraint beyond that: only indexed files are considered, not the full chat, which affects expectations about completeness of results. It does not describe the shape of the comparison output or any size/sampling limits, which matters since no output schema exists.

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?

Two sentences, front-loaded with the operation and result, followed by the mode legend. The second sentence is telegraphic ('by=name (same file name)...') but each clause carries distinct information, and nothing is redundant with the schema's enum listing.

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?

For a read-only comparison tool with no output schema, the description gives enough to understand what is compared and how matching is defined, but not enough to predict the response structure or what `sample` controls. An agent can invoke it correctly, but with gaps around result format and the one undocumented parameter.

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?

The description does real work on the `by` parameter, explaining what each of the four enum values actually means (same name, same name and size, stem, identical Telegram file) rather than just listing them. That compensates substantially for the 60% schema coverage; however, the `sample` parameter (default 30) is left entirely unexplained in both schema and description.

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?

The description names a specific verb and resource ('Compare the indexed files of two chats') and scopes the result to the three-way split of shared vs exclusive files, so an agent knows precisely what operation occurs. It stops short of naming which sibling to prefer (e.g. tg_search_files or tg_match_posts), so differentiation is implied 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 phrase 'indexed files' implicitly signals the prerequisite that both chats must already be indexed, which is useful guidance without an explicit warning or pointer to tg_index_chat. There is no explicit when-to-use vs when-not-to-use framing and no alternative tools named.

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