Skip to main content
Glama

tg_send_file

Send files via Telegram bot by providing a URL, with options for captions, chat IDs, and reply functionality.

Instructions

Send general files via telegram bot

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYesFile URL
chat_idNoTelegram chat id, Default to get from environment variables
captionNoFile caption, 0-1024 characters after entities parsing
parse_modeNoMode for parsing entities in the caption. [text/MarkdownV2]
reply_to_message_idNoIdentifier of the message that will be replied to

Implementation Reference

  • The handler function that implements the tg_send_file tool logic. It processes the caption if MarkdownV2 is specified and sends the file as a document via the Telegram bot.
    async def tg_send_file(
        url: str = Field(description="File URL"),
        chat_id: str = Field("", description="Telegram chat id, Default to get from environment variables"),
        caption: str = Field("", description="File 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_document(
            chat_id=chat_id or TELEGRAM_DEFAULT_CHAT,
            document=url,
            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()
  • Registers the tg_send_file tool with the FastMCP server using the @mcp.tool decorator, providing title and description.
    @mcp.tool(
        title="Telegram send file",
        description="Send general files via telegram bot",
    )
  • Pydantic Field definitions providing input schema, descriptions, and defaults for the tg_send_file tool parameters.
    url: str = Field(description="File URL"),
    chat_id: str = Field("", description="Telegram chat id, Default to get from environment variables"),
    caption: str = Field("", description="File 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"),
  • Top-level registration call that invokes add_tools from tgbot module to register all Telegram tools, including tg_send_file.
    tgbot.add_tools(mcp)
  • Creates the Telegram Bot instance shared by all tg_* tools, including tg_send_file.
    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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aahl/mcp-notify'

If you have feedback or need assistance with the MCP directory API, please join our Discord server