Skip to main content
Glama
theYahia

@theyahia/tgstat-mcp

by theYahia

search_posts

Search Telegram posts by keyword with optional filters for source type, category, language, country, and date.

Instructions

Full-text search across Telegram posts, with optional source-type / category / language / country / date filters.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (max 50)
queryYesSearch query
countryNoChannel country code (see list_countries)
date_toNoPosts on/before this date (YYYY-MM-DD)
categoryNoChannel category code (see list_categories)
extendedNoInclude channel objects
languageNoChannel language code (see list_languages)
date_fromNoPosts on/after this date (YYYY-MM-DD)
peer_typeNoSource typeall
minus_wordsNoComma-separated words to exclude
hide_forwardsNoExclude reposts

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed20 schema fields changedv2.0.0
    • addedInput schema / properties / category
      Added value: +{
      +  "description": "Channel category code (see list_categories)",
      +  "type": "string"
      +}
    • removedInput schema / properties / channels
      Removed value: -{
      -  "description": "Ограничить поиск каналами",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • addedInput schema / properties / country
      Added value: +{
      +  "description": "Channel country code (see list_countries)",
      +  "type": "string"
      +}
    • changedInput schema / properties / date_from / description
      Previous value: -"Дата начала YYYY-MM-DD"New value: +"Posts on/after this date (YYYY-MM-DD)"
    • addedInput schema / properties / date_from / pattern
      Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
    • changedInput schema / properties / date_to / description
      Previous value: -"Дата окончания YYYY-MM-DD"New value: +"Posts on/before this date (YYYY-MM-DD)"
    • addedInput schema / properties / date_to / pattern
      Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
    • addedInput schema / properties / extended
      Added value: +{
      +  "default": false,
      +  "description": "Include channel objects",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / hide_forwards
      Added value: +{
      +  "default": false,
      +  "description": "Exclude reposts",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / language
      Added value: +{
      +  "description": "Channel language code (see list_languages)",
      +  "type": "string"
      +}
    • addedInput schema / properties / limit / default
      Added value: +20
    • changedInput schema / properties / limit / description
      Previous value: -"Максимум результатов (по умолчанию 20)"New value: +"Max results (max 50)"
    • addedInput schema / properties / limit / maximum
      Added value: +50
    • addedInput schema / properties / limit / minimum
      Added value: +1
    • changedInput schema / properties / limit / type
      Previous value: -"number"New value: +"integer"
    • addedInput schema / properties / minus_words
      Added value: +{
      +  "description": "Comma-separated words to exclude",
      +  "type": "string"
      +}
    • addedInput schema / properties / peer_type
      Added value: +{
      +  "default": "all",
      +  "description": "Source type",
      +  "enum": [
      +    "channel",
      +    "chat",
      +    "all"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / query / description
      Previous value: -"Поисковый запрос по постам"New value: +"Search query"
    • addedInput schema / properties / query / maxLength
      Added value: +500
    • addedInput schema / properties / query / minLength
      Added value: +1
  2. First observedv1.0.1

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure, but it only states the operation and filters. It does not mention result ordering, pagination, or any side effects or limitations, which are critical for a search tool with many parameters.

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 a single, front-loaded sentence that efficiently captures the core purpose and mentions the filter types without redundancy. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 11 parameters and no output schema, yet the description gives only a high-level summary. It fails to explain what 'extended' means, how results are ordered, or what the response structure is, leaving significant gaps for an agent that needs to use the tool effectively.

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 coverage is 100% and each parameter already has a description in the schema. The description only groups some filters (source-type, category, language, country, date) without adding any new meaning or syntax beyond what the schema provides, so it stays at the baseline of 3.

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 clearly states the tool performs full-text search across Telegram posts with optional filters. It is specific enough to distinguish from tools like get_channel_posts (which targets a specific channel) and search_channels (which searches channels), though it doesn't explicitly name those alternatives.

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 implies usage for searching posts broadly, but provides no explicit guidance on when to prefer this tool over siblings like get_word_mentions or search_channels. There are no exclusions or alternative recommendations, leaving the agent to infer context.

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