Skip to main content
Glama
FantomaSkaRus1

telegram-bot-mcp

README.md
# telegram-bot-mcp

Full-featured Telegram Bot API server for MCP (Model Context Protocol).
**174 tools** covering the entire Bot API — messages, chats, stickers, payments, forums, stories, and more.

<a href="https://glama.ai/mcp/servers/@FantomaSkaRus1/telegram-bot-mcp">
  <img width="380" height="200" src="https://glama.ai/mcp/servers/@FantomaSkaRus1/telegram-bot-mcp/badge" alt="telegram-bot-mcp MCP server" />
</a>

## Features

- **Messages** — send (text, photo, video, audio, document, location, poll, dice, sticker, media groups), edit, forward, copy, delete, pin/unpin, reactions
- **Chats** — info, settings, permissions, invite links, member management, verification
- **Bot** — commands, profile, settings, description, menu button, admin rights
- **Stickers** — create/edit/delete sticker sets, upload stickers, custom emoji
- **Payments** — invoices, star transactions, gifts, refunds
- **Forums** — create/edit/close/reopen/delete topics
- **Stories** — post, edit, delete, repost
- **Business** — business messages, accounts, connections
- **Games** — send games, set scores, high scores
- **Webhooks** — set, delete, get info

## Quick Start

```bash
npm install
```

### Claude Code

```bash
claude mcp add -e TELEGRAM_BOT_TOKEN=your_token telegram -- node /path/to/mcp-telegram/index.js
```

### Claude Desktop

Add to `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "telegram": {
      "type": "stdio",
      "command": "node",
      "args": ["/path/to/mcp-telegram/index.js"],
      "env": {
        "TELEGRAM_BOT_TOKEN": "your_token"
      }
    }
  }
}
```

## Environment Variables

| Variable | Required | Description |
|---|---|---|
| `TELEGRAM_BOT_TOKEN` | Yes | Bot token from [@BotFather](https://t.me/BotFather) |
| `TELEGRAM_DEFAULT_CHAT_ID` | No | Default chat ID (skip `chat_id` in tool calls) |
| `TELEGRAM_DEFAULT_THREAD_ID` | No | Default topic/thread ID for forum supergroups |

## Project Structure

```
index.js              # Entry point — registers all tool modules
utils/api.js          # Telegram API client, rate limiting, retry logic
tools/
  messages/           # send, edit, forward, manage
  chat/               # info, settings, invite, members, verify
  bot/                # core, commands, profile, settings
  stickers.js
  payments.js
  forum.js
  stories.js
  business.js
  games.js
  webhook.js
```

## License

MIT

TDQS

B3/5.0

Scored across 100 tools

Disambiguation3/5

While many tools are distinct (send_photo vs send_document), there is notable overlap in message editing and business message editing (edit_message vs edit_business_message_text) and sending (send_message vs send_business_message). Some tools like get_my_short_description and set_my_short_description are clear, but the number of similar send_* and edit_* variants may cause an agent to pick the wrong one without careful reading.

Naming Consistency4/5

The naming is predominantly verb_noun (send_message, get_chat_info, edit_message), which is consistent. Minor deviations exist: 'log_out' vs 'logout', 'get_me' vs 'get_my_commands', and plural/singular variations (delete_messages vs delete_message) are understandable. Overall pattern is predictable.

Tool Count2/5

With 100 tools, the server is extremely heavy, far exceeding the typical 3-15 well-scoped tools. Most are direct wrappers of the Telegram Bot API, leading to a very large surface that may overwhelm agents. While each tool is simple, the sheer count makes it hard to navigate and select the right one.

Completeness5/5

The tool set covers the full Telegram Bot API lifecycle: sending all media types, editing, deleting, chat management (ban, restrict, invite links), bot configuration (set_my_*), and updates (get_updates). It is comprehensive, with no obvious missing core operations such as getting updates or deleting messages, which are all present.

Maintenance

ActivityInactive
ResponsivenessUnresponsive