mcp-telegram
An MCP for telegram to integrate with Claude desktop.
Documentation
Telegram MCP Server
Connect Claude to your Telegram account to read and send messages.
Features
Most chats, users, and groups can be referenced by numeric id, `@username`,
phone number, t.me link, or the literal `"me"` — the server resolves them for
you (and warms Telethon's entity cache automatically so raw ids work too).
Available Tools
Reading
- get_me – Info about the authenticated account
- get_chats – Paginated list of chats (names, ids, unread counts, pinned state); supports archived chats
- get_messages – Paginated message history for a chat (marks it read); includes media and reaction info
- search_messages – Search by text, globally or within a single chat
- get_pinned_messages – List pinned messages in a chat
- get_entity_info – Look up a user/group/channel by id, username, phone, or link
- get_participants – List members of a group or channel
Sending & editing
- send_message – Send text (Markdown), optionally as a reply
- edit_message – Edit a message you sent
- delete_messages – Delete messages (for everyone or just you)
- forward_messages – Forward messages between chats
- send_reaction – Add or clear an emoji reaction
- pin_message / unpin_message – Pin or unpin messages
- mark_messages_read – Mark a chat's unread messages as read
Media
- send_file – Send a photo, video, document, or voice note from disk
- download_media – Download a message's attached media to disk
Contacts & users
- get_contacts – List saved contacts
- add_contact / delete_contact – Manage contacts
- block_user / unblock_user – Block management
Chat & channel management
- create_group – Create a basic group
- create_channel – Create a channel or supergroup
- join_chat / leave_chat – Join (by username or invite link) or leave
- archive_chat – Archive / unarchive a chat
- mute_chat – Mute / unmute notifications
Style-aware drafting
- get_conversation_context – Recent messages + your `convostyle.txt` guide so Claude can match your texting style
Setup Guide
Step 1: Get Telegram API Credentials
1. Go to https://my.telegram.org/apps
2. Log in and create an application
3. Save your API ID and API Hash
Step 2: Install
# Clone the repository
git clone https://github.com/alexandertsai/mcp-telegram
cd mcp-telegram
# Set up Python environment
pip install uv
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv syncStep 3: Configure
# Copy the example file
cp .env.example .env
# Edit .env and add your API credentials:
# TELEGRAM_API_ID=your_api_id_here
# TELEGRAM_API_HASH=your_api_hash_hereStep 4: Authenticate
From the repository root:
uv run telegram-authFollow the prompts:
- Enter your phone number (with country code, e.g., +1234567890)
- Enter the code sent to your Telegram
- Enter your 2FA password if you have one
This writes `TELEGRAM_SESSION_STRING` to your `.env`.
Step 5: Add to Claude Desktop
Find your Claude Desktop config file:
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
Add this configuration (replace the path with your clone's location):
{
"mcpServers": {
"telegram": {
"command": "uv",
"args": ["--directory", "/path/to/mcp-telegram", "run", "telegram-mcp"]
}
}
}If `uv` isn't on Claude Desktop's `PATH`, use its absolute path (`which uv`).
Alternatively, point `command` at your venv's Python and use
`["-m", "mcp_telegram"]` as the args, with `cwd` set to the repo root.
Restart Claude Desktop.
Usage
After setup, you can ask Claude to:
- "Check my Telegram messages"
- "Send a message to [contact name]"
- "What are my unread chats?"
- "Reply to the last message from [contact name]"
Style Guide (Optional)
Create `src/mcp_telegram/convostyle.txt` to help Claude match your texting style:
I text casually with friends, formally with work contacts.
I use emojis sparingly and prefer short messages.Troubleshooting
Authentication Issues
If authentication fails:
1. Check your API credentials in `.env`
2. Remove the TELEGRAM_SESSION_STRING line from `.env`
3. Run `uv run telegram-auth` again
Common Errors
- "Please set TELEGRAM_API_ID and TELEGRAM_API_HASH": Missing `.env` file or credentials
- "Session string is invalid or expired": Re-run authentication
- 2FA password not showing: This is normal - keep typing
Requirements
- Python 3.10+
- Claude Desktop
- Telegram account
License
Apache 2.0
Frequently asked questions
What is mcp-telegram?
mcp-telegram is An MCP for telegram to integrate with Claude desktop.
How do I install mcp-telegram?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is mcp-telegram open source?
Yes — it is hosted on GitHub at https://github.com/alexandertsai/mcp-telegram and has 7 stars.
Related MCP tools
Cognee is the open-source AI memory platform for agents. Give your AI agents persistent long-term memory across sessions with a self-hosted knowledge graph engine.
Automate browser based workflows with AI
Hindsight: Agent Memory That Learns
A privacy-first app that strips AI watermarks from content you own.
Agent framework and applications built upon Qwen>=3.0, featuring Function Calling, MCP, Code Interpreter, RAG, Chrome extension, etc.
The power of Claude Code / GeminiCLI / CodexCLI + [Gemini / OpenAI / OpenRouter / Azure / Grok / Ollama / Custom Model / All Of The Above] working as one.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP