Skip to main content
Glama
siavashdelkhosh81

Telegram Bot MCP Server

๐Ÿง  Telegram Bot MCP Server

A powerful Model Context Protocol (MCP) server for seamless Telegram Bot API integration with intelligent message splitting, comprehensive error handling, and NPX support.

NPM Version License: MIT Node.js Version

โœจ Key Features

  • ๐Ÿ“ 45 Tools, Rich API Coverage: Messaging, media, polls, chat administration, invite links, and bot configuration

  • ๐Ÿ”„ Intelligent Message Splitting: Automatically handles Telegram's 4096 character limit while preserving word boundaries and formatting

  • ๐Ÿ–ผ๏ธ Full Media Support: Photos, documents, videos, audio, voice messages, animations, and stickers by file_id or URL

  • ๐ŸŽฒ Interactive Content: Polls, quizzes, dice, locations, contacts, and chat actions (typing indicators)

  • โœ๏ธ Message Lifecycle: Edit, delete, forward, copy, and pin messages

  • ๐Ÿ‘ฎ Group Administration: Ban/unban, restrict/mute, promote admins, and manage invite links

  • ๐Ÿ›ก๏ธ Comprehensive Error Handling: Detailed error reporting with context, error codes, and debugging information

  • ๐Ÿ“ฆ NPX Support: Run directly with npx telegram-bot-mcp-server - no installation required

  • ๐Ÿ”ง Easy Integration: Simple MCP client configuration for AI assistants

Related MCP server: agent-telegram-mcp

๐Ÿš€ Quick Start

# Run directly without installation
npx telegram-bot-mcp-server

Option 2: NPM Installation

# Install globally
npm install -g telegram-bot-mcp-server

# Or install locally
npm install telegram-bot-mcp-server

๐Ÿ“‹ Prerequisites

  1. Node.js 18+: Download here

  2. Telegram Bot Token: Get one from @BotFather

Getting Your Bot Token

  1. Open Telegram and search for @BotFather

  2. Start a conversation and run: /newbot

  3. Follow the prompts to name your bot

  4. Copy the API token provided

๐Ÿ”ง MCP Client Configuration

Add this configuration to your MCP client (Claude Desktop, etc.):

{
  "mcpServers": {
    "telegram_bot": {
      "command": "npx",
      "args": ["telegram-bot-mcp-server"],
      "env": {
        "TELEGRAM_BOT_API_TOKEN": "your_bot_token_here"
      }
    }
  }
}

Alternative Configurations

Using global installation:

{
  "mcpServers": {
    "telegram_bot": {
      "command": "telegram-bot-mcp-server",
      "env": {
        "TELEGRAM_BOT_API_TOKEN": "your_bot_token_here"
      }
    }
  }
}

Using local installation:

{
  "mcpServers": {
    "telegram_bot": {
      "command": "node",
      "args": ["./node_modules/.bin/telegram-bot-mcp-server"],
      "env": {
        "TELEGRAM_BOT_API_TOKEN": "your_bot_token_here"
      }
    }
  }
}

๐Ÿ› ๏ธ Available Tools (45)

๐Ÿ“จ Messaging

Tool

Description

Inputs

send-message

Send a text message. Messages over 4096 characters are automatically split while preserving word boundaries

chatId, text

edit-message-text

Edit the text of a message previously sent by the bot

chatId, messageId, text

delete-message

Delete a message from a chat

chatId, messageId

forward-message

Forward a message from one chat to another (keeps a link to the original)

chatId, fromChatId, messageId

copy-message

Copy a message to another chat without a link to the original

chatId, fromChatId, messageId

send-chat-action

Show a status indicator like "typingโ€ฆ" or "sending photoโ€ฆ"

chatId, action

๐Ÿ–ผ๏ธ Media

Tool

Description

Inputs

send-photo

Send a photo with an optional caption (long captions are split automatically)

chatId, media, text?

send-document

Send a document/file (PDF, ZIP, etc., up to 50 MB)

chatId, media, caption?

send-video

Send an MPEG4 video

chatId, media, caption?

send-audio

Send an audio file for the music player (.MP3/.M4A)

chatId, media, caption?

send-voice

Send a playable voice message (.OGG/OPUS, .MP3, .M4A)

chatId, media, caption?

send-animation

Send an animation (GIF or soundless MPEG4)

chatId, media, caption?

send-sticker

Send a static, animated, or video sticker

chatId, media

get-file

Get file info and a direct HTTPS download link for any file_id

fileId

For all media tools, media accepts a Telegram file_id (recommended) or an HTTP URL.

๐ŸŽฒ Interactive Content

Tool

Description

Inputs

send-poll

Send a native poll or quiz (anonymous mode, multiple answers, quiz mode with a correct answer)

chatId, question, options, isAnonymous?, allowsMultipleAnswers?, type?, correctOptionId?

send-dice

Send an animated random-value emoji (๐ŸŽฒ ๐ŸŽฏ ๐Ÿ€ โšฝ ๐ŸŽณ ๐ŸŽฐ)

chatId, emoji?

send-location

Send a point on the map

chatId, latitude, longitude

send-contact

Send a phone contact

chatId, phoneNumber, firstName, lastName?

๐Ÿ‘ฅ Chat & Member Management

Tool

Description

Inputs

get-chat

Fetch full chat metadata and details

chatId

get-chat-member

Get detailed info about a chat member

chatId, userId

get-chat-member-count

Get the total number of members in a chat

chatId

get-chat-administrators

List all chat administrators with their rights

chatId

kick-chat-member

Ban a user from a group, supergroup, or channel

chatId, userId

un-ban-chat-member

Unban a previously banned user

chatId, userId

restrict-chat-member

Mute or limit what a user can send in a supergroup

chatId, userId, permission flags, untilDate?

promote-chat-member

Promote a user to administrator (or demote them)

chatId, userId, admin right flags

get-user-profile-photos

Get a user's profile pictures

userId, offset?, limit?

leave-chat

Make the bot leave a group, supergroup, or channel

chatId

๐Ÿ”ง Chat Settings

Tool

Description

Inputs

set-chat-title

Change the title of a group or channel

chatId, title

set-chat-description

Change the description of a group or channel

chatId, description

pin-chat-message

Pin a message (optionally silently)

chatId, messageId, disableNotification?

unpin-chat-message

Unpin a message (or the most recent pin)

chatId, messageId?

unpin-all-chat-messages

Unpin all pinned messages at once

chatId

Tool

Description

Inputs

create-chat-invite-link

Create an additional invite link (with optional name, expiry, member limit)

chatId, name?, expireDate?, memberLimit?

revoke-chat-invite-link

Revoke an invite link created by the bot

chatId, inviteLink

export-chat-invite-link

Generate a new primary invite link (revokes the old one)

chatId

๐Ÿค– Bot Configuration

Tool

Description

Inputs

get-me

Test the bot's auth token and get bot info

โ€”

set-my-name / get-my-name

Configure and retrieve the bot's name

name (0-64 chars)

set-my-description / get-my-description

Configure and retrieve the bot's description (shown in empty chats)

description (0-512 chars)

set-my-short-description / get-my-short-description

Configure and retrieve the bot's short description (profile page)

short_description (0-120 chars)

set-my-commands / get-my-commands

Configure and retrieve the bot's command menu

commands array of { command, description }

๐Ÿ†• New Features

Rich Media Support

  • Documents, Video, Audio, Voice, Animations, Stickers: Send any kind of media by file_id or URL

  • File Downloads: Resolve any file_id to a direct HTTPS download link with get-file

Interactive Content

  • Polls & Quizzes: Native polls with anonymous mode, multiple answers, and quiz mode with a correct answer

  • Dice, Locations, Contacts: Fun animated emoji, map points, and phone contacts

  • Chat Actions: Show "typingโ€ฆ" and other status indicators while preparing a response

Full Message Lifecycle

  • Edit & Delete: Update or remove messages the bot has sent

  • Forward & Copy: Move content between chats, with or without attribution

  • Pin Management: Pin, unpin, and bulk-unpin messages

Group Administration

  • Moderation: Ban, unban, mute/restrict, and promote members

  • Chat Settings: Update titles and descriptions, list administrators

  • Invite Links: Create, revoke, and rotate invite links with expiry and member limits

Intelligent Message Splitting

  • Automatic Detection: Detects when messages exceed 4096 characters

  • Smart Splitting: Preserves word boundaries and formatting

  • Sequential Delivery: Sends parts in order with part indicators

  • Photo Captions: Handles long photo captions by splitting across messages

Enhanced Error Handling

  • Detailed Errors: Includes error codes, descriptions, and context

  • Telegram API Errors: Captures and formats Telegram-specific errors

  • Network Issues: Handles connection and timeout errors

  • Debug Information: Comprehensive logging for troubleshooting

NPX Support

  • Zero Installation: Run directly with npx telegram-bot-mcp-server

  • CLI Interface: Built-in help and version commands

  • Environment Validation: Checks for required bot token

  • Cross-Platform: Works on Windows, macOS, and Linux

๐Ÿ” Troubleshooting

Common Issues

"No bot token" Error

โŒ Error: Missing Telegram Bot Token

Solution: Set the TELEGRAM_BOT_API_TOKEN environment variable:

export TELEGRAM_BOT_API_TOKEN="your_token_here"
npx telegram-bot-mcp-server

"Something went wrong" Errors (Legacy)

This has been replaced with detailed error messages. Update to the latest version for better error reporting.

NPX Command Not Found

Solution: Ensure Node.js 18+ is installed:

node --version  # Should be 18.0.0 or higher
npm --version   # Should be included with Node.js

Permission Errors

Solution: On Unix systems, you may need to use sudo for global installation:

sudo npm install -g telegram-bot-mcp-server

Debug Mode

Set NODE_ENV=development for additional debug information:

NODE_ENV=development npx telegram-bot-mcp-server

๐Ÿ“š Usage Examples

Basic Message Sending

// Through MCP client
await sendMessage({
  chatId: "@username",
  text: "Hello! This is a test message."
});

Long Message Handling

// Messages over 4096 characters are automatically split
await sendMessage({
  chatId: "123456789",
  text: "Very long message content..." // Will be split automatically
});

Photo with Long Caption

await sendPhoto({
  chatId: "123456789",
  media: "https://example.com/photo.jpg",
  text: "Very long caption..." // Will be split if needed
});

๐Ÿค Contributing

  1. Fork the repository

  2. Create a feature branch: git checkout -b feature-name

  3. Make your changes

  4. Add tests if applicable

  5. Commit your changes: git commit -am 'Add feature'

  6. Push to the branch: git push origin feature-name

  7. Submit a pull request

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ’ฌ Support

โ˜• Support the Project

If you find this project helpful, consider supporting the developer:

Buy Me A Coffee

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/siavashdelkhosh81/telegram-bot-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server