Limzo Telegram Group Stats

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

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
73%
Calidad de los nombres
100%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~3,436Tokens (definiciones de herramientas)
~12.6 KBTamaño de respuesta típico
Impacto significativo en la atención (2.68% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "telegram-group-stats": {
      "command": "npx",
      "args": [
        "limzo-mcp"
      ]
    }
  }
}

Paquetes ejecutables

npmlimzo-mcp1.3.1stdio

Puntos de conexión remotos

https://limzo.com/api/public/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (3)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢get_group_stats(slug, range)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "The group's public slug — the last part of its limzo.com/s/<slug> URL."
    },
    "range": {
      "type": "string",
      "enum": [
        "7d",
        "30d",
        "all"
      ],
      "description": "Stats window. Defaults to 7d. 30d/all require the group's paid plan; free groups silently fall back to 7d."
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "const": true
    },
    "schema": {
      "type": "string",
      "const": "limzo.public_stats/v1"
    },
    "generated_at": {
      "type": "string",
      "format": "date-time"
    },
    "docs": {
      "type": "string",
      "format": "uri",
      "description": "Human-readable API documentation."
    },
    "openapi": {
      "type": "string",
      "format": "uri",
      "description": "Machine-readable OpenAPI document for the REST API."
    },
    "group": {
      "type": "object",
      "properties": {
        "slug": {
          "type": "string"
        },
        "title": {
          "type": [
            "string",
            "null"
          ]
        },
        "username": {
          "type": [
            "string",
            "null"
          ],
          "description": "Telegram username without @, when the group is public on t.me."
        },
        "is_private": {
          "type": "boolean",
          "description": "True when the group has no public t.me address. Private groups expose aggregate stats and an anonymised leaderboard only: member identities, verbatim content, the group description and member_count are all withheld, and the group is not listed in the public directory."
        },
        "bot_in_group": {
          "type": "boolean",
          "description": "False once Limzo has been removed from the chat. Every windowed figure then stops advancing and the page becomes a frozen archive; the data is kept for 90 days after removal, then the page returns 410."
        },
        "plan": {
          "type": "string",
          "enum": [
            "free",
            "pro",
            "community"
          ]
        },
        "member_count": {
          "type": [
            "integer",
            "null"
          ],
          "description": "Telegram member count. Always null for a private group — Limzo only knows it because the bot is in the chat, so it is not ours to publish."
        },
        "description": {
          "type": [
            "string",
            "null"
          ],
          "description": "The group description. On a private group this is null unless an admin wrote a public description specifically for this page, in which case that text is served instead of the Telegram one."
        },
        "url": {
          "type": "string",
          "format": "uri",
          "description": "The human stats page for this group."
        },
        "telegram_url": {
          "type": [
            "string",
            "null"
          ],
          "format": "uri"
        }
      }
    },
    "range": {
      "type": "object",
      "description": "The range actually served — compare `key` with what you requested to detect the plan fallback.",
      "properties": {
        "key": {
          "type": "string",
          "enum": [
            "7d",
            "30d",
            "all"
          ]
        },
        "label": {
          "type": "string"
        },
        "days": {
          "type": "integer",
          "description": "Length of the window in days."
        }
      }
    },
    "stats": {
      "type": "object",
      "properties": {
        "messages": {
          "type": "integer",
          "description": "Messages in the selected range."
        },
        "replies": {
          "type": "integer",
          "description": "Replies in the selected range."
        },
        "stickers": {
          "type": "integer",
          "description": "Stickers in the selected range."
        },
        "active_users": {
          "type": "integer",
          "description": "Unique posting members in the selected range."
        },
        "messages_today": {
          "type": "integer",
          "description": "Messages so far today (UTC)."
        },
        "active_users_today": {
          "type": "integer",
          "description": "Unique posting members so far today (UTC)."
        },
        "lifetime_messages": {
          "type": "integer",
          "description": "Messages since Limzo started tracking the group."
        },
        "tracked_since_days": {
          "type": "integer",
          "description": "Days since tracking started."
        },
        "new_active_members": {
          "type": "integer",
          "description": "Members who posted for the first time in the selected range."
        },
        "tracking_frozen": {
          "type": "boolean",
          "description": "True while tracking is paused because the group used up its plan's monthly message allowance (resets on the 1st, UTC). While true, windowed stats undercount real activity — the group is NOT quiet."
        },
        "tracking_paused": {
          "type": "boolean",
          "description": "True when Limzo is no longer in the group, so nothing further will ever be counted. Unlike tracking_frozen (a monthly cap that lifts on the 1st) this only clears if the bot is re-added. Mirrors group.bot_in_group === false."
        },
        "peak_hour_utc": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 0,
          "maximum": 23,
          "description": "Busiest hour of day, UTC."
        },
        "mood": {
          "type": [
            "object",
            "null"
          ],
          "description": "Group mood derived from reactions. Null when there is not enough data.",
          "properties": {
            "label": {
              "type": "string"
            },
            "emoji": {
              "type": "string"
            },
            "positive_pct": {
              "type": "number",
              "description": "Share of positive reactions, 0–100."
            }
          }
        },
        "daily": {
          "type": "array",
          "description": "Per-day series over the selected range.",
          "items": {
            "type": "object",
            "properties": {
              "day": {
                "type": "string",
                "format": "date"
              },
              "messages": {
                "type": "integer"
              },
              "replies": {
                "type": "integer"
              },
              "active_users": {
                "type": "integer"
              }
            }
          }
        },
        "top_members": {
          "type": "array",
          "description": "Member leaderboard for the selected range.",
          "items": {
            "type": "object",
            "properties": {
              "rank": {
                "type": "integer",
                "description": "1-based position."
              },
              "name": {
                "type": "string"
              },
              "username": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "messages": {
                "type": "integer"
              },
              "replies": {
                "type": "integer"
              }
            }
          }
        },
        "top_reactor": {
          "type": [
            "object",
            "null"
          ],
          "description": "A member singled out by reaction activity. Null when the range has no reaction data.",
          "properties": {
            "name": {
              "type": "string",
              "description": "Display name as shown on the public page."
            },
            "username": {
              "type": [
                "string",
                "null"
              ],
              "description": "Telegram username without @, when public."
            },
            "count": {
              "type": "integer",
              "description": "Reactions in the selected range."
            }
          }
        },
        "reaction_magnet": {
          "type": [
            "object",
            "null"
          ],
          "description": "The member whose messages attracted the most reactions. Null when the range has no reaction data.",
          "properties": {
            "name": {
              "type": "string",
              "description": "Display name as shown on the public page."
            },
            "username": {
              "type": [
                "string",
                "null"
              ],
              "description": "Telegram username without @, when public."
            },
            "count": {
              "type": "integer",
              "description": "Reactions in the selected range."
            }
          }
        },
        "languages": {
          "type": [
            "object",
            "null"
          ],
          "description": "How international the group is: its language mix, detected from the languages members actually write in (falling back to their app language for new or quiet groups). Null when there is not enough signal. Never derived from verbatim message text exposed over the API.",
          "properties": {
            "primary": {
              "type": [
                "string",
                "null"
              ],
              "description": "Dominant language as an ISO 639-1 code (e.g. \"fa\", \"es\", \"en\")."
            },
            "distinct": {
              "type": "integer",
              "description": "Number of distinct languages detected."
            },
            "items": {
              "type": "array",
              "description": "Top languages by share, largest first; a trailing null-code \"other\" bucket may aggregate the long tail.",
              "items": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "ISO 639-1 language code, or null for the aggregated \"other\" bucket."
                  },
                  "name": {
                    "type": "string",
                    "description": "Language name in English."
                  },
                  "pct": {
                    "type": "number",
                    "description": "Share of the group, 0–100."
                  }
                }
              }
            }
          }
        },
        "levels": {
          "type": "array",
          "description": "Limzo Levels — the group's lifetime-XP ladder (top 12 members). XP accrues from karma (helpful replies, reactions received, conversation starters), never from raw message volume alone. Tier names may be customised by the group.",
          "items": {
            "type": "object",
            "properties": {
              "rank": {
                "type": "integer",
                "description": "1-based position."
              },
              "name": {
                "type": "string"
              },
              "username": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "level": {
                "type": "integer",
                "description": "Current level (permanent, no decay)."
              },
              "tier": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Badge tier key: newcomer, regular, familiar, veteran, elite, legend."
              },
              "tier_title": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Display title for the tier (may be a group-custom name)."
              },
              "xp": {
                "type": "integer",
                "description": "Lifetime XP (karma) in this group."
              }
            }
          }
        },
        "league": {
          "type": [
            "object",
            "null"
          ],
          "description": "Weekly league standings (this ISO week, resets Monday). Only present when the group has the league enabled; null otherwise. Tiers are activity percentile bands: diamond top 10%, platinum next 15%, gold next 25%, silver next 25%, bronze rest.",
          "properties": {
            "season": {
              "type": "string",
              "description": "ISO week key, e.g. \"2026-W30\"."
            },
            "members": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "rank": {
                    "type": "integer",
                    "description": "1-based position this week."
                  },
                  "name": {
                    "type": "string"
                  },
                  "username": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "tier": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "bronze, silver, gold, platinum, or diamond."
                  },
                  "messages": {
                    "type": "integer",
                    "description": "Messages this ISO week."
                  },
                  "movement": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "description": "1 promoted vs last week, -1 relegated, 0 unchanged, null = no baseline yet."
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "required": [
    "ok",
    "schema",
    "generated_at",
    "group",
    "range",
    "stats"
  ],
  "description": "Curated, versioned public stats payload. 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."
}
🟢list_groups(query, lang, limit)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Keyword matched case-insensitively against group title, username, slug, and description. Omit to list the top groups by Limzo Score."
    },
    "lang": {
      "type": "string",
      "description": "ISO 639-1 language code (e.g. \"fa\", \"es\", \"en\"). Keeps groups whose main language it is (the detected top language, or the admin's chosen one when both are languages Limzo speaks) or where it is a meaningful share of the group."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "Maximum groups to return. Defaults to 20, capped at 50."
    }
  },
  "additionalProperties": false
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "const": true
    },
    "docs": {
      "type": "string",
      "format": "uri",
      "description": "Human-readable API documentation."
    },
    "openapi": {
      "type": "string",
      "format": "uri",
      "description": "Machine-readable OpenAPI document for the REST API."
    },
    "query": {
      "type": [
        "string",
        "null"
      ],
      "description": "The normalized search keyword, or null when listing top groups."
    },
    "lang": {
      "type": [
        "string",
        "null"
      ],
      "description": "The applied ISO 639-1 language filter, or null when not filtering by language."
    },
    "total_matches": {
      "type": "integer",
      "description": "Groups that matched, before the limit was applied."
    },
    "groups": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": "Use with /s/{slug}.json or the get_group_stats MCP tool."
          },
          "title": {
            "type": "string"
          },
          "username": {
            "type": [
              "string",
              "null"
            ],
            "description": "Telegram username without @, when the group is public on t.me."
          },
          "plan": {
            "type": "string",
            "enum": [
              "free",
              "pro",
              "community"
            ]
          },
          "member_count": {
            "type": [
              "integer",
              "null"
            ]
          },
          "score": {
            "type": "number",
            "description": "Limzo Score — the directory ranking metric."
          },
          "messages_7d": {
            "type": "integer"
          },
          "active_users_7d": {
            "type": "integer"
          },
          "language": {
            "type": [
              "object",
              "null"
            ],
            "description": "The group's language mix (primary language + top languages as percentages). Null when there is not enough signal.",
            "properties": {
              "primary": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Dominant language as an ISO 639-1 code."
              },
              "distinct": {
                "type": "integer",
                "description": "Number of distinct languages detected."
              },
              "items": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "ISO 639-1 language code, or null for the aggregated \"other\" bucket."
                    },
                    "name": {
                      "type": "string"
                    },
                    "pct": {
                      "type": "number",
                      "description": "Share of the group, 0–100."
                    }
                  }
                }
              }
            }
          },
          "url": {
            "type": "string",
            "format": "uri",
            "description": "The human stats page for this group."
          },
          "stats_json": {
            "type": "string",
            "format": "uri",
            "description": "Full curated stats payload for this group."
          }
        }
      }
    }
  },
  "required": [
    "ok",
    "total_matches",
    "groups"
  ],
  "description": "Compact directory rows for discovering groups. Sorted by Limzo Score."
}
🟢get_global_stats

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.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "const": true
    },
    "docs": {
      "type": "string",
      "format": "uri",
      "description": "Human-readable API documentation."
    },
    "openapi": {
      "type": "string",
      "format": "uri",
      "description": "Machine-readable OpenAPI document for the REST API."
    },
    "stats": {
      "type": "object",
      "properties": {
        "public_groups": {
          "type": "integer",
          "description": "Public groups in the directory."
        },
        "messages_7d": {
          "type": "integer"
        },
        "messages_all": {
          "type": "integer"
        },
        "messages_total": {
          "type": "integer",
          "description": "Messages analyzed across all groups, all time (durable — survives retention pruning)."
        },
        "members_total": {
          "type": "integer",
          "description": "Distinct members ever tracked across all groups."
        },
        "spam_removed_total": {
          "type": "integer",
          "description": "Spam messages removed by moderation across all groups, all time."
        },
        "active_users_7d": {
          "type": "integer"
        },
        "replies_7d": {
          "type": "integer"
        },
        "reactions_7d": {
          "type": "integer"
        },
        "karma_7d": {
          "type": "integer"
        }
      }
    },
    "top_groups": {
      "type": "array",
      "description": "Current top public groups by Limzo Score.",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "plan": {
            "type": "string",
            "enum": [
              "free",
              "pro",
              "community"
            ]
          },
          "score": {
            "type": "number"
          },
          "messages_7d": {
            "type": "integer"
          },
          "active_users_7d": {
            "type": "integer"
          }
        }
      }
    }
  },
  "required": [
    "ok",
    "stats"
  ],
  "description": "Network-wide totals across all listed public groups."
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada3 herramientas
verificadoversión no registrada3 herramientas