
Live Telegram data: trending topics, channel profiles & metrics, post history incl. edits/deletions.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Fetch the full document behind a search result id: a channel profile with metrics, or a trending story with context and sample posts.
Document id from a previous search: 'channel:<slug>' or 'trend:<window>:<lang>:<norm>'
Fetch the full document behind a search result id: a channel profile with metrics, or a trending story with context and sample posts.
| Argument | Type | Description |
|---|---|---|
| id* | string | Document id from a previous search: 'channel:<slug>' or 'trend:<window>:<lang>:<norm>' |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "Document id from a previous search: 'channel:<slug>' or 'trend:<window>:<lang>:<norm>'"
}
}
}Recent posts from a tracked Telegram channel, newest first, with text, view/forward/reply/reaction counts and `reactions_map`, the five most used reaction emoji with their counts. Accepts a channel slug or a numeric chat id, an optional text `query` to search the channel's posts, and an optional time range. Album posts are collapsed to one row, so a page may hold fewer than `limit` posts.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query | string | Only posts whose text contains this term (case-insensitive substring) |
| since | string | Only posts at or after this ISO 8601 timestamp |
| until | string | Only posts before this ISO 8601 timestamp |
| channel* | string | Channel slug (Telegram username, without the @) or numeric channel id |
| message_type | string | Filter by message type: TEXT, PHOTO, VIDEO, AUDIO, DOCUMENT, UNSUPPORTED (case-insensitive) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"channel"
],
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Only posts whose text contains this term (case-insensitive substring)"
},
"since": {
"type": "string",
"description": "Only posts at or after this ISO 8601 timestamp"
},
"until": {
"type": "string",
"description": "Only posts before this ISO 8601 timestamp"
},
"channel": {
"type": "string",
"minLength": 1,
"description": "Channel slug (Telegram username, without the @) or numeric channel id"
},
"message_type": {
"type": "string",
"description": "Filter by message type: TEXT, PHOTO, VIDEO, AUDIO, DOCUMENT, UNSUPPORTED (case-insensitive)"
}
}
}Structural events in a channel's history: renames, description and photo changes, verification flips, subscriber/view milestones, and post edits or deletions — for telling what happened on a given date.
| Argument | Type | Description |
|---|---|---|
| page | integer | |
| limit | integer | |
| order | string | Sort by event time: desc (newest first) or asc |
| channel* | string | Channel slug (Telegram username, without the @) or numeric channel id |
| event_types | array | Event types to keep; omit for all of them |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"channel"
],
"properties": {
"page": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"default": "desc",
"description": "Sort by event time: desc (newest first) or asc"
},
"channel": {
"type": "string",
"minLength": 1,
"description": "Channel slug (Telegram username, without the @) or numeric channel id"
},
"event_types": {
"type": "array",
"items": {
"enum": [
"CHANNEL_FOLLOWED",
"CHANNEL_TITLE_CHANGED",
"CHANNEL_ABOUT_CHANGED",
"CHANNEL_PHOTO_CHANGED",
"VERIFIED_STATUS_CHANGED",
"SUBSCRIBERS_MILESTONE",
"CHANNEL_FIRST_MESSAGE",
"POST_EDITED",
"POST_DELETED",
"VIEW_MILESTONE",
"COMMENT_MILESTONE"
],
"type": "string"
},
"description": "Event types to keep; omit for all of them"
}
}
}One channel: full profile of a tracked Telegram channel — description, subscriber and post counts, categories, AI insights, and metrics (subscriber growth, post frequency, view rate, engagement) with dated sparklines over an optional date range. Several channels (up to 10, ids and slugs mixed): compact comparison rows with headline metric values and changes over the last 30 days, from one lookup; unknown entries are listed as unresolved instead of failing the call.
| Argument | Type | Description |
|---|---|---|
| channels* | array | Channel slug (Telegram username, without the @) or numeric channel ids, mixed freely. One channel answers its full profile; several answer compact comparison rows. |
| end_date | string | Metrics window end (YYYY-MM-DD, inclusive); default today. Single channel only |
| start_date | string | Metrics window start (YYYY-MM-DD, inclusive); default -30d. Single channel only |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"channels"
],
"properties": {
"channels": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 10,
"minItems": 1,
"description": "Channel slug (Telegram username, without the @) or numeric channel ids, mixed freely. One channel answers its full profile; several answer compact comparison rows."
},
"end_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Metrics window end (YYYY-MM-DD, inclusive); default today. Single channel only"
},
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Metrics window start (YYYY-MM-DD, inclusive); default -30d. Single channel only"
}
}
}How a post's views, forwards, replies and reactions (total and per-emoji) evolved over its life, as a sparse series of snapshots bucketed per hour or per day, oldest first — for view velocity and reaction drift. `message_id` comes from get_channel_posts. A post with no recorded snapshots answers an empty series.
| Argument | Type | Description |
|---|---|---|
| since | string | Only snapshots taken at or after this ISO 8601 timestamp |
| until | string | Only snapshots taken before this ISO 8601 timestamp |
| bucket | string | Series resolution: one snapshot per hour (1h) or day (1d) |
| channel* | string | Channel slug (Telegram username, without the @) or numeric channel id |
| message_id* | integer | Post id within the channel |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"channel",
"message_id"
],
"properties": {
"since": {
"type": "string",
"description": "Only snapshots taken at or after this ISO 8601 timestamp"
},
"until": {
"type": "string",
"description": "Only snapshots taken before this ISO 8601 timestamp"
},
"bucket": {
"enum": [
"1h",
"1d"
],
"type": "string",
"default": "1h",
"description": "Series resolution: one snapshot per hour (1h) or day (1d)"
},
"channel": {
"type": "string",
"minLength": 1,
"description": "Channel slug (Telegram username, without the @) or numeric channel id"
},
"message_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Post id within the channel"
}
}
}Channels that resemble the given one by category and audience — the peer cohort to compare a channel's metrics against.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| channel* | string | Channel slug (Telegram username, without the @) or numeric channel id |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"channel"
],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 20,
"minimum": 1
},
"channel": {
"type": "string",
"minLength": 1,
"description": "Channel slug (Telegram username, without the @) or numeric channel id"
}
}
}Sample Telegram posts that mention a trending topic, for reading what a story on the trending board is actually about.
| Argument | Type | Description |
|---|---|---|
| lang | string | ISO-639-1 language code of the board, defaulting to 'ru'. Boards are per-language; pick the language the audience posts in. |
| norm* | string | Normalized topic key of the story ('norm' field from get_trending_topics) |
| limit | integer | |
| window | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"norm"
],
"properties": {
"lang": {
"type": "string",
"default": "ru",
"description": "ISO-639-1 language code of the board, defaulting to 'ru'. Boards are per-language; pick the language the audience posts in."
},
"norm": {
"type": "string",
"minLength": 1,
"description": "Normalized topic key of the story ('norm' field from get_trending_topics)"
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 20,
"minimum": 1
},
"window": {
"enum": [
"now",
"yesterday"
],
"type": "string",
"default": "now"
}
}
}Ranked board of trending topics (stories) across tracked Telegram channels for a rolling 24h window. Each story carries a headline, context paragraph, member keywords, mention/channel counts, momentum and an hourly sparkline.
| Argument | Type | Description |
|---|---|---|
| lang | string | ISO-639-1 language code of the board, defaulting to 'ru'. Boards are per-language; pick the language the audience posts in. |
| limit | integer | Number of stories to return |
| window | string | Rolling 24h window to rank: 'now' (live) or 'yesterday' |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"lang": {
"type": "string",
"default": "ru",
"description": "ISO-639-1 language code of the board, defaulting to 'ru'. Boards are per-language; pick the language the audience posts in."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Number of stories to return"
},
"window": {
"enum": [
"now",
"yesterday"
],
"type": "string",
"default": "now",
"description": "Rolling 24h window to rank: 'now' (live) or 'yesterday'"
}
}
}Search Statiko for tracked Telegram channels and currently trending stories. Returns document ids for the fetch tool; results cite statiko.io pages.
| Argument | Type | Description |
|---|---|---|
| query* | string | Free-text search query |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"minLength": 1,
"description": "Free-text search query"
}
}
}Search Statiko's catalog of tracked Telegram channels by name and filter by verification, category, language and activity. Returns channel slugs to use with get_channels and get_channel_posts.
| Argument | Type | Description |
|---|---|---|
| sort | string | Sort order: 'subs' (largest first, default) or 'name' |
| limit | integer | |
| query | string | Channel name or username to match; omit to browse by filters |
| activity | array | Last-post activity buckets to filter by (any match) |
| verified | boolean | true = verified channels only, false = unverified only |
| languages | array | ISO-639-1 language codes to filter by (any match) |
| categories | array | Category slugs to filter by; a channel matching any one passes |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"sort": {
"enum": [
"subs",
"name"
],
"type": "string",
"description": "Sort order: 'subs' (largest first, default) or 'name'"
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 20,
"minimum": 1
},
"query": {
"type": "string",
"minLength": 1,
"description": "Channel name or username to match; omit to browse by filters"
},
"activity": {
"type": "array",
"items": {
"enum": [
"recently",
"week",
"month",
"dormant",
"inactive"
],
"type": "string"
},
"description": "Last-post activity buckets to filter by (any match)"
},
"verified": {
"type": "boolean",
"description": "true = verified channels only, false = unverified only"
},
"languages": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"description": "ISO-639-1 language codes to filter by (any match)"
},
"categories": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"description": "Category slugs to filter by; a channel matching any one passes"
}
}
}