Skip to main content
Glama
ivantelix

Telegram MCP Server

by ivantelix

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LOG_LEVELNoLogging level (DEBUG, INFO, WARNING, ERROR)INFO
TELEGRAM_BOT_TOKENYesBot token from @BotFather
TELEGRAM_API_BASE_URLNoCustom Telegram Bot API URL for self-hosted instanceshttps://api.telegram.org
TELEGRAM_DEFAULT_CHAT_IDNoDefault chat ID to use if omitted in tool calls
TELEGRAM_REQUEST_TIMEOUTNoTimeout in seconds for HTTP requests30.0
TELEGRAM_DEFAULT_PARSE_MODENoDefault parse mode: HTML, MarkdownV2, MarkdownHTML

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
telegram_get_meA

Get current bot identity and configuration status. Tests bot token validity and returns bot id, username, first name, and permissions.

telegram_send_messageA

Send a text message to a Telegram chat, group, or channel.

:param text: Text of the message to be sent (up to 4096 characters). :param chat_id: Unique identifier for target chat, group, or channel username (@channelusername). If omitted, uses TELEGRAM_DEFAULT_CHAT_ID if set. :param parse_mode: Formatting mode for message text ('HTML', 'MarkdownV2', 'Markdown', or None). :param disable_web_page_preview: Disables link previews for links in this message. :param disable_notification: Sends the message silently without sound. :param reply_to_message_id: If the message is a reply, ID of the original message. :return: JSON formatted Telegram Message object.

telegram_forward_messageA

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.

telegram_send_photoA

Send a photo/image to a Telegram chat.

:param photo: Local file path on disk (e.g. '/path/to/image.png') OR a public HTTP/HTTPS URL. :param caption: Optional photo caption (0-1024 characters). :param chat_id: Unique identifier for target chat (or @channelusername). :param parse_mode: Formatting for caption ('HTML', 'MarkdownV2', 'Markdown', or None). :param disable_notification: Send silently without notification sound. :return: JSON formatted Telegram Message object.

telegram_send_documentA

Send a general file or document (PDF, ZIP, source code, text file, etc.).

:param document: Local file path on disk (e.g. '/path/to/report.pdf') OR a public HTTP/HTTPS URL. :param caption: Optional document caption (0-1024 characters). :param chat_id: Target chat identifier (or @channelusername). :param parse_mode: Formatting for caption ('HTML', 'MarkdownV2', etc.). :param disable_notification: Send silently. :return: JSON formatted Telegram Message object.

telegram_send_audioA

Send an audio file (.mp3, .m4a, etc.) to a chat.

:param audio: Local file path on disk or HTTP/HTTPS URL. :param caption: Audio caption. :param title: Track name. :param performer: Performer / artist name. :param chat_id: Target chat identifier. :param parse_mode: Caption parse mode. :param disable_notification: Send silently. :return: JSON formatted Telegram Message object.

telegram_send_voiceA

Send a voice note (.ogg encoded with OPUS) to a chat.

:param voice: Local file path on disk or HTTP/HTTPS URL. :param caption: Voice message caption. :param chat_id: Target chat identifier. :param parse_mode: Caption parse mode. :param disable_notification: Send silently. :return: JSON formatted Telegram Message object.

telegram_send_locationB

Send a point on the map (geographic coordinates).

:param latitude: Latitude of the location. :param longitude: Longitude of the location. :param chat_id: Target chat identifier. :param disable_notification: Send silently. :return: JSON formatted Telegram Message object.

telegram_send_pollA

Send a native poll to a chat or channel.

:param question: Poll question (1-300 characters). :param options: List of 2 to 10 answer options (each 1-100 characters). :param chat_id: Target chat identifier. :param is_anonymous: True if poll should be anonymous, False for public voters. :param allows_multiple_answers: True if poll allows multiple options to be checked. :return: JSON formatted Telegram Message object containing the Poll.

telegram_get_chatB

Get detailed information about a chat (private user, group, supergroup, or channel). Returns title, username, description, invite link, active photo, etc.

:param chat_id: Unique identifier for target chat or @channelusername. :return: JSON formatted Telegram Chat object.

telegram_get_chat_member_countB

Get the total number of members in a group, supergroup, or channel.

:param chat_id: Target chat identifier. :return: Member count integer formatted as string.

telegram_get_chat_administratorsB

Get a list of administrators in a chat/group/channel.

:param chat_id: Target chat identifier. :return: JSON formatted list of ChatMember objects representing administrators.

telegram_pin_chat_messageA

Pin a message in a group, supergroup, or channel.

:param message_id: Identifier of a message to pin. :param chat_id: Target chat identifier. :param disable_notification: Pin silently without notifying chat members. :return: Status string indicating success.

telegram_unpin_chat_messageA

Unpin a specific message or all messages in a chat.

:param message_id: Identifier of message to unpin. If None, unpins all pinned messages. :param chat_id: Target chat identifier. :return: Status string indicating success.

telegram_delete_messageB

Delete a message from a chat.

:param message_id: Identifier of the message to delete. :param chat_id: Target chat identifier. :return: Status string indicating success.

telegram_get_updatesA

Retrieve incoming updates (messages, reactions, etc.) sent to the bot. Useful to read incoming user messages or inspect user/group chat IDs.

:param offset: Identifier of the first update to be returned. :param limit: Limits the number of updates to be retrieved (1-100, default 10). :param timeout: Timeout in seconds for short/long polling (0 for immediate response). :return: JSON array of Telegram Update objects.

Prompts

Interactive templates invoked by user choice

NameDescription
telegram_alertTemplate for generating a standardized alert message to send to Telegram.
telegram_summaryTemplate for sending structured summaries or digest updates to a Telegram channel or chat.

Resources

Contextual data attached and managed by the client

NameDescription
bot_info_resourceProvides current bot metadata and connection status.
config_resourceReturns safe summary of current Telegram MCP server configuration.

TDQS

A3.7/5.0

Scored across 16 tools

Disambiguation5/5

Every tool targets a distinct action/resource: get_me identifies the bot, get_chat retrieves chat metadata, and the send_* variants each handle a specific media type. Pin/unpin/delete message are clearly separate operations, and get_chat_member_count vs get_chat_administrators are well-differentiated despite both being chat info queries.

Naming Consistency5/5

All tools use a consistent telegram_verb_noun pattern (telegram_send_message, telegram_get_chat, telegram_pin_chat_message). The naming convention is uniform throughout, making the tool set predictable and easy to navigate.

Tool Count4/5

At 16 tools, the server is just above the typical well-scoped range, but the count is reasonable given the breadth of Telegram messaging and chat admin operations. The send_* media variants each earn their place, though a few could arguably be consolidated.

Completeness3/5

Core messaging workflows are covered: send, forward, delete, pin, unpin, plus chat info and member retrieval. However, notable gaps exist such as edit_message, send_video/contact/sticker, get_chat_member, and leave_chat, which agents would likely need for fuller Telegram bot interactions.

Maintenance

ActivityMaintained
ResponsivenessNo issues