ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที เข้าสู่ระบบด้วย Google เพื่อเขียนรีวิวได้แล้วต้นแบบ · อัปเดตทุก 30 นาที
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · วิธีติดตั้งภาษาไทยทุกตัว

Telethon Plus

โดย psyb0tรุ่น 0.7.4i★ 5iรันบนเครื่อง
ชื่อใน registryio.github.psyb0t/telethon-plus

วิธีติดตั้ง

ใช้ทำอะไรได้

ยังไม่มีคำอธิบายภาษาไทย ดูข้อเท็จจริงด้านล่าง หรือเปิดคำอธิบายต้นฉบับจากผู้ทำ

  • ต่อแบบ ติดตั้งในเครื่อง
  • บัญชีหรือคีย์ ไม่ต้องใส่คีย์
  • หมวด แชตและอีเมล
คำอธิบายต้นฉบับจากผู้ทำ (อังกฤษ)
Self-hosted MCP server: Telegram userbot control (Telethon) via HTTP and MCP.

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ผลตรวจผ่าน 3/3 · ทำงานบนเครื่องคุณ

ขั้นแรก: คุณใช้ AI ตัวไหน

เลือกแอปที่คุณใช้ ขั้นตอนจะขึ้นด้านล่าง

ต่อกับ Claude ได้ แต่ต้องเตรียมก่อน

ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว) · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ

  1. ลง Docker ในเครื่อง

    ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Docker

    เปิดหน้าดาวน์โหลด Docker ↗

  2. เปิดไฟล์ตั้งค่าของแอป Claude บนคอม

    SettingsDeveloperEdit Config

  3. วางค่าตั้งนี้แล้วบันทึกไฟล์

    กำลังตรวจคำสั่ง · ปุ่มคัดลอกจะขึ้นเมื่อตรวจผ่าน

  4. ปิดแอป Claude แล้วเปิดใหม่

  5. ลองเลย

    ใช้ Telethon Plus บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง

    ✓ ถ้า Claude บอกว่ากำลังใช้ Telethon Plus หรือมีชื่อเครื่องมือของ Telethon Plus ขึ้นในคำตอบ แปลว่าต่อสำเร็จ

ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป

ChatGPT ยังต่อ Telethon Plus ไม่ได้

Telethon Plus ต้องติดตั้งในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะตัวที่ทำงานบนเว็บ

คุณทำแบบนี้แทนได้

ก · ใช้แอปที่ต่อ Telethon Plus ได้

  • ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว) · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ
  • ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)
  • ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)
  • ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)

ข · ตัวอื่นในหมวด แชตและอีเมล ที่ต่อกับ ChatGPT ได้

เลือกจากตัวที่ใช้มากในหมวดเดียวกัน เฉพาะตัวที่ต่อด้วยที่อยู่ได้โดยไม่ต้องใส่คีย์

ต่อกับ Claude Code ได้ แต่ต้องเตรียมก่อน

ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)

  1. ลง Docker ในเครื่อง

    ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Docker

    เปิดหน้าดาวน์โหลด Docker ↗

  2. เปิด Terminal

    Mac: กด Command+Space พิมพ์ Terminal · Windows: เปิด PowerShell

  3. วางคำสั่งนี้แล้วกด Enter

    กำลังตรวจคำสั่ง · ปุ่มคัดลอกจะขึ้นเมื่อตรวจผ่าน

  4. พิมพ์ /mcp ใน Claude Code

    ต้องเห็น Telethon Plus ในรายการและขึ้นว่าเชื่อมต่อแล้ว

  5. ลองเลย

    ใช้ Telethon Plus บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง

    ✓ ถ้า Claude Code บอกว่ากำลังใช้ Telethon Plus หรือมีชื่อเครื่องมือของ Telethon Plus ขึ้นในคำตอบ แปลว่าต่อสำเร็จ

ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป

ต่อกับ Cursor ได้ แต่ต้องเตรียมก่อน

ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)

  1. ลง Docker ในเครื่อง

    ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Docker

    เปิดหน้าดาวน์โหลด Docker ↗

  2. กดปุ่มนี้เพื่อเปิด Cursor

    กำลังตรวจคำสั่ง · ปุ่มคัดลอกจะขึ้นเมื่อตรวจผ่าน

  3. เปิดแชตของ AI ใน Cursor โหมด Agent

  4. ลองเลย

    ใช้ Telethon Plus บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง

    ✓ ถ้า Cursor บอกว่ากำลังใช้ Telethon Plus หรือมีชื่อเครื่องมือของ Telethon Plus ขึ้นในคำตอบ แปลว่าต่อสำเร็จ

ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Cursor เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป

ต่อกับ VS Code ได้ แต่ต้องเตรียมก่อน

ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)

  1. ลง Docker ในเครื่อง

    ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Docker

    เปิดหน้าดาวน์โหลด Docker ↗

  2. กดปุ่มนี้เพื่อเปิด VS Code

    กำลังตรวจคำสั่ง · ปุ่มคัดลอกจะขึ้นเมื่อตรวจผ่าน

  3. เปิดแชตของ AI ใน VS Code โหมด Agent

  4. ลองเลย

    ใช้ Telethon Plus บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง

    ✓ ถ้า VS Code บอกว่ากำลังใช้ Telethon Plus หรือมีชื่อเครื่องมือของ Telethon Plus ขึ้นในคำตอบ แปลว่าต่อสำเร็จ

ชื่อเมนูตรวจกับหน้าช่วยเหลือของ VS Code เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป

โปรแกรมอื่นที่ใช้ MCP ได้ เช่น Windsurf, Zed หรือ Gemini CLI มีวิธีเพิ่มต่างกัน ดูวิธีของแต่ละตัวในหน้ารวมโปรแกรม

ดูโปรแกรมที่ใช้ MCP ทั้งหมด →

ค่าตั้งแบบไฟล์ JSON อยู่ในหัวข้อ “สำหรับคนเขียนโค้ด” ด้านล่าง

ติดตรงไหน? ถามคนที่ใช้ Telethon Plus อยู่💬 พูดคุย →
สำหรับคนเขียนโค้ด: คำสั่ง Terminal และค่าตั้ง JSON

ติดตั้งในเครื่อง

Claude Code

กำลังตรวจคำสั่ง · ปุ่มคัดลอกจะขึ้นเมื่อตรวจผ่าน

Claude Desktop (claude_desktop_config.json)

กำลังตรวจคำสั่ง · ปุ่มคัดลอกจะขึ้นเมื่อตรวจผ่าน

Cursor (~/.cursor/mcp.json)

กำลังตรวจคำสั่ง · ปุ่มคัดลอกจะขึ้นเมื่อตรวจผ่าน

VS Code (mcp.json)

กำลังตรวจคำสั่ง · ปุ่มคัดลอกจะขึ้นเมื่อตรวจผ่าน

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

สรุป

ดาวน์โหลดต่อสัปดาห์i
ไม่มียอดใน npm/PyPI
licensei
GPL-2.0
การเชื่อมต่อ
รันบนเครื่อง
รุ่นล่าสุดi
0.7.4
ส่งเข้า registryi
10 พ.ย. 2569
แก้โค้ดล่าสุดi
10 พ.ย. 2569
ผู้ทำ
psyb0t
แพ็กเกจ
oci: docker.io/psyb0t/telethon-plus:v0.7.4
สถานะใน registry
ใช้งานอยู่

ใช้กับโปรแกรมไหนได้

ดูจากแบบการต่อของ server ตัวนี้ และเอกสารของผู้ทำโปรแกรมแต่ละตัว ตรวจเมื่อ 10 พ.ย. 2569

ติดตั้งบนเครื่องได้ใน

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

ดูโปรแกรมทั้งหมดพร้อมข้อดีข้อเสีย →

คู่มือที่เกี่ยวข้อง

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 13 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub psyb0t ซึ่งเป็นเจ้าของ repo

  • ✓ ผ่าน

    ยังมีคนดูแล

    มีการแก้โค้ดล่าสุด 3 วันที่ผ่านมา

  • ✓ ผ่าน

    มีสัญญาอนุญาต (license)

    ใช้ GPL-2.0

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

พูดคุย

ถาม แชร์เคล็ดลับ หรือแจ้งว่าใช้ไม่ได้ เรียงตามที่คนกดว่ามีประโยชน์

ยังไม่มีใครโพสต์ ถามหรือแชร์เป็นคนแรกได้เลย

ข้อความในส่วนนี้เขียนโดยผู้ใช้ ไม่ใช่ทีม PopNx

เข้าสู่ระบบด้วย Google เพื่อโพสต์

รีวิวจากผู้ใช้

ยังไม่มีรีวิว

เข้าสู่ระบบด้วย Google เพื่อเขียนรีวิว

เทียบกับตัวอื่นในหมวด แชตและอีเมลi

  • ดาวมากกว่า 93% ของอีก 2014 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 86% ของอีก 2014 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 2014 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

Telethon Plus ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด 3 วันที่ผ่านมา และส่งรุ่นล่าสุด (0.7.4) เข้า registry 3 วันที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Docker ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Inbox Zero, draw.io, TradingMCP

ตัวอื่นในหมวดเดียวกัน

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Inbox Zero

Search Gmail and Outlook, save drafts, manage email rules, and view email stats.

โดย elie222ใช้กันมาก★ 13Kอัปเดต 43 วันที่ผ่านมา

รันบนคลาวด์

draw.io

Create draw.io diagrams in chat from Mermaid or XML, shown live and interactive. 10,000+ shapes.

โดย jgraphใช้กันมาก★ 5.8Kอัปเดต 3 วันที่ผ่านมา

รันบนคลาวด์✓ เจ้าของบริการ · draw.io

TradingMCP

Market analysis for AI assistants: screeners, multi-timeframe analysis, backtests, in-chat charts.

โดย atilaahmettanerใช้กันมาก★ 5.3Kอัปเดต 22 วันที่ผ่านมา

รันบนคลาวด์

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

docker-telethon-plus

Your Telegram account, but it takes HTTP requests. Wraps Telethon — the real MTProto userbot client, not that neutered Bot API garbage — behind a JSON HTTP API and a Model Context Protocol endpoint.

Same tools, two doors. POST some JSON, or point your AI agent at /mcp and let it go nuts. Either way it's talking to Telegram as *you*, with full account access.

One login. One session string. Never type a code again.

Table of Contents

  • How it works
  • Quick start
  • First-time login
  • Configuration
  • Tools
  • HTTP API
  • MCP
  • Agent integrations
  • Development
  • Tests
  • License

How it works

+-------------------+        +-----------------------+

| Any HTTP client | -----> | REST /api/... | --+ +-------------------+ +-----------------------+ | | +-----------+ Telegram +-------------------+ +-----------------------+ +-> | Telethon | <----> Servers | MCP-aware agent | -----> | /mcp (Streamable | --+ +-----------+ (MTProto) | (Claude, etc.) | | HTTP transport) | +-------------------+ +-----------------------+

One Telethon client. One async lock. Both surfaces share the same tool registry — no duplication, no weird state, no bullshit.

Quick start

services:

telethon-plus: image: psyb0t/telethon-plus ports:

  • "8080:8080" environment: TELETHON_API_ID: "123456" TELETHON_API_HASH: "your-api-hash" TELETHON_SESSION: "1Aa...long-string-from-login-helper..." restart: unless-stopped

Get API_ID / API_HASH from https://my.telegram.org/apps. Get the session string from the login helper below.

First-time login

Telegram makes you prove you're a human once — phone number, SMS code, optionally 2FA. Do it once, never again.

cp .env.example .env

$EDITOR .env # put in TELETHON_API_ID and TELETHON_API_HASH

make login

make login builds the image, runs the interactive flow, and shoves TELETHON_SESSION straight into your .env. That's it. Run make run and you're live.

No repo? No problem:

docker run --rm -it \

-e TELETHON_API_ID=123456 \ -e TELETHON_API_HASH=your-api-hash \ psyb0t/telethon-plus login

Copy the session string it spits out, set it as TELETHON_SESSION, done.

The session string is full account access. Whoever has it is you. Don't commit it, don't paste it in Slack, don't tattoo it anywhere.

Configuration

All config via environment variables. Copy .env.example to get the full list with comments.

VariableRequiredDefaultDescription
TELETHON_API_IDyes—API ID from my.telegram.org
TELETHON_API_HASHyes—API hash from my.telegram.org
TELETHON_SESSIONyes—StringSession from the login helper
TELETHON_HTTP_LISTEN_ADDRESSno0.0.0.0:8080host:port to bind
TELETHON_LOG_LEVELnoINFODEBUG, INFO, WARNING, ERROR
TELETHON_REQUEST_TIMEOUTno60Per-request timeout in seconds
TELETHON_FLOOD_SLEEP_THRESHOLDno60Auto-sleep through FLOOD_WAIT errors below this many seconds. Telegram will rate-limit you — this is the safety valve.
TELETHON_DEVICE_MODELnodocker-telethon-plusWhat Telegram thinks your device is
TELETHON_SYSTEM_VERSIONno1.0Ditto for OS
TELETHON_APP_VERSIONno1.0Ditto for app
TELETHON_DOWNLOAD_DIRno/tmp/telethon-plusScratch space for send_file uploads
TELETHON_AUTH_KEYno""When set, all endpoints require Authorization: Bearer . /healthz stays public. Empty = no auth.
Throttling & cache (anti-flood)

Telegram bans accounts that hammer it. Defaults here are conservative — meant to keep you under the server-side limits without you having to think about it. Tune only if you know what you're doing.

VariableDefaultWhat it does
TELETHON_THROTTLE_ENABLEDtrueMaster switch for all rate-limiting below
TELETHON_THROTTLE_GLOBAL_INTERVAL_MS50Min gap between any two outgoing requests
TELETHON_THROTTLE_JITTER_MS200Random ±jitter added on top (kills metronome traffic patterns)
TELETHON_THROTTLE_PER_CHAT_INTERVAL_MS1100Min gap between sends to the same chat (Telegram's "1/sec/chat" ceiling, with margin)
TELETHON_THROTTLE_PER_CHAT_READ_INTERVAL_MS250Min gap between reads from the same chat. Stops single-channel scraping from monopolizing the read bucket.
TELETHON_THROTTLE_ADAPTIVEtrueOn each FLOOD_WAIT, multiply all waits ×2 for an hour. Resets after a quiet hour.
TELETHON_BUCKET_RESOLVE_PER_MIN5Cap on resolveUsername — the main thing that gets accounts 22-hour-banned
TELETHON_BUCKET_GET_FULL_PER_MIN10Cap on getFullChannel / getFullUser / get_participants
TELETHON_BUCKET_JOIN_PER_HOUR5Cap on channel/group joins
TELETHON_BUCKET_CREATE_PER_HOUR5Cap on channel/group creation
TELETHON_BUCKET_SEND_PER_MIN20Cap on sends across all chats
TELETHON_BUCKET_READ_PER_MIN600Cap on read ops. Counted per server-side API call, not per tool call: get_messages(limit=300) charges 3 slots (Telegram caps GetHistory at 100/page); get_dialogs(limit=500) similarly charges 5.
TELETHON_CACHE_ENABLEDtruePersist resolved entities to disk
TELETHON_CACHE_PATH/cache/entities.jsonMount /cache as a host volume to keep this across rebuilds
TELETHON_CACHE_TTL_SECONDS6048007 days. Set 0 for no expiry.
TELETHON_FLOOD_SLEEP_THRESHOLD60Telethon's reactive auto-sleep: if a FLOOD_WAIT is shorter than this many seconds, sleep through it. Above this, raise. Set very high (e.g. 86400) to never raise — but then a hostile FLOOD_WAIT will block your process for the full duration.

How the layers stack:

  1. Entity cache short-circuits resolveUsername — first lookup of @somechannel calls Telegram; every subsequent lookup is free. Survives container restarts via the /cache volume.
  2. Per-method token buckets cap the dangerous methods. If you try to resolve 6 new usernames in one minute, the 6th sleeps until the oldest expires.
  3. Per-chat send interval throttles sends to each chat to ≤1/sec (with margin).
  4. Global gap + jitter humanizes the overall traffic shape.
  5. Adaptive backoff: a single FLOOD_WAIT halves your effective rate for an hour. Three in a row → ÷8. Auto-recovers after an idle hour.

For bulk scraping work (the scenario that caused 22-hour bans before): the cache + bucket_resolve_per_min=5 combination is what saves you. Resolving 200 new channels takes ~40 minutes instead of getting you banned in 5.

Tools

JSON in, JSON out. All inputs are pydantic-validated — send garbage, get a 400 back with exactly what's wrong.

Chat references (chat, from_chat, to_chat) accept whatever Telethon accepts:

FormatExample
Username@psyb0t
Phone number+1234567890
t.me linkhttps://t.me/psyb0t
Numeric ID123456789
Supergroup/channel ID-1001234567890
Your own Saved Messagesme

Numeric IDs only resolve for entities Telethon has already seen — i.e. cached in your session via a prior @username / t.me lookup, dialog list, or incoming message. MTProto needs an access_hash, not just an ID, and bare numbers don't carry one. Especially relevant for bots: pass @botusername first (or call GET /api/dialogs / GET /api/entities?chat=@bot once) before referring to it by numeric ID. If you only have the bot's token and no username, hit Telegram's Bot API getMe to fetch the username, then use that.

Response shape

Every 2xx returns the resource directly. No {"result": ...} wrapper, no envelope. Lists are JSON arrays, singles are JSON objects.

Errors return {"detail": "..."} (FastAPI standard). Telegram RPC errors arrive as 502 with detail = {"telegram_error": "...", "message": "..."}.

Quick reference
EndpointRequired paramsWhat it does
GET /api/me—Account profile.
GET /api/entitieschatResolve a username/ID/link to a profile.
POST /api/entities/bulkchatsBulk resolve, honoring the resolve-username bucket.
GET /api/dialogs—List dialogs. Optional: limit, archived, search (substring on title/@).
GET /api/messageschatRead recent messages. Optional: limit, offset_id, search.
GET /api/messages/{id}chatFetch a single message.
GET /api/messages/{id}/mediachatDownload attachment as raw bytes (binary stream). Returns Content-Type from Telegram + Content-Disposition: attachment; filename=.... Optional: max_bytes. MCP clients should use the download_media tool which returns base64.
POST /api/messageschat, `text` or `file_url`Send a message. If file_url is present, fetches it and sends as media (with text as caption). Otherwise sends text. Optional: parse_mode, reply_to, silent, link_preview, schedule, force_document, max_bytes.
POST /api/messages/forwardfrom_chat, to_chat, message_idsForward messages.
POST /api/messages/readchatMark as read. Optional max_id.
PATCH /api/messages/{id}chat, textEdit.
DELETE /api/messageschat, message_idsBulk delete (body has the list).
POST /api/messages/{id}/pinchatPin. Optional silent, pm_oneside.
POST /api/messages/{id}/unpinchatUnpin.
POST /api/messages/{id}/reactionschat, emojiReact. Optional big.
DELETE /api/messages/{id}/reactionschatRemove your reaction.
GET /api/participantschatList members. Optional: limit, search.
POST /api/chatstitleCreate supergroup or channel.
DELETE /api/chatschatDelete supergroup/channel you own (body).
POST /api/chats/joinchatJoin public channel/group.
POST /api/chats/inviteinviteJoin via private t.me/+hash.
POST /api/chats/leavechatLeave.
GET /api/chats/{chat}/linked—Resolve a channel's linked discussion group.
POST /api/chats/{chat}/admin/banuserBan a user. Optional until_seconds.
POST /api/chats/{chat}/admin/unbanuserLift a ban.
POST /api/chats/{chat}/admin/kickuserKick (ban + immediate unban).
POST /api/chats/{chat}/admin/promoteuserGrant admin rights + optional title.
POST /api/chats/{chat}/admin/demoteuserStrip admin rights.
POST /api/pollschat, question, optionsCreate a poll. Optional quiz, correct_option, solution.
POST /api/polls/{id}/votechat, optionsVote (0-based indices).
GET /api/polls/{id}/resultschatCurrent vote counts.
GET /api/throttle/status—Live rate-limit + cache state.
GET /api/account/health—Flood-risk tier.

| `GET /metrics

ตัดมาแค่ช่วงต้น อ่านต่อใน repo