| name | telegram-assistant |
| description | Telegram automation assistant using telegram-mcp. Use when users want to: (1) Get a digest of unread Telegram messages (2) Analyze their writing style from channel posts (3) Draft and publish posts to Telegram channels (4) Search and reply to messages across chats Triggers: "telegram digest", "unread messages", "morning summary", "post to channel", "draft telegram post", "analyze writing style", "extract style from channel", "telegram workflow" |
| license | MIT |
| compatibility | Requires telegram-mcp server configured in Claude Code. See references/setup.md for installation instructions. |
| metadata | [object Object] |
| allowed-tools | mcp__telegram-mcp__* Read Write Edit Glob |
Telegram Assistant
Automate Telegram workflows with AI: digests, channel posting, and style-matched drafts.
Quick Start
Need morning digest? → Use Digest Workflow
Want to post to channel? → Use Style + Post Workflow
Replying to messages? → Use Reply Workflow
Workflow 1: Digest
Goal: Summarize unread messages across all chats.
Step 1: Get Unread Chats
Use list_chats to find chats with unread messages.
Look for "Unread:" in the output (both count and "marked" flag).
Step 2: Read Recent Messages
For each chat with unread:
- Use
get_messagesorlist_messagesto fetch recent messages - Focus on messages since last read
Step 3: Summarize
Create a digest with:
- Priority items: Direct mentions, questions needing response
- Updates: News, announcements from channels
- Low priority: General chatter, FYI items
Step 4: Draft Replies (Optional)
For messages needing response:
- Draft a reply
- Use
save_draftto save it for user review - User can review and send manually in Telegram app
Safety: Never send messages directly. Always save as draft first.
Workflow 2: Style Extraction
Goal: Analyze channel posts to capture user's writing style.
Step 1: Fetch Posts
Use list_messages with the channel name/ID.
Fetch last 15-20 posts (skip media-only posts).
Step 2: Analyze Patterns
Extract these characteristics:
- Language mix: Ratio of Russian to English terms
- Structure: Use of hooks, tldr, bullets, numbered lists, sections
- Tone: Formal (вы) vs casual (ты), first-person usage (я/мы)
- Length: Average post length in words
- Emoji: Frequency and types used
- Call-to-action: How posts typically end
Step 3: Generate Style Guide
Create references/style-guide.md with:
# [Channel Name] Style Guide
## Language
- Primary: Russian with English tech terms
- Formality: [formal/casual]
- Person: [я/мы usage]
## Structure
- Hook: [question/statement/story]
- Sections: [yes/no, with headers?]
- Lists: [bullets/numbered]
- tldr: [yes/no]
## Formatting
- Average length: ~[X] words
- Emoji: [frequent/occasional/rare]
- Common emojis: [list]
## Endings
- Call-to-action style: [question/invitation/resource link]
## Example Patterns
[Include 2-3 anonymized structure examples]
Step 4: Save for Future Use
The style guide is now available for the Post workflow.
Workflow 3: Post to Channel
Goal: Draft a post matching user's writing style.
Pre-requisite
Run Style Extraction workflow first if references/style-guide.md doesn't exist.
Step 1: Read Style Guide
Read references/style-guide.md to understand the target style.
Step 2: Understand Topic
Ask user for:
- Topic/subject matter
- Key points to cover
- Target audience (if different from usual)
- Any specific call-to-action
Step 3: Draft Post
Write the post following the style guide:
- Match language mix ratio
- Use the same structural patterns
- Maintain consistent tone
- Include appropriate emoji (if style uses them)
- End with typical call-to-action pattern
Step 4: User Review
Present the draft to user for feedback. Iterate if needed.
Step 5: Save as Draft
Use save_draft(chat_id="ChannelName", message="draft content")
User can then:
- Open Telegram app
- Go to the channel
- See the draft in the input field
- Review and send when ready
Safety: Always use save_draft, never send_message for channel posts.
Workflow 4: Search & Reply
Goal: Find specific messages and draft contextual replies.
Step 1: Search
Use search_messages(chat_id, query) to find relevant messages.
Or list recent messages and filter manually.
Step 2: Get Context
Use get_message_context(chat_id, message_id) to see surrounding messages.
Step 3: Draft Reply
Write a contextual reply based on the conversation flow.
Step 4: Save as Draft Reply
Use save_draft(chat_id, message, reply_to_msg_id=message_id)
User reviews and sends from Telegram app.
Safety Guidelines
Draft First: Never use
send_messagefor important communications. Alwayssave_draft.Verify Chat ID: Double-check you're targeting the right chat before any action.
Rate Limits: Avoid rapid-fire API calls. Space out requests if processing many chats.
Privacy: The AI sees all accessible chats. Be mindful of sensitive conversations.
Session Security: The session string provides full account access. Treat it like a password.
- On macOS: Store in Keychain (see setup.md) rather than .env files
- Never commit credentials to git
Troubleshooting
"Could not find the input entity"
- Use channel username (without @) or numeric ID
- For supergroups, try prepending -100 to the ID
"Chat not found"
- Ensure the account has access to the chat
- Try using the exact chat title from
list_chats
Draft not appearing
- Open the specific chat in Telegram app
- Drafts are saved per-chat
Resources
- telegram-mcp repo: https://github.com/chigwell/telegram-mcp
- Setup guide: references/setup.md
- Style guide template: references/style-guide.md