Skip to main content
Glama
alamri-intel

Telegram OSINT

by alamri-intel

list_alerts

Retrieve recorded Telegram alerts newest first, filtered by severity, verdict, chat, or rule. Shows only unacknowledged hits by default; option to include judge-rejected alerts for auditing.

Instructions

List recorded alerts, newest first.

By default this hides alerts the judge ruled irrelevant — that filtering is the whole point of the judge. Pass include_irrelevant=True to audit what it rejected and why (each one keeps its reasoning).

Args: limit: max number of alerts to return. unacked_only: only alerts you haven't acknowledged yet (default). rule_id: restrict to one prefilter rule. chat_id: restrict to one chat. since_hours: only alerts matched within this many hours. verdict: exact verdict — relevant, irrelevant, pending, skipped, error. min_severity: lowest severity to include (low, medium, high, critical). include_irrelevant: include alerts the judge rejected.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
chat_idNo
rule_idNo
verdictNo
since_hoursNo
min_severityNo
unacked_onlyNo
include_irrelevantNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does disclose meaningful non-obvious behavior: default filtering of judge-rejected alerts, default unacked_only, and that rejected alerts retain their judge reasoning. It omits auth/permission requirements and pagination behavior, so it is strong but not complete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and the critical default-filtering nuance are front-loaded, then parameters are listed compactly. The Args block repeats parameter names already visible in the schema, but each line adds real meaning, so waste is minimal.

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?

Output schema exists, so return-shape explanation is unnecessary. All 8 optional parameters are covered and the default-filtering semantics are explained, leaving only peripheral gaps like pagination and permission requirements.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the Arg list fully compensates by documenting all 8 parameters, including enumerated values for verdict (relevant, irrelevant, pending, skipped, error) and min_severity (low, medium, high, critical) that the schema does not encode. Definitions like 'limit: max number to return' are terse but adequate.

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?

States a specific verb and resource ('List recorded alerts') plus ordering ('newest first'), and immediately clarifies the non-obvious scope of what is returned by default. An agent can distinguish it from siblings like list_alert_rules or ack_alerts without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains the key use-case split: default hides judge-rejected alerts, and include_irrelevant=True is for auditing what was rejected and why. It does not explicitly name alternative sibling tools (e.g., ack_alerts) for adjacent tasks, so it stops short of full when/when-not routing.

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