Skip to main content
Glama
prabchevski

Telegram Search MCP

by prabchevski

Find Telegram chats and unread conversations

telegram_list_chats
Read-onlyIdempotent

List Telegram chats by name or @username, filter main/archive and unread-only, and page through results with a cursor. Returns known chats without joining or marking read.

Instructions

Find known chats by name, or resolve an exact @username; never join a chat.

Empty query lists main/archive. unread_only includes unread messages, mentions and manual unread marks. Does not mark chats read. Pages use a 10-minute snapshot of at most 500 chat IDs; coverage_limited reports a capped listing. A name query searches known chats across lists. Follow next_cursor even after an empty page.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo
cursorNo
chat_listNomain
unread_onlyNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemsYes
scopeYes
next_cursorYes
trust_boundaryNo
coverage_limitedYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.8.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds valuable behavioral details beyond these: it states that it does not mark chats as read (important for a read tool), and describes pagination snapshots (10-minute snapshot, 500 chat IDs max, coverage_limited reports capped listing). This adds context about state consistency and limitations that annotations don't cover.

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?

The description is concise and well-structured. It front-loads the core purpose in the first sentence, then provides critical behavioral notes in subsequent sentences. Every sentence adds value without redundancy; it's tightly packed with essential information (purpose, non-mutating behavior, pagination details, coverage limits, cursor handling).

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?

This is a read-only listing tool with 5 optional parameters, an output schema, and strong annotations. The description covers the key functional aspects: query behavior, unread filtering, pagination, and non-mutating nature. It lacks explicit guidance on how to handle 'limit' or 'chat_list' interactions (e.g., can chat_list be combined with query?), but given the tool's relative simplicity and the presence of an output schema, the description is nearly complete. A small gap is not specifying the maximum limit (though schema shows 20) and how 'cursor' relates to snapshots, but that's minor.

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?

The schema has 0% description coverage, so the description must compensate. The description explains the semantics of 'query' (searches known chats across lists) and 'unread_only' (includes unread messages, mentions, manual unread marks). However, it does not explain 'limit', 'cursor', or 'chat_list' beyond what the schema implies (e.g., limit as max count, cursor for pagination). Since the description covers two key parameters but leaves three implicit, and the schema provides some defaults/enums, a 3 is appropriate.

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 clearly states the tool's purpose: finding known chats by name or resolving an exact @username. It distinguishes itself from sibling tools by explicitly stating it never joins a chat, which differentiates it from messaging/history tools. The main resource (chats) and primary operations (search/list) are clearly identified.

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?

The description provides clear usage guidance: it explains the empty query behavior (lists main/archive), the unread_only filter semantics, and explicitly directs to follow next_cursor even after an empty page. It also implies that for other chat operations (history, messages, etc.) one should use sibling tools, though it doesn't name them explicitly, the context is sufficient.

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