Skip to main content
Glama
kamalbuilds

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