Telegram-bot
MCP server for Telegram Bot API — send messages, photos, videos, polls, manage chats, webhooks, and callbacks.
What it can do
- Tg Get Me: Get basic information about the bot: id, username, first_name, can_join_groups, can_read_all_group_messages, supports_inline_queries.
- Tg Set My Commands: Set the list of bot commands shown in the Telegram chat menu. Each command has a "command" (1-32 chars, lowercase a-z, 0-9, _) and a "description" (1-256 chars). Max 100 commands.
- Tg Send Message: Send a text message to a chat. Supports Markdown, MarkdownV2, and HTML formatting. Can include inline keyboards via reply_markup.
What data it sees
Do you need an account
An API key from the service settings is required
MCP server for Telegram Bot API — send messages, photos, videos, polls, manage chats, webhooks, and callbacks.
Features
- Send text, photo, video, audio, document, location, poll, contact messages
- Edit and delete messages
- Chat management (info, members, ban/unban)
- Webhook setup and management
- Callback query handling
- Pin/unpin messages, invite links
27 Tools
Bot Info: get bot info, set commands Send Messages: text, photo, document, video, audio, location, poll, contact Edit/Delete: edit text, edit caption, delete message Chat: get info, member count, member details, ban, unban Webhooks: set, delete, get webhook info Callbacks: answer callback, get file, get profile photos Pins: pin, unpin, create invite link
Configuration
- TELEGRAM_BOT_TOKEN — Get one from @BotFather on Telegram
How to connect
How to connect Telegram-bot to Claude
The server address to paste into Claude settings:
https://telegram-bot--node2flow.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect Telegram-bot to ChatGPT
The server address to paste into ChatGPT settings:
https://telegram-bot--node2flow.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect Telegram-bot to Cursor
The server address to paste into Cursor settings:
https://telegram-bot--node2flow.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (27)
Raw names from tools/list. Only developers need these.
| tg_get_me | Get basic information about the bot: id, username, first_name, can_join_groups, can_read_all_group_messages, supports_inline_queries. |
| tg_set_my_commands | Set the list of bot commands shown in the Telegram chat menu. Each command has a "command" (1-32 chars, lowercase a-z, 0-9, _) and a "description" (1-256 chars). Max 100 commands. |
| tg_send_message | Send a text message to a chat. Supports Markdown, MarkdownV2, and HTML formatting. Can include inline keyboards via reply_markup. |
| tg_send_photo | Send a photo to a chat. Provide a URL or file_id from a previously uploaded photo. |
| tg_send_document | Send a document/file to a chat. Provide a URL or file_id. Max 50MB for bots. |
| tg_send_video | Send a video to a chat. Provide a URL or file_id. Supports MPEG4 format, max 50MB. |
| tg_send_audio | Send an audio file to a chat. Displayed as a music player. Provide a URL or file_id. Max 50MB, MP3/M4A format. |
| tg_send_location | Send a geographic location point to a chat. |
| tg_send_poll | Send a poll to a chat. Supports regular polls and quiz mode. For quiz mode, set type to "quiz" and provide correct_option_id. |
| tg_send_contact | Send a phone contact card to a chat. |
| tg_edit_message_text | Edit the text of a previously sent message. The bot must be the author of the message. |
| tg_edit_message_caption | Edit the caption of a previously sent media message (photo, video, document, audio). |
| tg_delete_message | Delete a message. Bot must have delete permission in group chats. Messages older than 48 hours cannot be deleted. |
| tg_get_chat | Get detailed information about a chat: title, description, type, member count, permissions, pinned message, etc. |
| tg_get_chat_member_count | Get the number of members in a chat. |
| tg_get_chat_member | Get information about a specific member: status (creator, administrator, member, restricted, left, kicked), permissions, and custom title. |
| tg_ban_chat_member | Ban a user from a group, supergroup, or channel. The user will be unable to return unless unbanned. Bot must be admin with ban permission. |
| tg_unban_chat_member | Unban a previously banned user. The user is NOT added back automatically and must rejoin via invite link. |
| tg_set_webhook | Set a webhook URL for receiving Telegram updates. Telegram sends POST requests with JSON Update objects to this URL. Supported ports: 443, 80, 88, 8443. |
| tg_delete_webhook | Remove the webhook integration. After this, you can use getUpdates for polling. |
| tg_get_webhook_info | Get current webhook status: URL, pending update count, last error date/message, max connections, and allowed update types. |
| tg_answer_callback_query | Answer a callback query from an inline keyboard button press. Must be called to stop the loading indicator on the button. |
| tg_get_file | Get file info and download URL. Returns file_id, file_size, file_path, and a ready-to-use download_url. Files up to 20MB. |
| tg_get_user_profile_photos | Get a list of profile photos for a user. |
| tg_pin_chat_message | Pin a message in a chat. Bot must have pin_messages admin permission in groups/supergroups. |
| tg_unpin_chat_message | Unpin a message in a chat. If message_id is not provided, unpins the most recent pinned message. |
| tg_create_chat_invite_link | Create an additional invite link for a chat. Bot must be admin with invite_users permission. |