Integrations
Enables interaction with Telegram chats, allowing users to retrieve lists of chats, fetch message history, and send messages directly through the Telegram platform.
Телеграм MCP-сервер
🤖 MCP в действии
Вот демонстрация возможностей Telegram MCP в Claude :
Пример простого использования:
- Пример: просим Клода проанализировать историю чата и отправить ответ:
- Сообщение успешно отправлено группе:
Как вы видите, ИИ может беспрепятственно взаимодействовать с вашим аккаунтом Telegram, извлекая и отображая ваши чаты, сообщения и другие данные естественным образом.
Полнофункциональная интеграция Telegram для Claude, Cursor и любого MCP-совместимого клиента, работающая на основе Telethon и Model Context Protocol (MCP) . Этот проект позволяет вам взаимодействовать с вашим аккаунтом Telegram программно, автоматизируя все: от обмена сообщениями до управления группами.
🚀 Функции и инструменты
Этот сервер MCP предоставляет огромный набор инструментов Telegram. Каждая крупная функция Telegram/Telethon доступна как инструмент!
Управление чатом и группами
- get_chats(page, page_size) : постраничный список чатов
- list_chats(chat_type, limit) : список чатов с метаданными и фильтрацией
- get_chat(chat_id) : Подробная информация о чате
- create_group(title, user_ids) : создать новую группу
- create_channel(title, about, megagroup) : создать канал или супергруппу
- edit_chat_title(chat_id, title) : Изменить название чата/группы/канала
- delete_chat_photo(chat_id) : Удалить фотографию чата/группы/канала
- leave_chat(chat_id) : Покинуть группу или канал
- get_participants(chat_id) : Список всех участников
- get_admins(chat_id) : Список всех администраторов
- get_banned_users(chat_id) : список всех забаненных пользователей
- promote_admin(chat_id, user_id) : повысить пользователя до администратора
- demote_admin(chat_id, user_id) : Понизить администратора до пользователя
- ban_user(chat_id, user_id) : Забанить пользователя
- unban_user(chat_id, user_id) : Разбанить пользователя
- get_invite_link(chat_id) : Получить ссылку приглашения
- export_chat_invite(chat_id) : Экспортировать ссылку приглашения
- import_chat_invite(hash) : Присоединиться к чату по хэшу приглашения
- join_chat_by_link(link) : Присоединиться к чату по пригласительной ссылке
Обмен сообщениями
- get_messages(chat_id, page, page_size) : постраничные сообщения
- list_messages(chat_id, limit, search_query, from_date, to_date) : Отфильтрованные сообщения
- send_message(chat_id, message) : Отправить сообщение
- reply_to_message(chat_id, message_id, text) : Ответить на сообщение
- edit_message(chat_id, message_id, new_text) : Отредактируйте свое сообщение
- delete_message(chat_id, message_id) : Удалить сообщение
- forward_message(from_chat_id, message_id, to_chat_id) : Переслать сообщение
- pin_message(chat_id, message_id) : Закрепить сообщение
- unpin_message(chat_id, message_id) : Открепить сообщение
- mark_as_read(chat_id) : Отметить все как прочитанные
- get_message_context(chat_id, message_id, context_size) : Контекст вокруг сообщения
- get_history(chat_id, limit) : Полная история чата
- get_pinned_messages(chat_id) : Список закрепленных сообщений
- get_last_interaction(contact_id) : Последнее сообщение с контактом
Управление контактами
- list_contacts() : Список всех контактов
- search_contacts(query) : Поиск контактов
- add_contact(телефон, имя, фамилия) : Добавить контакт
- delete_contact(user_id) : Удалить контакт
- block_user(user_id) : Заблокировать пользователя
- unblock_user(user_id) : Разблокировать пользователя
- import_contacts(contacts) : Массовый импорт контактов
- export_contacts() : экспорт всех контактов в формате JSON
- get_blocked_users() : Список заблокированных пользователей
- get_contact_ids() : список всех идентификаторов контактов
- get_direct_chat_by_contact(contact_query) : Найти прямой чат с контактом
- get_contact_chats(contact_id) : список всех чатов с контактом
Пользователь и профиль
- get_me() : Получить информацию о пользователе
- update_profile(first_name, last_name, about) : Обновите свой профиль
- delete_profile_photo() : Удалить фотографию вашего профиля
- get_user_photos(user_id, limit) : Получить фотографии профиля пользователя
- get_user_status(user_id) : Получить статус пользователя в сети
СМИ
- get_media_info(chat_id, message_id) : Получить информацию о медиа в сообщении
Поиск и обнаружение
- search_public_chats(query) : Поиск публичных чатов/каналов/ботов
- search_messages(chat_id, query, limit) : Поиск сообщений в чате
- resolve_username(имя пользователя) : Преобразовать имя пользователя в идентификатор
Наклейки, GIF-файлы, боты
- get_sticker_sets() : Список наборов наклеек
- get_bot_info(bot_username) : Получить информацию о боте
- set_bot_commands(bot_username, commands) : Установить команды бота (только для учетных записей ботов)
Конфиденциальность, настройки и прочее
- get_privacy_settings() : Получить настройки конфиденциальности
- set_privacy_settings(key, allow_users, disallow_users) : Установить настройки конфиденциальности
- mute_chat(chat_id) : Отключить уведомления
- unmute_chat(chat_id) : Включить уведомления
- archive_chat(chat_id) : Архивировать чат
- unarchive_chat(chat_id) : Разархивировать чат
- get_recent_actions(chat_id) : Получить последние действия администратора
Удаленная функциональность
Обратите внимание, что инструменты, требующие прямого доступа к пути файла на сервере ( send_file
, download_media
, set_profile_photo
, edit_chat_photo
, send_voice
, send_sticker
, upload_file
), были удалены из main.py
Это связано с ограничениями в текущей среде MCP в отношении обработки вложений файлов и путей локальной файловой системы.
Кроме того, инструменты, связанные с GIF ( get_gif_search
, get_saved_gifs
, send_gif
), были удалены из-за сохраняющихся проблем с надежностью в библиотеке Telethon или взаимодействиях с API Telegram.
📋 Требования
- Питон 3.10+
- Телемарафон
- MCP Python SDK
- Claude Desktop или Cursor (или любой MCP-клиент)
🔧 Установка и настройка
1. Форк и клонирование
2. Создайте виртуальную среду
3. Сгенерируйте строку сеанса
Следуйте инструкциям по аутентификации и обновлению файла .env
.
4. Настройте .env
Скопируйте .env.example
в .env
и заполните нужные значения:
Получите свои учетные данные API на my.telegram.org/apps .
🐳 Работа с Docker
Если у вас установлены Docker и Docker Compose, вы можете собрать и запустить сервер в контейнере, что упрощает управление зависимостями.
1. Создайте образ
Из корневого каталога проекта соберите образ Docker:
2. Запуск контейнера
У вас есть два варианта:
Вариант A: использование Docker Compose (рекомендуется для локального использования)
Этот метод использует файл docker-compose.yml
и автоматически считывает ваши учетные данные из файла .env
.
- Создайте файл
.env
: Убедитесь, что в корне проекта есть файл.env
, содержащийTELEGRAM_API_ID
,TELEGRAM_API_HASH
иTELEGRAM_SESSION_STRING
(илиTELEGRAM_SESSION_NAME
). Используйте.env.example
в качестве шаблона. - Запустить Compose:Copy
- Используйте
docker compose up -d
для запуска в отсоединенном режиме (фоновом режиме). - Нажмите
Ctrl+C
, чтобы остановить сервер.
- Используйте
Вариант Б: использование docker run
Вы можете запустить контейнер напрямую, передав учетные данные в качестве переменных среды.
- Замените заполнители своими реальными учетными данными.
- Используйте
-e TELEGRAM_SESSION_NAME=your_session_file_name
вместоTELEGRAM_SESSION_STRING
, если вы предпочитаете сеансы на основе файлов (требуется монтирование тома, см. примерdocker-compose.yml
). - Флаги
-it
имеют решающее значение для взаимодействия с сервером.
⚙️ Конфигурация для Клода и Курсора
Конфигурация МКП
Отредактируйте конфигурацию рабочего стола Claude (например, ~/Library/Application Support/Claude/claude_desktop_config.json
) или конфигурацию курсора ( ~/.cursor/mcp.json
):
📝 Примеры инструментов с кодом и выводом
Ниже приведены примеры наиболее часто используемых инструментов с их реализацией и образцами выходных данных.
Получайте ваши чаты
Пример вывода:
Отправка сообщений
Пример вывода:
Получение ссылок-приглашений в чат
Функция get_invite_link
особенно надежна при использовании нескольких резервных методов:
Пример вывода:
Присоединение к чатам с помощью ссылок-приглашений
Пример вывода:
Поиск в публичных чатах
Пример вывода:
Получение прямых чатов с контактами
Пример вывода:
🎮 Примеры использования
- «Показать мои последние чаты»
- «Отправьте «Привет, мир» в чат 123456789»
- «Добавить контакт с телефоном +1234567890, имя Джон Доу»
- «Создать группу «Проектная команда» с пользователями 111, 222, 333»
- «Загрузить медиафайл из сообщения 42 в чате 123456789»
- «Отключить уведомления для чата 123456789»
- «Повысить пользователя 111 до администратора в группе 123456789»
- «Поиск публичных каналов по теме «новости»»
- «Присоединяйтесь к группе Telegram по ссылке https://t.me/+AbCdEfGhIjK »
- «Отправить стикер в мои сохраненные сообщения»
- «Получить все мои наборы наклеек»
Вы можете использовать эти инструменты с помощью естественного языка в Claude, Cursor или любом MCP-совместимом клиенте.
🧠 Обработка ошибок и надежность
Эта реализация включает в себя комплексную обработку ошибок:
- Управление сеансами : работает как с файловыми, так и с строковыми сеансами.
- Отчет об ошибках : подробные ошибки регистрируются в
mcp_errors.log
- Постепенная деградация : несколько резервных подходов для критических функций
- Удобные для пользователя сообщения : понятные и понятные сообщения об ошибках вместо технических ошибок.
- Определение типа учетной записи : функции, требующие учетных записей ботов, обнаруживают и уведомляют при использовании с учетными записями пользователей.
- Обработка ссылок-приглашений : обрабатывает различные форматы ссылок и случаи уже зарегистрированных участников.
Код разработан с учетом устойчивости к распространенным проблемам и ограничениям API Telegram.
🛠️ Руководство по внесению вклада
- Форк этого репозитория: chigwell/telegram-mcp
- Клонируйте свою вилку:Copy
- Создайте новую ветку:Copy
- Внесите изменения, при необходимости добавьте тесты/документы.
- Отправьте и откройте запрос на извлечение в chigwell/telegram-mcp с четким описанием.
- Отметьте @chigwell или @l1v0n1 в своем PR для проверки.
🔒 Вопросы безопасности
- Никогда не фиксируйте файл
.env
или строку сеанса. - Строка сеанса предоставляет полный доступ к вашему аккаунту Telegram — берегите ее!
- Вся обработка происходит локально; данные никуда не отправляются, кроме API Telegram.
- Используйте
.env.example
в качестве шаблона и сохраните свой настоящий файл.env
в тайне. - Тестовые файлы автоматически исключаются в
.gitignore
.
🛠️ Устранение неполадок
- Проверьте журналы в вашем MCP-клиенте (Claude/Cursor) и терминале на наличие ошибок.
- Подробные журналы ошибок можно найти в
mcp_errors.log
. - Ошибки интерпретатора? Убедитесь, что ваш
.venv
создан и выбран. - Блокировка базы данных? Используйте аутентификацию на основе строки сеанса, а не сеансов на основе файлов.
- Проблемы с iCloud/Dropbox? Переместите свой проект в локальный путь без пробелов, если вы видите странные ошибки.
- Повторно создайте строку сеанса , если вы изменили пароль Telegram или столкнулись с ошибками аутентификации.
- Функции, предназначенные только для ботов, будут показывать понятные сообщения при использовании с учетными записями обычных пользователей.
- Сбои тестового сценария? Проверьте тестовую конфигурацию в
.env
на предмет допустимых тестовых учетных записей/групп.
📄 Лицензия
Данный проект лицензирован под лицензией Apache 2.0 .
🙏 Благодарности
- Телемарафон
- Модель контекстного протокола
- Клод и Курсор
- chigwell/telegram-mcp (вверх по течению)
Поддерживается @chigwell и @l1v0n1 . Пиар приветствуется!
История Звезды
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Сервер, который обеспечивает взаимодействие с чатами Telegram напрямую через MCP-совместимые хосты, такие как Claude for Desktop, предоставляя инструменты для извлечения чатов, получения сообщений и отправки сообщений.
- 🤖 MCP в действии
- 🚀 Функции и инструменты
- Удаленная функциональность
- 📋 Требования
- 🔧 Установка и настройка
- 🐳 Работа с Docker
- ⚙️ Конфигурация для Клода и Курсора
- 📝 Примеры инструментов с кодом и выводом
- 🎮 Примеры использования
- 🧠 Обработка ошибок и надежность
- 🛠️ Руководство по внесению вклада
- 🔒 Вопросы безопасности
- 🛠️ Устранение неполадок
- 📄 Лицензия
- 🙏 Благодарности
- История Звезды
Related MCP Servers
- -securityFlicense-qualityAn MCP server that enables communication with users through Telegram. This server provides a tool to ask questions to users and receive their responses via a Telegram bot.Last updated -116JavaScript
- AsecurityAlicenseAqualityAn MCP server that enables saving and sharing Claude Desktop conversations, allowing users to store chats privately or make them public through a web interface.Last updated -26TypeScriptMIT License
- -securityFlicense-qualityAn MCP server that allows Claude to interact with Discord by providing tools for sending/reading messages and managing server resources through Discord's API.Last updated -JavaScript
- -securityAlicense-qualityA simple MCP server that allows Claude to access your Telegram account to read and send messages on your behalf.Last updated -4PythonApache 2.0