tg_send_message
Send text or markdown messages via Telegram bot for notifications across multiple platforms including Weixin, Bark, and Lark.
Instructions
Send text or markdown message via telegram bot
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text of the message to be sent, 1-4096 characters after entities parsing | |
| chat_id | No | Telegram chat id, Default to get from environment variables | |
| parse_mode | No | Mode for parsing entities in the message text. [text/MarkdownV2] | |
| reply_to_message_id | No | Identifier of the message that will be replied to |
Implementation Reference
- mcp_notify/tgbot.py:31-51 (handler)The handler function for the 'tg_send_message' tool. It sends a text message via Telegram bot, handling MarkdownV2 parsing if specified, and returns the JSON response.@mcp.tool( title="Telegram send text", description="Send text or markdown message via telegram bot", ) async def tg_send_message( text: str = Field(description="Text of the message to be sent, 1-4096 characters after entities parsing"), chat_id: str = Field("", description="Telegram chat id, Default to get from environment variables"), parse_mode: str = Field("", description=f"Mode for parsing entities in the message text. [text/MarkdownV2]"), reply_to_message_id: int = Field(0, description="Identifier of the message that will be replied to"), ): if not bot: return "Please set the `TELEGRAM_BOT_TOKEN` environment variable" if parse_mode == TELEGRAM_MARKDOWN_V2: text = telegramify_markdown.markdownify(text) res = await bot.send_message( chat_id=chat_id or TELEGRAM_DEFAULT_CHAT, text=text, parse_mode=parse_mode if parse_mode in [TELEGRAM_MARKDOWN_V2] else None, reply_to_message_id=reply_to_message_id or None, ) return res.to_json()
- mcp_notify/__init__.py:20-20 (registration)Registers all Telegram bot tools, including 'tg_send_message', by calling the add_tools function from tgbot module on the FastMCP instance.tgbot.add_tools(mcp)
- mcp_notify/tgbot.py:24-28 (helper)Creates the Telegram Bot instance used by the tg_send_message and other Telegram tools.bot = Bot( TELEGRAM_BOT_TOKEN, base_url=f"{TELEGRAM_BASE_URL}/bot", base_file_url=f"{TELEGRAM_BASE_URL}/file/bot", ) if TELEGRAM_BOT_TOKEN else None
- mcp_notify/tgbot.py:36-40 (schema)Pydantic Field definitions providing input schema and descriptions for the tg_send_message tool parameters.text: str = Field(description="Text of the message to be sent, 1-4096 characters after entities parsing"), chat_id: str = Field("", description="Telegram chat id, Default to get from environment variables"), parse_mode: str = Field("", description=f"Mode for parsing entities in the message text. [text/MarkdownV2]"), reply_to_message_id: int = Field(0, description="Identifier of the message that will be replied to"), ):