mcpField
๐Ÿง 
๐Ÿง  Telegram Bot MCP Server

๐Ÿง  Telegram Bot MCP Server

Local
github.com/siavashdelkhosh81Communication8Updated 7w ago

About ๐Ÿง  Telegram Bot MCP Server

An MCP server that connects AI clients to the Telegram Bot API, covering messaging, media, interactive content, and bot and group administration. It also splits long messages automatically and provides detailed error information.

Key features

  1. 0145 Telegram Bot API tools
  2. 02Automatic splitting of long messages
  3. 03Media sending and file lookup
  4. 04Polls, quizzes, and interactive content
  5. 05Chat and member administration
  6. 06Detailed API error reporting

Use cases

  1. 01Send and manage messages across chats
  2. 02Share media, polls, and locations
  3. 03Moderate groups and manage invite links
  4. 04Configure bot details and commands

MCP support

Exposes Telegram Bot API operations as tools for MCP clients, including messaging, media, chat administration, and bot configuration. The server runs with a Telegram bot token.

Configuration

Local server config is the same for every client. Copy it into your clientโ€™s MCP config file.

mcp.json ยท Universal config
{
"mcpServers": {
"telegram-bot": {
"command": "npx",
"args": [
"-y",
"telegram-bot-mcp-server"
]
}
}
}
Run commandnpx -y telegram-bot-mcp-server

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your clientโ€™s docs.

Packages
npmtelegram-bot-mcp-server

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

๐Ÿง  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

๐Ÿš€ Quick Start

Option 1: NPX (Recommended)
# 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
ToolDescriptionInputs
send-messageSend a text message. Messages over 4096 characters are automatically split while preserving word boundarieschatId, text
edit-message-textEdit the text of a message previously sent by the botchatId, messageId, text
delete-messageDelete a message from a chatchatId, messageId
forward-messageForward a message from one chat to another (keeps a link to the original)chatId, fromChatId, messageId
copy-messageCopy a message to another chat without a link to the originalchatId, fromChatId, messageId
send-chat-actionShow a status indicator like "typingโ€ฆ" or "sending photoโ€ฆ"chatId, action
๐Ÿ–ผ๏ธ Media
ToolDescriptionInputs
send-photoSend a photo with an optional caption (long captions are split automatically)chatId, media, text?
send-documentSend a document/file (PDF, ZIP, etc., up to 50 MB)chatId, media, caption?
send-videoSend an MPEG4 videochatId, media, caption?
send-audioSend an audio file for the music player (.MP3/.M4A)chatId, media, caption?
send-voiceSend a playable voice message (.OGG/OPUS, .MP3, .M4A)chatId, media, caption?
send-animationSend an animation (GIF or soundless MPEG4)chatId, media, caption?
send-stickerSend a static, animated, or video stickerchatId, media
get-fileGet file info and a direct HTTPS download link for any file_idfileId

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

๐ŸŽฒ Interactive Content
ToolDescriptionInputs
send-pollSend a native poll or quiz (anonymous mode, multiple answers, quiz mode with a correct answer)chatId, question, options, isAnonymous?, allowsMultipleAnswers?, type?, correctOptionId?
send-diceSend an animated random-value emoji (๐ŸŽฒ ๐ŸŽฏ ๐Ÿ€ โšฝ ๐ŸŽณ ๐ŸŽฐ)chatId, emoji?
send-locationSend a point on the mapchatId, latitude, longitude
send-contactSend a phone contactchatId, phoneNumber, firstName, lastName?
๐Ÿ‘ฅ Chat & Member Management
ToolDescriptionInputs
get-chatFetch full chat metadata and detailschatId
get-chat-memberGet detailed info about a chat memberchatId, userId
get-chat-member-countGet the total number of members in a chatchatId
get-chat-administratorsList all chat administrators with their rightschatId
kick-chat-memberBan a user from a group, supergroup, or channelchatId, userId
un-ban-chat-memberUnban a previously banned userchatId, userId
restrict-chat-memberMute or limit what a user can send in a supergroupchatId, userId, permission flags, untilDate?
promote-chat-memberPromote a user to administrator (or demote them)chatId, userId, admin right flags
get-user-profile-photosGet a user's profile picturesuserId, offset?, limit?
leave-chatMake the bot leave a group, supergroup, or channelchatId
๐Ÿ”ง Chat Settings
ToolDescriptionInputs
set-chat-titleChange the title of a group or channelchatId, title
set-chat-descriptionChange the description of a group or channelchatId, description
pin-chat-messagePin a message (optionally silently)chatId, messageId, disableNotification?
unpin-chat-messageUnpin a message (or the most recent pin)chatId, messageId?
unpin-all-chat-messagesUnpin all pinned messages at oncechatId
๐Ÿ”— Invite Links
ToolDescriptionInputs
create-chat-invite-linkCreate an additional invite link (with optional name, expiry, member limit)chatId, name?, expireDate?, memberLimit?
revoke-chat-invite-linkRevoke an invite link created by the botchatId, inviteLink
export-chat-invite-linkGenerate a new primary invite link (revokes the old one)chatId
๐Ÿค– Bot Configuration
ToolDescriptionInputs
get-meTest the bot's auth token and get bot infoโ€”
set-my-name / get-my-nameConfigure and retrieve the bot's namename (0-64 chars)
set-my-description / get-my-descriptionConfigure and retrieve the bot's description (shown in empty chats)description (0-512 chars)
set-my-short-description / get-my-short-descriptionConfigure and retrieve the bot's short description (profile page)short_description (0-120 chars)
set-my-commands / get-my-commandsConfigure and retrieve the bot's command menucommands 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

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.