From better-telegram-mcp
Compose and post formatted content to a Telegram channel -- MarkdownV2 escaping, message splitting, media ordering
How this skill is triggered — by the user, by Claude, or both
Slash command
/better-telegram-mcp:channel-postThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Compose and post formatted content to a Telegram channel with correct formatting.
Compose and post formatted content to a Telegram channel with correct formatting.
Identify target channel:
chats(action="list") to find the channelCompose content with the user:
Handle media attachments (if any):
media(action="send_photo", chat_id="...", file_path="...", caption="...") -- caption goes WITH the photo, not as a separate messagemedia(action="send_document", chat_id="...", file_path="...")Split long messages if content exceeds 4096 characters:
Send and verify:
messages(action="send", chat_id="<channel>", text="<content>", parse_mode="MarkdownV2")All these characters MUST be escaped with \ when used as literal text (outside formatting markup):
_ * [ ] ( ) ~ ` > # + - = | { } . !
| Intent | Correct MarkdownV2 |
|---|---|
| Bold text | *bold* |
| Italic text | _italic_ |
| Code inline | `code` |
| Code block | ```language\ncode\n``` |
| Link | [text](https://url) |
| Literal dot in "v2.0" | v2\.0 |
| Literal dash in list | \- item |
| Price "$9.99" | \$9\.99 |
| Exclamation "Done!" | Done\! |
| Parenthetical "(note)" | \(note\) |
| Hashtag "#topic" | \#topic |
When nesting, the inner delimiter must also be escaped:
*_bold italic_* -- the _ inside *...* does NOT need escaping_ inside bold: *score\_value* -- MUST escape. in URLs used as plain text (not inside [](...))! at end of sentences- in bulleted lists (use \- or switch to HTML <li>)( ) in regular text (Telegram interprets them as link syntax)npx claudepluginhub n24q02m/claude-plugins --plugin better-telegram-mcpImplements Telegram bots with full Bot API support: BotFather setup, messages, webhooks, inline keyboards, groups, channels. Node.js and Python boilerplates.
Adds Telegram reaction directives (`[react:<emoji>]`) to assistant replies. The bot strips the tags and applies the first valid reaction.
Automates Telegram bot tasks: send messages/media, manage chats, handle commands via Composio toolkit and Rube MCP. Requires active Rube MCP/Telegram connection.