Telegram MCP Server
by kamalbuilds
README.md
# Telegram MCP Server for Claude Code
Read and search Telegram channel/group/DM messages directly from Claude Code.
Uses MTProto (user account API) via GramJS, so it can read full message history, not just new messages like Bot API.
## Setup
### 1. Get Telegram API credentials
1. Go to https://my.telegram.org/apps
2. Log in with your phone number
3. Create an application
4. Note down your **API ID** and **API Hash**
### 2. Install and authenticate
```bash
cd telegram-mcp-server
npm install
npm run build
# Generate session (interactive, one-time)
TELEGRAM_API_ID=12345 TELEGRAM_API_HASH=abc123def456 npm run auth
```
This will ask for your phone number, send you a code on Telegram, and output a session string. Save it.
### 3. Add to Claude Code
```bash
claude mcp add telegram-mcp \
-e TELEGRAM_API_ID=12345 \
-e TELEGRAM_API_HASH=abc123def456 \
-e TELEGRAM_SESSION=your_session_string_here \
-- node /Users/kamal/Desktop/telegram-mcp-server/build/index.js
```
Or add manually to `~/.claude.json`:
```json
{
"mcpServers": {
"telegram-mcp": {
"type": "stdio",
"command": "node",
"args": ["/Users/kamal/Desktop/telegram-mcp-server/build/index.js"],
"env": {
"TELEGRAM_API_ID": "12345",
"TELEGRAM_API_HASH": "abc123def456",
"TELEGRAM_SESSION": "your_session_string_here"
}
}
}
}
```
## Tools
| Tool | Description |
|------|-------------|
| `list_chats` | List your chats, channels, groups with IDs and unread counts |
| `read_messages` | Read messages from a specific chat/channel/group |
| `search_messages` | Search messages globally or within a specific chat |
| `get_chat_info` | Get detailed info about a chat/channel/group |
| `send_message` | Send a message to any chat |
## Usage in Claude Code
Once configured, just ask Claude:
- "List my Telegram channels"
- "Read the last 50 messages from @channelname"
- "Search for 'meeting notes' across all my Telegram chats"
- "What are the recent messages in the dev group?"
## Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| `TELEGRAM_API_ID` | Yes | From my.telegram.org |
| `TELEGRAM_API_HASH` | Yes | From my.telegram.org |
| `TELEGRAM_SESSION` | Yes | Generated via `npm run auth` |
TDQS
A3.6/5.0
Scored across 5 tools
Disambiguation5/5
Each tool has a clear, non-overlapping purpose: listing chats, reading messages, searching, getting chat info, and sending messages. No ambiguity in tool selection.
Naming Consistency5/5
All tool names follow a consistent verb_noun pattern (e.g., list_chats, read_messages, send_message), making them predictable and easy to understand.
Tool Count5/5
With five tools, the server covers the core messaging actions without being too sparse or too heavy. Each tool serves a distinct and necessary function.
Completeness3/5
The tool set supports basic reading, searching, and sending text messages, but lacks critical operations like sending media, editing or deleting messages, and managing chats. This is a notable gap for a full-featured messaging server.
Maintenance
ActivityInactive
ResponsivenessNo issues