tg_send_message
Send text or markdown messages through a Telegram bot using the Notify MCP Server. 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:31-51 (handler)Handler function for tg_send_message tool. Includes inline schema via Pydantic Field descriptions and registration via @mcp.tool decorator. Implements sending text/markdown messages via 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 on modules, including tgbot.add_tools(mcp) which defines and registers tg_send_message.mcp = FastMCP(name="mcp-notify", version="0.1.8") wework.add_tools(mcp) tgbot.add_tools(mcp) other.add_tools(mcp) hass.add_tools(mcp) util.add_tools(mcp)
- mcp_notify/tgbot.py:24-28 (helper)Initializes the shared Telegram Bot instance used by tg_send_message and other tg 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:16-21 (helper)Customizes markdown symbols for Telegram MarkdownV2 parsing used in tg_send_message.md_customize = telegramify_markdown.customize.get_runtime_config() md_customize.markdown_symbol.head_level_1 = "1️⃣" md_customize.markdown_symbol.head_level_2 = "2️⃣" md_customize.markdown_symbol.head_level_3 = "3️⃣" md_customize.markdown_symbol.head_level_4 = "4️⃣"