← ClaudeAtlas

channel-postlisted

Compose and post formatted content to a Telegram channel -- MarkdownV2 escaping, message splitting, media ordering
n24q02m/better-telegram-mcp · ★ 8 · AI & Automation · score 78
Install: claude install-skill n24q02m/better-telegram-mcp
# Channel Post Compose and post formatted content to a Telegram channel with correct formatting. ## Steps 1. **Identify target channel**: - `chat(action="list")` to find the channel - Channel chat_id is a negative number (e.g., -1001234567890) or @username 2. **Compose content** with the user: - Draft the message text - Apply MarkdownV2 formatting (see escaping rules below) - Determine if media attachments are needed 3. **Handle media attachments** (if any): - Photo with caption: `media(action="send_photo", chat_id="...", file_path_or_url="...", caption="...")` -- caption goes WITH the photo, not as a separate message - Document: `media(action="send_file", chat_id="...", file_path_or_url="...")` - Multiple photos: send as media group, first photo carries the caption 4. **Split long messages** if content exceeds 4096 characters: - Split at paragraph boundaries (double newline) to preserve readability - Each chunk must be independently valid MarkdownV2 (no unclosed formatting) - Send chunks sequentially with the same parse_mode 5. **Send and verify**: - `message(action="send", chat_id="<channel>", text="<content>", parse_mode="MarkdownV2")` - Verify the message appears correctly in the channel - If formatting breaks, check the escaping rules below ## MarkdownV2 Escaping Rules All these characters MUST be escaped with `\` when used as literal text (outside formatting markup): ``` _ * [ ] ( ) ~ ` > # + - = | { } . ! ``` ### Com