channel-postlisted
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