Skip to content

Limzo Telegram Group Stats

by limzo.com · remote · local (npm) · no sign-in to list tools · v1.3.1 · published by com.limzo

Read-only stats for public Telegram groups tracked by Limzo, the anti-spam bot. No API key.

Changes · 3

3 tools: 3 change things.

Scanned Oct 21, 2026

3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http telegram-group-stats https://limzo.com/api/public/mcp

Findings

Matches of fixed checks, with the text they matched.

3 warn
  • The server marks "get_group_stats" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "get_group_stats" says "get": a word for reading.

    What this check looks for
  • The server marks "list_groups" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "list_groups" says "list": a word for reading.

    What this check looks for
  • The server marks "get_global_stats" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "get_global_stats" says "get": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

3 tools

Changes things 3Claude Code: ask
  • get_global_statsCall this for network-wide numbers across all public Telegram groups tracked by Limzo (group count, messages, active users, replies, reactions, karma — 7-day and all-time) plus dur…1 finding

    Why it is in this group

    • The name "get_global_stats" says "get": a word for reading.
    • The description's first verb is "call": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "get_global_stats" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "get_global_stats" says "get": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Call this for network-wide numbers across all public Telegram groups tracked by Limzo (group count, messages, active users, replies, reactions, karma — 7-day and all-time) plus durable lifetime totals (messages analyzed, members tracked, spam messages removed) and the current top groups by Limzo Score. For finding a specific group, prefer list_groups.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • get_group_statsCall this when the user asks about the activity, health, leaderboard, mood, or trends of a specific Telegram group tracked by Limzo.1 finding

    Why it is in this group

    • The name "get_group_stats" says "get": a word for reading.
    • The description's first verb is "call": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "get_group_stats" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "get_group_stats" says "get": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Call this when the user asks about the activity, health, leaderboard, mood, or trends of a specific Telegram group tracked by Limzo. `slug` is the last part of the group's public page URL, limzo.com/s/<slug> (e.g. "hipo"). Returns the curated limzo.public_stats/v1 JSON: messages, replies, active members, daily series, top members, mood, reactions, language mix, the Limzo Levels ladder (lifetime XP + badge tiers), and weekly-league standings when the group has the league enabled. Optional `range`: 7d (default), 30d, all — the wider ranges only serve real data for groups on a paid plan and otherwise silently fall back to 7d, so check `range.key` in the result. Never includes verbatim member messages. For a private group (one with no public t.me handle) the member identities, the group description and member_count are withheld too: aggregates plus an anonymised leaderboard are all it returns.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • list_groupsCall this to discover Telegram groups tracked by Limzo — to browse the directory, filter by language, or find a group's slug for get_group_stats.1 finding

    Why it is in this group

    • The name "list_groups" says "list": a word for reading.
    • The description's first verb is "call": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "list_groups" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "list_groups" says "list": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Call this to discover Telegram groups tracked by Limzo — to browse the directory, filter by language, or find a group's slug for get_group_stats. Optional `query` filters case-insensitively over group title, username, slug, and description. Optional `lang` (ISO 639-1, e.g. "fa", "es") keeps only groups where that language is a meaningful share of what members write — the way to answer "find active Persian/Spanish groups". Omit both to list the top groups by Limzo Score. The directory covers PUBLIC groups only — a group with no t.me handle is never listed, though it may still have a /s/ page. Each row carries a `language` mix (primary language + top languages as percentages); rows also include slug, title, username, plan, member_count, 7-day messages and active members, score and page URLs, plus `total_matches` so you can tell when more groups matched than were returned.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.3.1. Values in angle brackets are yours to fill in.

claude mcp add --transport http telegram-group-stats https://limzo.com/api/public/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [],
    "ask": [
      "mcp__telegram-group-stats__get_group_stats",
      "mcp__telegram-group-stats__list_groups",
      "mcp__telegram-group-stats__get_global_stats"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as telegram-group-stats. Review it before you use it.