Skip to main content
Glama
telegram-api-mcp

telegram-api-mcp

by EngDawood

send_photo

Sends a photo to a Telegram chat using a file ID, HTTP URL, or absolute file path. Use for image sharing with captions up to 1024 characters.

Instructions

Send a photo. Pass file_id, HTTP URL, or absolute file path. Caption is capped at 1024 characters — use send_rich_message for longer posts.

Input Schema

NameRequiredDescriptionDefault
photoYesFile ID, HTTP URL, or absolute file path
captionNoCaption (0-1024 visible chars; HTML tags/URLs excluded)
chat_idYesChat ID or @username
parse_modeNoFormatting mode
has_spoilerNo
reply_markupNoInlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, or ForceReply
protect_contentNo
caption_entitiesNoArray of MessageEntity objects
receiver_user_idNoUser ID
reply_parametersNoReplyParameters object
callback_query_idNo
message_effect_idNo
message_thread_idNo
allow_paid_broadcastNo
disable_notificationNo
business_connection_idNo
direct_messages_topic_idNo
show_caption_above_mediaNo
suggested_post_parametersNoSuggestedPostParameters object (price, send_date) — direct messages chats only

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the write, open-world, non-idempotent, non-destructive profile, so the bar is lowered. The description adds only the caption length ceiling, which the schema already states, and discloses nothing about required bot permissions, photo size/dimension limits, or how existing messages are affected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action and the most important input shape. The photo-format sentence largely restates the schema's photo description, which is the only mildly redundant element.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Annotations cover the safety profile and the two required parameters are straightforward, so the description is minimally viable. For a 19-parameter mutation tool with no output schema, though, it omits file size limits, threading/reply behavior, and the sibling media tools, leaving real gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

19 parameters with only 47% schema description coverage, and the description addresses just photo source formats and caption length — both already present in the schema. Nothing is said about parse_mode, reply_markup, protect_content, message_thread_id, business_connection_id, or the other mostly undocumented parameters, so the coverage gap is left unfilled.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("Send a photo") and differentiates itself from send_rich_message for long-caption cases. It does not distinguish itself from close siblings like send_document, send_live_photo, or send_media_group, so an agent could still hesitate between those photo/media options.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives one explicit when-not rule with the alternative named: captions over 1024 characters should go to send_rich_message. Missing guidance on when to prefer send_document (uncompressed image), send_live_photo, or send_media_group (multiple photos), which are the more likely everyday confusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools