Skip to main content
Glama
Telegram MCP Server & Channel Monitor

Telegram MCP Server & Channel Monitor

by ruchiayeon

Telegram MCP Server & Channel Monitor

Telegram Bot API 기반 MCP 도구 서버 + Telethon User API 기반 채널 실시간 모니터링 시스템.


📁 파일 구조

.
├── telegram.py              # 코어 모듈 (mcp, _tg, _err, config 로드)
├── tg_messages.py           # 메시지 CRUD 도구 (9개)
├── tg_media.py              # 미디어 전송 도구 (9개)
├── tg_chat.py               # 채팅 정보/관리 도구 (8개)
├── tg_interactive.py        # 인터랙티브/유틸 도구 (9개)
├── telegram_extended.py     # MCP 서버 진입점 (총 35개 도구)
├── telegram_monitor.py      # 채널 실시간 모니터링 (메시지 로깅)
├── telegram_config.json     # 사용자별 봇 설정 + 공통 설정
├── pyproject.toml           # 의존성 관리
└── README.md                # 이 문서

Related MCP server: Better Telegram MCP

1. 환경 설정

telegram_config.json 설정 (필수)

이 파일이 없으면 MCP 서버와 모니터가 실행되지 않습니다. 반드시 프로젝트 루트(telegram-mcp/)에 telegram_config.json을 생성하고, 최소 1명의 사용자 봇 정보를 입력한 뒤 사용하세요.

모든 설정은 telegram_config.json 파일 하나로 관리합니다.

{
  "default_user": "gayeon",
  "settings": {
    "monitor_mode": "buffer",
    "buffer_minutes": 5,
    "immediate_debounce_sec": 3,
    "buffer_max_messages": 50,
    "session_name": "telegram_session"
  },
  "gayeon": {
    "bot_token": "BOT_TOKEN_HERE",
    "chat_id": "CHAT_ID_HERE",
    "api_id": "",
    "api_hash": "",
    "phone": ""
  }
}

구조 규격

키

타입

필수

설명

default_user

string

O

user 미지정 시 기본으로 사용할 사용자 키

settings

object

O

공통 설정

settings.monitor_mode

string

-

모니터링 모드 (buffer / immediate)

settings.buffer_minutes

int

-

버퍼 모드 수집 간격(분)

settings.immediate_debounce_sec

int

-

즉시 모드 디바운스(초)

settings.buffer_max_messages

int

-

버퍼 최대 메시지 수

settings.session_name

string

-

Telethon 세션 파일명

{사용자}

object

O (1명 이상)

사용자별 봇 설정

{사용자}.bot_token

string

O

Bot API 토큰 (@BotFather 발급)

{사용자}.chat_id

string

O

봇과 대화할 채팅 ID

{사용자}.api_id

string

-

User API 앱 ID (my.telegram.org)

{사용자}.api_hash

string

-

User API 앱 해시

{사용자}.phone

string

-

로그인 전화번호 (+821012345678)

사용자 추가 방법

  1. telegram_config.json에 새 키를 추가합니다:

{
  "새사용자": {
    "bot_token": "새봇토큰",
    "chat_id": "새chat_id",
    "api_id": "",
    "api_hash": "",
    "phone": ""
  }
}
  1. 해당 사용자가 텔레그램에서 봇에 /start를 보내면 chat_id를 확인할 수 있습니다.

  2. MCP 도구 호출 시 user 파라미터에 사용자 키를 지정하면 해당 봇으로 동작합니다.

패키지 설치

uv sync

2. 실행

MCP 서버 (35개 도구)

uv run telegram_extended.py

채널 모니터링

uv run telegram_monitor.py

최초 실행 시 Telethon 로그인 인증(전화번호 → 인증코드)이 필요합니다. 이후 telegram_session.session 파일에 세션이 저장되어 자동 로그인됩니다.


3. MCP 도구 목록 (35개)

3-1. 메시지 CRUD — tg_messages.py (9개)

도구

API

설명

telegram_send_message

sendMessage

텍스트 메시지 전송 (Markdown/HTML)

telegram_get_updates

getUpdates

봇 수신 메시지 조회 (offset 중복 방지)

telegram_edit_message

editMessageText

메시지 수정

telegram_delete_message

deleteMessage

메시지 삭제

telegram_delete_messages

deleteMessages

메시지 복수 삭제

telegram_forward_message

forwardMessage

포워드 (출처 표시)

telegram_forward_messages

forwardMessages

복수 포워드

telegram_copy_message

copyMessage

복사 (출처 없음)

telegram_copy_messages

copyMessages

복수 복사

3-2. 미디어 전송 — tg_media.py (9개)

도구

API

설명

telegram_send_photo

sendPhoto

사진 전송

telegram_send_document

sendDocument

파일/문서 전송

telegram_send_video

sendVideo

동영상 전송

telegram_send_audio

sendAudio

오디오 전송

telegram_send_voice

sendVoice

음성 메시지 전송

telegram_send_animation

sendAnimation

GIF/애니메이션 전송

telegram_send_video_note

sendVideoNote

둥근 비디오 전송

telegram_send_media_group

sendMediaGroup

미디어 그룹(앨범) 전송

telegram_send_sticker

sendSticker

스티커 전송

3-3. 채팅 정보/관리 — tg_chat.py (8개)

도구

API

설명

telegram_get_chat

getChat

채팅 상세 조회

telegram_get_chat_members_count

getChatMemberCount

멤버 수 조회

telegram_get_me

getMe

봇 정보 조회

telegram_pin_message

pinChatMessage

메시지 고정

telegram_unpin_message

unpinChatMessage

고정 해제

telegram_ban_user

banChatMember

사용자 차단

telegram_unban_user

unbanChatMember

차단 해제

telegram_send_chat_action

sendChatAction

채팅 액션 전송 (입력 중...)

3-4. 인터랙티브/유틸 — tg_interactive.py (9개)

도구

API

설명

telegram_send_poll

sendPoll

투표 생성

telegram_send_with_buttons

sendMessage (inline_keyboard)

인라인 버튼 메시지

telegram_answer_callback_query

answerCallbackQuery

콜백 쿼리 응답

telegram_send_location

sendLocation

위치 전송

telegram_send_venue

sendVenue

장소 전송

telegram_send_contact

sendContact

연락처 전송

telegram_send_dice

sendDice

주사위/랜덤 전송

telegram_set_message_reaction

setMessageReaction

메시지 리액션

telegram_get_file

getFile

파일 정보/다운로드 URL 조회

3-5. 채널 모니터 — telegram_monitor.py

지정한 텔레그램 채널의 메시지를 실시간 수신하여 로그로 기록합니다.

모니터링할 채널은 telegram_monitor.py의 Config.MONITOR_CHANNELS 리스트에 직접 추가합니다.


4. 시퀀스 다이어그램

4-1. MCP 도구 서버 흐름

sequenceDiagram
    participant Client as MCP 클라이언트<br/>(Claude Desktop 등)
    participant MCP as MCP 서버<br/>(telegram_extended.py)
    participant TG as Telegram Bot API

    Client->>MCP: 도구 호출 (예: telegram_send_message)
    MCP->>MCP: Pydantic 입력 검증
    MCP->>TG: POST /bot{TOKEN}/{method}
    TG-->>MCP: JSON 응답
    MCP-->>Client: 결과 문자열 반환

4-2. 채널 모니터 흐름

sequenceDiagram
    participant CH as 텔레그램 채널
    participant Monitor as TelegramMonitor<br/>(Telethon User API)
    participant Log as 로그 출력

    Note over Monitor: 로그인 + 이벤트 핸들러 등록

    CH->>Monitor: 새 메시지 이벤트
    Monitor->>Log: [채널] sender: 메시지 내용

    CH->>Monitor: 새 메시지 이벤트
    Monitor->>Log: [채널] sender: 메시지 내용

4-3. 전체 시스템 구성도

graph TB
    subgraph "MCP 도구 서버"
        A[telegram.py<br/>코어: mcp, _tg, _err]
        B[tg_messages.py<br/>메시지 9개]
        C[tg_media.py<br/>미디어 9개]
        D[tg_chat.py<br/>채팅 8개]
        E[tg_interactive.py<br/>인터랙티브 9개]
        F[telegram_extended.py<br/>진입점]
        A --> B & C & D & E
        F -->|import| B & C & D & E
        B & C & D & E -->|Bot API| G[Telegram Bot API]
    end

    subgraph "채널 모니터"
        H[telegram_monitor.py] -->|User API<br/>Telethon| I[텔레그램 채널]
        H -->|로깅| J[콘솔 로그]
    end

    L[MCP 클라이언트<br/>Claude Desktop 등] -->|MCP 프로토콜| F

    style A fill:#4a9eff,color:#fff
    style F fill:#4a9eff,color:#fff
    style H fill:#ff6b6b,color:#fff

5. MCP 클라이언트 연결

claude_desktop_config.json에 추가:

{
  "mcpServers": {
    "telegram": {
      "command": "uv",
      "args": ["run", "/path/to/telegram_extended.py"]
    }
  }
}

봇 토큰 등 모든 설정은 telegram_config.json에서 관리되므로 env는 불필요합니다.


6. chat_id 확인 방법

대상

방법

본인 ID

@userinfobot 에 /start

그룹 ID

그룹에 @userinfobot 초대 후 /start

채널 ID

web.telegram.org URL에서 숫자 확인

그룹·채널 ID는 보통 음수(예: -1001234567890)입니다.


7. 주의사항

  • 그룹·채널 관리 도구(pin, ban 등)는 봇 관리자 권한 필요

  • telegram_get_updates는 Webhook과 동시 사용 불가

  • Bot API 속도 제한: 동일 채팅 초당 1건, 분당 20건 이하 권장

  • telegram_monitor.py는 User API 사용 → 개인 계정 로그인 필요 (봇 아님)


Contributors

이름

역할

Gayeon Lee (@ruchiayeon)

Creator & Developer

Claude (Anthropic)

AI Pair Programmer

Contact


AI Instructions (LLM Context)

이 섹션은 AI 에이전트가 이 프로젝트를 이해하고 작업할 때 참고하는 구조화된 컨텍스트입니다.

Project Overview

  • 프로젝트명: Telegram MCP Server & Channel Monitor

  • 언어: Python 3.14+

  • 패키지 매니저: uv

  • 핵심 의존성: httpx, mcp (FastMCP), pydantic, telethon

Architecture

telegram.py (코어 모듈)
  ├── telegram_config.json에서 사용자별 설정 로드
  ├── mcp = FastMCP("telegram_mcp")  ← 공유 인스턴스
  ├── _tg(method, payload, user): 사용자별 봇으로 Telegram Bot API 호출
  ├── get_chat_id(user): 사용자의 chat_id 반환
  └── _err(): 예외 → 사용자 친화적 에러 문자열 변환

tg_messages.py (메시지 CRUD 9개 도구)
  ├── send_message, get_updates, edit, delete, delete_messages
  └── forward, forward_messages, copy, copy_messages

tg_media.py (미디어 전송 9개 도구)
  └── photo, document, video, audio, voice, animation, video_note, media_group, sticker

tg_chat.py (채팅 관리 8개 도구)
  └── get_chat, members_count, get_me, pin, unpin, ban, unban, chat_action

tg_interactive.py (인터랙티브/유틸 9개 도구)
  └── poll, buttons, callback, location, venue, contact, dice, reaction, get_file

telegram_extended.py (진입점)
  ├── import tg_messages, tg_media, tg_chat, tg_interactive
  └── mcp.run()으로 실행 시 총 35개 도구 제공

telegram_monitor.py (독립 실행 스크립트)
  ├── Telethon User API 사용 (Bot API 아님)
  ├── Config 클래스: telegram_config.json에서 설정 로드
  ├── TelegramMonitor 클래스:
  │   ├── _on_new_message(): NewMessage 이벤트 핸들러 (메시지 로깅)
  │   └── run(): 로그인 + 채널 이벤트 구독 + 연결 유지
  └── asyncio.run(monitor.run())으로 실행

Key Patterns

  • 모듈 분리 패턴: telegram.py가 코어(mcp, _tg, _err)를 제공하고, 4개 도구 모듈(tg_messages, tg_media, tg_chat, tg_interactive)이 기능별로 도구를 등록. telegram_extended.py는 진입점으로 모든 모듈을 import 후 mcp.run() 실행.

  • 입력 검증: 모든 MCP 도구는 Pydantic BaseModel로 입력 검증 (ConfigDict(extra="forbid") 사용).

  • 에러 처리: _err() 함수로 httpx 예외를 사용자 친화적 한국어 문자열로 변환.

  • 설정 관리: telegram_config.json 단일 파일로 사용자별 봇 설정 + 공통 설정 관리.

  • 비동기: httpx.AsyncClient (MCP 서버), Telethon + asyncio (모니터).

File Modification Rules

  • telegram.py 수정 시: 4개 도구 모듈이 mcp, _tg, _err, get_chat_id, DEFAULT_USER를 import하므로 이 인터페이스 유지 필요.

  • 새 MCP 도구 추가 시: 해당 카테고리의 tg_*.py 파일에 Pydantic 모델 + @mcp.tool() 데코레이터로 추가.

  • 새 카테고리 추가 시: tg_newcategory.py 생성 후 telegram_extended.py에 import 추가.

  • 모니터링 채널 변경 시: telegram_monitor.py의 Config.MONITOR_CHANNELS 리스트 수정.

Configuration

모든 설정은 telegram_config.json 단일 파일로 관리됩니다. 상세 규격은 상단 "1. 환경 설정" 참조.

Available Tools

35 tools
telegram_answer_callback_queryB

인라인 버튼 클릭(콜백 쿼리)에 대한 응답을 보냅니다.

Inputs: params (required). Returns: result

telegram_ban_userA
Destructive

그룹/채널에서 특정 사용자를 차단합니다. (봇이 관리자 권한 필요)

Args: params (BanUserInput): - chat_id (int): 그룹/채널 ID - user_id (int): 차단할 사용자 ID - until_date (int): 차단 해제 Unix 타임스탬프 (None=영구 차단)

Returns: str: 차단 성공 메시지 또는 에러

Inputs: params (required). Returns: result

telegram_copy_messageA

메시지 내용을 포워드 마크 없이 복사하여 다른 채팅에 전송합니다.

Args: params (CopyMessageInput): - from_chat_id (int): 원본 채팅 ID - to_chat_id (int): 복사 대상 채팅 ID - message_id (int): 복사할 메시지 ID - caption (str): 미디어 메시지에 추가할 캡션 (선택)

Returns: str: 복사 성공 메시지 또는 에러

Inputs: params (required). Returns: result

telegram_copy_messagesB

여러 메시지를 포워드 마크 없이 복사하여 다른 채팅에 전송합니다.

Inputs: params (required). Returns: result

telegram_delete_messageA
Destructive

텔레그램 채팅에서 특정 메시지를 삭제합니다.

Args: params (DeleteMessageInput): - chat_id (int): 채팅 ID - message_id (int): 삭제할 메시지 ID

Returns: str: 삭제 성공 메시지 또는 에러

Inputs: params (required). Returns: result

telegram_delete_messagesB
Destructive

텔레그램 채팅에서 여러 메시지를 한 번에 삭제합니다.

Inputs: params (required). Returns: result

telegram_edit_messageA

이미 전송된 텔레그램 메시지의 내용을 수정합니다.

Args: params (EditMessageInput): - chat_id (int): 채팅 ID - message_id (int): 수정할 메시지 ID - text (str): 새 메시지 내용 - parse_mode (str): 'Markdown' 또는 'HTML' (기본값: Markdown)

Returns: str: 수정 성공 메시지 또는 에러

Inputs: params (required). Returns: result

telegram_forward_messageB

한 채팅에서 다른 채팅으로 메시지를 포워드(전달)합니다. 출처 표시 포함.

Args: params (ForwardMessageInput): - from_chat_id (int): 원본 채팅 ID - to_chat_id (int): 전달 대상 채팅 ID - message_id (int): 전달할 메시지 ID

Returns: str: 포워드 성공 메시지 또는 에러

Inputs: params (required). Returns: result

telegram_forward_messagesB

한 채팅에서 다른 채팅으로 여러 메시지를 한 번에 포워드합니다.

Inputs: params (required). Returns: result

telegram_get_chatA
Read-only

채팅 ID로 채팅/그룹/채널의 상세 정보를 조회합니다.

Args: params (GetChatInput): - chat_id (int): 조회할 채팅 ID

Returns: str: 채팅 이름, 타입, 멤버 수, 설명 등의 JSON 정보

Inputs: params (required). Returns: result

telegram_get_chat_members_countB
Read-only

채팅/그룹/채널의 총 멤버(구독자) 수를 조회합니다.

Args: params (GetChatInput): - chat_id (int): 조회할 채팅 ID

Returns: str: 멤버 수 또는 에러

Inputs: params (required). Returns: result

telegram_get_fileB
Read-only

file_id로 파일 정보와 다운로드 URL을 조회합니다.

Inputs: params (required). Returns: result

telegram_get_meA
Read-only

현재 봇의 기본 정보(이름, username, id 등)를 조회합니다.

Returns: str: 봇 정보 JSON 또는 에러

Inputs: no named parameters. Returns: result

telegram_get_updatesA
Read-only

텔레그램 봇으로 수신된 새 메시지를 가져옵니다.

스케줄 태스크에서 주기적으로 호출하여 새 메시지를 확인합니다. offset을 사용하면 이미 처리한 메시지를 다시 가져오지 않습니다.

Args: params (GetUpdatesInput): - offset (int): 마지막으로 처리한 update_id + 1 (선택사항) - limit (int): 가져올 메시지 수 (기본 20)

Returns: str: 메시지 목록 JSON. 각 항목에 update_id, chat_id, sender, text 포함. 메시지 없으면 "새 메시지 없음" 반환.

Inputs: params (required). Returns: result

telegram_pin_messageA

채팅에서 특정 메시지를 고정합니다. (봇이 관리자 권한 필요)

Args: params (PinMessageInput): - chat_id (int): 채팅 ID - message_id (int): 고정할 메시지 ID - disable_notification (bool): 알림 없이 고정 여부 (기본 False)

Returns: str: 고정 성공 메시지 또는 에러

Inputs: params (required). Returns: result

telegram_send_animationB

텔레그램 채팅에 GIF 또는 무음 MP4 애니메이션을 전송합니다.

Inputs: params (required). Returns: result

telegram_send_audioB

텔레그램 채팅에 오디오 파일을 전송합니다. URL 또는 file_id 사용 가능.

Inputs: params (required). Returns: result

telegram_send_chat_actionB

채팅에 '입력 중...', '파일 업로드 중...' 등 상태 표시를 전송합니다.

Inputs: params (required). Returns: result

telegram_send_contactC

텔레그램 채팅에 연락처(전화번호+이름)를 전송합니다.

Inputs: params (required). Returns: result

telegram_send_diceB

텔레그램 채팅에 주사위/슬롯 등 랜덤 애니메이션을 전송합니다.

Inputs: params (required). Returns: result

telegram_send_documentA

텔레그램 채팅에 파일(문서)을 전송합니다. URL 또는 file_id 사용 가능.

Args: params (SendDocumentInput): - chat_id (int): 채팅 ID - document (str): 파일 URL 또는 Telegram file_id - caption (str): 파일 설명 (선택, 최대 1024자) - parse_mode (str): 'Markdown' 또는 'HTML' (기본값: Markdown)

Returns: str: 전송 성공 메시지 또는 에러

Inputs: params (required). Returns: result

telegram_send_locationB

텔레그램 채팅에 지도 핀(위치 정보)을 전송합니다.

Args: params (SendLocationInput): - chat_id (int): 채팅 ID - latitude (float): 위도 (예: 37.5665) - longitude (float): 경도 (예: 126.9780)

Returns: str: 전송 성공 메시지 또는 에러

Inputs: params (required). Returns: result

telegram_send_media_groupA

텔레그램 채팅에 사진/동영상 앨범(미디어 그룹)을 전송합니다. 2~10개.

Inputs: params (required). Returns: result

telegram_send_messageB

텔레그램 채팅에 메시지를 전송합니다.

Args: params (SendMessageInput): - chat_id (int): 대상 채팅 ID - text (str): 전송할 메시지 (Markdown 지원) - parse_mode (str): 'Markdown' 또는 'HTML' (기본값: Markdown)

Returns: str: 전송 성공 메시지 또는 에러

Inputs: params (required). Returns: result

telegram_send_photoA

텔레그램 채팅에 사진을 전송합니다. URL 또는 file_id 사용 가능.

Args: params (SendPhotoInput): - chat_id (int): 채팅 ID - photo (str): 이미지 URL 또는 Telegram file_id - caption (str): 이미지 설명 (선택, 최대 1024자) - parse_mode (str): 'Markdown' 또는 'HTML' (기본값: Markdown)

Returns: str: 전송 성공 메시지 또는 에러

Inputs: params (required). Returns: result

telegram_send_pollA

텔레그램 채팅에 투표를 생성합니다.

Args: params (SendPollInput): - chat_id (int): 채팅 ID - question (str): 투표 질문 (최대 300자) - options (list[str]): 선택지 목록 (2~10개) - is_anonymous (bool): 익명 투표 여부 (기본 True) - allows_multiple_answers (bool): 복수 선택 허용 (기본 False)

Returns: str: 투표 생성 성공 메시지 또는 에러

Inputs: params (required). Returns: result

telegram_send_stickerB

텔레그램 채팅에 스티커를 전송합니다. file_id 또는 URL 사용 가능.

Inputs: params (required). Returns: result

telegram_send_venueB

텔레그램 채팅에 장소(위치+이름+주소)를 전송합니다.

Inputs: params (required). Returns: result

telegram_send_videoC

텔레그램 채팅에 동영상을 전송합니다. URL 또는 file_id 사용 가능.

Inputs: params (required). Returns: result

telegram_send_video_noteC

텔레그램 채팅에 둥근 비디오 메시지를 전송합니다.

Inputs: params (required). Returns: result

telegram_send_voiceB

텔레그램 채팅에 음성 메시지를 전송합니다. .ogg OPUS 형식.

Inputs: params (required). Returns: result

telegram_send_with_buttonsA

URL 링크 또는 콜백 버튼이 붙은 텔레그램 메시지를 전송합니다.

버튼 예시 (buttons 파라미터): [[{"text": "공식 사이트", "url": "https://example.com"}], [{"text": "확인", "callback_data": "ok"}, {"text": "취소", "callback_data": "cancel"}]]

Args: params (SendInlineKeyboardInput): - chat_id (int): 채팅 ID - text (str): 메시지 내용 - buttons (list[list[dict]]): 버튼 2차원 배열 - parse_mode (str): 'Markdown' 또는 'HTML' (기본값: Markdown)

Returns: str: 전송 성공 메시지 또는 에러

Inputs: params (required). Returns: result

telegram_set_message_reactionB

메시지에 이모지 리액션을 설정하거나 제거합니다.

Inputs: params (required). Returns: result

telegram_unban_userA

그룹/채널에서 차단된 사용자를 해제합니다. (봇이 관리자 권한 필요)

Args: params (UnbanUserInput): - chat_id (int): 그룹/채널 ID - user_id (int): 차단 해제할 사용자 ID - only_if_banned (bool): 차단된 경우에만 해제 (기본 True)

Returns: str: 차단 해제 성공 메시지 또는 에러

Inputs: params (required). Returns: result

telegram_unpin_messageA

채팅에서 고정된 메시지를 해제합니다. (봇이 관리자 권한 필요)

Args: params (UnpinMessageInput): - chat_id (int): 채팅 ID - message_id (int): 고정 해제할 메시지 ID (None이면 가장 최근 고정 메시지)

Returns: str: 고정 해제 성공 메시지 또는 에러

Inputs: params (required). Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 35 tools

    Disambiguation4/5

    Most tools are clearly distinct by media type or action, but some overlap exists: copy_message vs forward_message both move messages, and send_with_buttons could be confused with send_message for text-only cases. However, descriptions clarify differences like forwarding with attribution vs copying without.

    Naming Consistency5/5

    All tools follow a strict 'telegram_verb_noun' pattern with consistent snake_case throughout. The naming is highly predictable, making it easy to infer tool purposes from their names alone.

    Tool Count3/5

    35 tools is borderline heavy for a Telegram server, though it covers many media types and actions. It feels comprehensive but may overwhelm agents with many similar tools (e.g., send_photo, send_video, send_animation).

    Completeness5/5

    The toolset provides extensive coverage of Telegram Bot API functionalities, including message CRUD, user management, media sending, and polling. There are no obvious gaps for core Telegram operations, supporting a wide range of bot workflows.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      An MCP server that wraps the Telegram Bot API into semantic tools for LLM agents, supporting multi-bot management for sending and receiving messages. It enables agents to send text, photos, and documents, as well as fetch recent updates from multiple configured Telegram bots.
      MIT
    • A
      license
      Not graded
      quality
      A
      maintenance
      Production-grade MCP server for Telegram with dual-mode Bot API and MTProto. 6 composite tools covering messages, chats, media, contacts management with 3-tier token optimization.
      303 PyPI
      12
      Apache 2.0
    • F
      license
      A
      quality
      D
      maintenance
      An MCP server for interacting with Telegram bots and channels using the Telegraf library. It allows AI agents to send messages, manage channels, forward content, and intelligently respond to Telegram conversations.
      5
      52 npm
      8
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server that enables Telegram bot interaction via Telegraf, providing tools for sending, replying, reacting, editing, deleting, forwarding messages, and receiving Telegram events over an optional notification channel.
      60 npm
      4
      MIT