tg_send_photo
Send photos through Telegram bots by providing a photo URL and optional caption, chat ID, and reply settings. Integrates with Notify MCP Server for cross-platform notifications.
Instructions
Send photo via telegram bot
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| photo | Yes | Photo URL | |
| chat_id | No | Telegram chat id, Default to get from environment variables | |
| caption | No | Photo caption, 0-1024 characters after entities parsing | |
| parse_mode | No | Mode for parsing entities in the caption. [text/MarkdownV2] | |
| reply_to_message_id | No | Identifier of the message that will be replied to |
Implementation Reference
- mcp_notify/tgbot.py:58-74 (handler)The core handler function implementing the tg_send_photo tool. It uses the Telegram Bot to send a photo with optional caption (supporting MarkdownV2), chat_id, and reply_to_message_id, falling back to environment defaults.async def tg_send_photo( photo: str = Field(description="Photo URL"), chat_id: str = Field("", description="Telegram chat id, Default to get from environment variables"), caption: str = Field("", description="Photo caption, 0-1024 characters after entities parsing"), parse_mode: str = Field("", description=f"Mode for parsing entities in the caption. [text/MarkdownV2]"), reply_to_message_id: int = Field(0, description="Identifier of the message that will be replied to"), ): if parse_mode == TELEGRAM_MARKDOWN_V2: caption = telegramify_markdown.markdownify(caption) res = await bot.send_photo( chat_id=chat_id or TELEGRAM_DEFAULT_CHAT, photo=photo, caption=caption or None, 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/tgbot.py:54-57 (registration)The @mcp.tool decorator registers the tg_send_photo function as an MCP tool with specified title and description.@mcp.tool( title="Telegram send photo", description="Send photo via telegram bot", )
- mcp_notify/tgbot.py:58-64 (schema)Pydantic Field annotations define the input schema for the tool, including descriptions and defaults for photo URL, chat ID, caption, parse mode, and reply ID.async def tg_send_photo( photo: str = Field(description="Photo URL"), chat_id: str = Field("", description="Telegram chat id, Default to get from environment variables"), caption: str = Field("", description="Photo caption, 0-1024 characters after entities parsing"), parse_mode: str = Field("", description=f"Mode for parsing entities in the caption. [text/MarkdownV2]"), reply_to_message_id: int = Field(0, description="Identifier of the message that will be replied to"), ):
- mcp_notify/__init__.py:20-20 (registration)Calls tgbot.add_tools(mcp) to register all Telegram bot tools, including tg_send_photo, to the main FastMCP instance.tgbot.add_tools(mcp)