Skip to main content
Glama
bale-mcp

bale-mcp

by sepehr071

Bot: send file

bot_send_file
Destructive

Sends a photo, document, video, audio, or voice file from a Bale bot to a specified chat using a URL or allowed local path, with an optional caption.

Instructions

Send a real photo, document, video, audio or voice file from the bot. Confirm recipient and file with the user first.

Local paths must lie inside BALE_MCP_SEND_DIRS (default: the download folder only).

Input Schema

NameRequiredDescriptionDefault
kindYesHow Bale shows the file.
sourceYeshttp(s) URL, or local file path (max 50 MB; see BALE_MCP_SEND_DIRS).
captionNoOptional caption.
chat_idYesChat id (number, e.g. 123456789) or public '@channel' username. See bot_list_chats.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changedv0.2.0
    • removedInput schema / properties / caption / title
      Removed value: -"Caption"
    • changedInput schema / properties / chat_id / description
      Previous value: -"Chat id (number from bot_get_new_messages or bot_list_chats, e.g. 123456789) or a public channel/group username like '@mychannel'."New value: +"Chat id (number, e.g. 123456789) or public '@channel' username. See bot_list_chats."
    • removedInput schema / properties / chat_id / title
      Removed value: -"Chat Id"
    • changedInput schema / properties / kind / description
      Previous value: -"How Bale should show the file."New value: +"How Bale shows the file."
    • removedInput schema / properties / kind / title
      Removed value: -"Kind"
    • changedInput schema / properties / source / description
      Previous value: -"An http(s) URL, or a path to a local file (max 50 MB)."New value: +"http(s) URL, or local file path (max 50 MB; see BALE_MCP_SEND_DIRS)."
    • removedInput schema / properties / source / title
      Removed value: -"Source"
    • removedInput schema / title
      Removed value: -"bot_send_fileArguments"
    • changedOutput schema / (root)
      Previous value: -{
      -  "additionalProperties": true,
      -  "title": "bot_send_fileDictOutput",
      -  "type": "object"
      -}New value: +null
  2. First observedv0.1.0

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, openWorldHint=true and idempotentHint=false, so the risk profile is largely covered structurally. The description does add two useful pieces of context beyond that: the mandatory user confirmation step and the filesystem sandbox (BALE_MCP_SEND_DIRS, defaulting to the download folder only). It does not disclose that a retry will re-send the file given non-idempotency, which for a destructive external action is a notable omission.

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

Conciseness5/5

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

Three short sentences with the purpose front-loaded, followed by the safety instruction and then the filesystem constraint. No filler, and each sentence carries distinct, actionable information.

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?

There is no output schema, and the description never says what comes back on success (e.g. a message id the agent could later use with bot_edit_message or bot_delete_message). For a non-idempotent destructive send, that plus the absence of any failure/retry note leaves a real gap, though the confirmation rule and path sandbox cover the most dangerous aspects.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters — including the kind enum, the source URL-or-path union, the caption length limit and the chat_id/@channel form — are already documented in the schema itself. The description adds only the default value of BALE_MCP_SEND_DIRS and repeats the file-type list, so baseline 3 is appropriate.

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?

The description gives a specific verb (send) plus the resource (photo/document/video/audio/voice file) and explicitly says 'from the bot', so the agent knows this performs an outbound upload rather than a text reply. It never names bot_send_message or bot_download_file as the contrasting siblings, so differentiation is implied rather than stated.

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

Usage Guidelines3/5

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

'Confirm recipient and file with the user first' is a genuine procedural guideline, and the BALE_MCP_SEND_DIRS note tells the agent when a local path is acceptable. However, there is no guidance on when to pick this over bot_send_message for text content, nor any statement about when not to use it — routing is left to inference.

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