Telegram MCP Server
Telegram 계정에 연결하여 메시지를 읽고 보낼 수 있습니다.
문서
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.txtguide so Claude can match your texting style
Setup Guide
Step 1: Get Telegram API Credentials
- Go to https://my.telegram.org/apps
- Log in and create an application
- 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 sync
Step 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_here
Step 4: Authenticate
From the repository root:
uv run telegram-auth
Follow 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:
- Check your API credentials in
.env - Remove the TELEGRAM_SESSION_STRING line from
.env - Run
uv run telegram-authagain
Common Errors
- "Please set TELEGRAM_API_ID and TELEGRAM_API_HASH": Missing
.envfile 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