From better-telegram-mcp
Composes and posts formatted content to a Telegram channel with correct MarkdownV2 escaping, message splitting, and media ordering.
How this skill is triggered — by the user, by Claude, or both
Slash command
/better-telegram-mcp:channel-post [content to post][content to post]The 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:
chat(action="list") to find the channelCompose content with the user:
Handle media attachments (if any):
media(action="send_photo", chat_id="...", file_path_or_url="...", caption="...") -- caption goes WITH the photo, not as a separate messagemedia(action="send_file", chat_id="...", file_path_or_url="...")Split long messages if content exceeds 4096 characters:
Send and verify:
message(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/better-telegram-mcpCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.