tg_send_message
Send Telegram messages via bot with text or markdown formatting. Configure chat ID, parse mode, and reply options for automated notifications.
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:63-83 (handler)The core implementation of the tg_send_message tool: an async handler function decorated with @mcp.tool() for registration, including input schema via Pydantic Field annotations, which sends a text or markdown message using the Telegram Bot API.@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:18-23 (registration)Registers all tools by calling add_tools from each module, including tgbot.add_tools(mcp) which defines and registers the tg_send_message tool.mcp = FastMCP(name="mcp-notify", version="0.1.7") wework.add_tools(mcp) tgbot.add_tools(mcp) other.add_tools(mcp) hass.add_tools(mcp) util.add_tools(mcp)
- mcp_notify/tgbot.py:56-60 (helper)Initializes the shared Telegram Bot instance used by 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:68-72 (schema)Pydantic Field definitions providing the input schema, descriptions, and defaults 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"), ):