Skip to main content
Glama
ivantelix

Telegram MCP Server

by ivantelix

telegram_forward_message

Forward any existing message from one Telegram chat to another, preserving content and sender. Specify source chat and message ID; destination defaults to configured chat.

Instructions

Forward an existing message of any type from one chat to another.

:param from_chat_id: Unique identifier for chat where original message was sent. :param message_id: Message identifier in the chat specified in from_chat_id. :param chat_id: Destination chat identifier. Defaults to TELEGRAM_DEFAULT_CHAT_ID. :param disable_notification: Forward message silently. :return: JSON formatted forwarded Message object.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
chat_idNo
message_idYes
from_chat_idYes
disable_notificationNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It adds useful details: any message type can be forwarded, chat_id defaults to TELEGRAM_DEFAULT_CHAT_ID, disable_notification controls silent delivery, and the return is a Message object. However, it does not disclose permissions, whether the source message remains unchanged, or failure modes such as protected content restrictions.

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 purpose statement is front-loaded and every subsequent line earns its place by documenting a parameter or the return value. There is no filler, repetition of schema types, or misleading verbosity, making it easy for an agent to scan.

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?

For a 4-parameter tool with an output schema, the description is functionally complete: all parameters are documented, the default destination behavior is explicit, and the return type is stated. It falls short of 5 only because it lacks alternative-routing guidance and does not mention edge-case constraints such as chat access requirements or forwarding limits.

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

Parameters5/5

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

Schema description coverage is 0%, and the description compensates fully by explaining every parameter in plain language: from_chat_id identifies the source chat, message_id targets the message there, chat_id is the destination with a documented default, and disable_notification means silent forwarding. This adds real meaning beyond the raw schema field names.

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?

The opening sentence 'Forward an existing message of any type from one chat to another' names a specific verb and resource, and the 'existing message' qualifier clearly distinguishes it from sibling send_* tools that create new messages. This prevents an agent from confusing forwarding with sending, editing, or deleting.

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 clearly states what the tool does but does not explicitly contrast it with alternatives like telegram_send_message or mention edge cases where forwarding would be inappropriate, such as protected messages or invalid chat access. The usage context is implied by the verb 'forward', but explicit when/when-not guidance is missing.

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