Telegram MCP
Can be configured as the local LLM/embedding provider powering the personal NotebookLM-style archive, enabling semantic search and retrieval-augmented answers over indexed Telegram content.
Can be configured as the LLM/embedding provider (via API key) powering the personal NotebookLM-style archive, enabling semantic search and retrieval-augmented answers over indexed Telegram content.
Provides tools for operating a user's own Telegram account via Telethon — listing and searching chats, reading, sending, editing, deleting, forwarding, reacting to, pinning, and scheduling messages, sending polls/quizzes, managing contacts, participants, groups, channels, and forum topics (create/edit/pin/delete/set-enabled), downloading media, updating profile, and backing up/restoring messages. Multi-user with encrypted per-user sessions and OAuth 2.1 (plus personal tokens).
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Community source release (MIT). Self-host using your own credentials. No NabuxAI production accounts or hosted-service access are included.
Telegram MCP — تلگرامِ خودت + یک مغز NotebookLM، برای هر کاربری
یک سرور MCP چندکاربره: هر کسی با شمارهٔ تلگرامش وارد میشود و از آن به بعد Claude (وب، دسکتاپ، Claude Code)، Cursor یا هر کلاینت MCP دیگری از طرف حساب خودِ او با تلگرام کار میکند. کنارش یک «نوتبوک» شخصی هست که کانالها و چتها را ایندکس میکند و به سؤالها با استناد جواب میدهد.
سرور و اپ ما فقط واسط هستند: نشست تلگرام هر کاربر رمزنگاریشده روی همین سرور میماند، هیچوقت به Claude داده نمیشود، و کاربر از داشبورد یا از تنظیمات تلگرام (Devices) هر وقت خواست قطعش میکند.
کلاینت MCP (Claude / Cursor / ...)
│ OAuth 2.1 (PKCE, dynamic client registration)
▼
این سرور ──► صفحهٔ لاگین: شماره → کد → رمز دومرحلهای
│
├─ telegram_* ابزارها ──► Telethon (نشست شخصی کاربر) ──► تلگرام
└─ notebook_* ابزارها ──► آرشیو per-user + جستوجوی معنایی + RAG با LLMچطور یک کاربر وصل میشود؟
در claude.ai → Settings → Connectors → Add custom connector و آدرس زیر را میدهد:
https://<دامنهات>/mcp(در Claude Code:
claude mcp add --transport http telegram https://<دامنهات>/mcp)روی Connect میزند؛ مرورگر به صفحهٔ لاگین ما میآید. شماره، کدی که تلگرام فرستاده و (اگر داشته باشد) رمز دومرحلهای را وارد میکند.
تمام. Claude حالا با حساب همان شخص کار میکند. اگر بعداً کلاینت دومی وصل کند، فقط صفحهٔ «اجازه میدهم / رد» را میبیند.
کلاینتی که OAuth بلد نیست؟ کاربر بعد از ورود از داشبورد (/dashboard) یک توکن شخصی میسازد و یکی از این دو را استفاده میکند:
Authorization: Bearer <token>رویhttps://<دامنه>/mcpیا بدون هدر:
https://<دامنه>/t/<token>/mcp
Related MCP server: telegram-mcp
تاپیکهای گروههای Forum (انتشار در بخش مشخص)
برای دیدن بخشهای واقعی یک سوپرگروه که Topics فعال دارد، بدون خواندن پیامها، ابزار
telegram_list_forum_topics را با chat="@group" و حساب درست (account="@your_account") فراخوانی کنید.
این ابزار id، title، وضعیت بسته/مخفی بودن و در صورت امکان next_offset را برمیگرداند.
برای ادامهٔ صفحهبندی، سه مقدار offset_date، offset_id و offset_topic را از
next_offset به درخواست بعدی بدهید.
برای انتشار متن یا عکس/فایل در همان بخش، telegram_send_message را با
chat="@group" و topic_id=<id from listing> فراخوانی کنید.
تاپیک General با topic_id=1 در خط اصلی گروه ارسال میشود؛ سایر تاپیکها با پاسخ
به پیام ریشهٔ تاپیک مقصد مشخص میشوند.
پیش از ارسال: حساب، گروه و نام تاپیک را با کاربر تأیید کنید. سرور پیش از ارسال
وجود تاپیک را در همان گروه بررسی میکند و تاپیک ناموجود/حذفشده، بسته یا مخفی
را رد میکند. topic_id و reply_to را همزمان نفرستید. بدون topic_id
رفتار قدیمی ارسال معمولی/ریپلای حفظ میشود. برای گروههای غیر Forum،
درخواست فهرست تاپیک یا ارسال با topic_id رد میشود.
مدیریت کامل تاپیکها (Telethon / Forum API)
این نسخه علاوه بر فهرستکردن تاپیکها، ابزارهای مدیریتی زیر را با حساب متصلِ همان کاربر و بررسی حق Manage Topics ارائه میدهد:
ابزار | کاربرد |
| فهرست واقعی تاپیکها، وضعیت و صفحهبندی |
| ساخت تاپیک جدید، همراه جلوگیری از عنوان تکراری |
| تغییر عنوان/ایموجی، بستن و بازکردن، مخفیسازی General |
| پین یا آنپین تاپیک |
| حذف برگشتناپذیر تاپیک و همه پیامها با |
| تغییر حالت Forum برای مالک سوپرگروه با |
| مطالعه پیامهای تاپیک خاص |
| ارسال متن، عکس، فایل یا پیام زمانبندیشده به تاپیک خاص |
| ارسال نظرسنجی یا آزمون به تاپیک خاص |
ابتدا telegram_list_forum_topics را برای پیدا کردن topic_id اجرا کنید
و از حدسزدن شمارهها خودداری کنید. برای جلوگیری از تکرار، ابزار ساخت عنوان
دقیقاً یکسان را رد میکند. هیچ عملیاتی روی حسابی خارج از حسابهای متصلِ مالک
توکن OAuth انجام نمیشود. تستها آفلاین هستند و پیام واقعی به تلگرام نمیفرستند.
نکتهٔ استقرار: اگر متدهای جدید را در ChatGPT نمیبینید، نسخه جدید سرور را deploy کنید و سپس اتصال Plugin/MCP را Refresh یا Reconnect کنید تا فهرست ابزارهای سرور دوباره شناسایی شود؛ تغییر GitHub به تنهایی نسخهٔ در حال اجرا را بهروز نمیکند.
ابزارها
telegram_* — عملیات روی تلگرامِ خود کاربر
ابزار | کار |
| حساب متصل |
| فهرست چتها (فیلتر نوع، جستوجوی عنوان، فقط خواندهنشده، آرشیو) |
| اطلاعات کامل کاربر/گروه/کانال |
| مخاطبین |
| تاریخچهٔ یک چت (صفحهبندی، جستوجو، فرستندهٔ خاص، idهای مشخص، ریپلایها) |
| جستوجوی متن در یک چت یا سراسر حساب |
| ارسال متن/فایل/عکس، ریپلای، بیصدا، زمانبندیشده ( |
| نظرسنجی / کوییز |
| ویرایش متن و/یا جایگزینی عکس (پست کانال هم) |
| مدیریت پیام |
| دریافت عکس (بهصورت تصویر برای مدل)، فایل متنی (بهصورت متن)، یا متادیتا |
| اعضای گروه/کانال (all / admins / bots / kicked / banned) |
| ساخت و مدیریت گروه و کانال |
| آرشیو و بیصدا کردن |
| نام، بیو، یوزرنیم |
| بکاپ متن+عکس اصلی روی سرور قبل از ویرایش انبوه، و بازگردانی |
chat را میتوان به شکل @username، آیدی عددی (خروجی telegram_list_chats)، لینک t.me، شمارهٔ یک مخاطب، یا me (Saved Messages) داد.
notebook_* — مغز (از پروژهٔ Telegram NotebookLM)
ابزار | کار |
| ایندکس یک کانال/گروه/چت در آرشیو شخصی: متن پیامها + رونویسی صوت/ویدیو + OCR عکس/PDF (با کلید Gemini) + DOCX/XLSX. |
| وضعیت/لغو جابها |
| ایندکس چند پیام مشخص از هر چتی («اینو یادت باشه») |
| ذخیرهٔ یادداشت آزاد در inbox نوتبوک |
| جستوجوی معنایی + کلیدواژهای روی همهٔ محتوای ایندکسشده |
| پاسخ مستند با ارجاع |
| خلاصه، خوشهبندی موضوعی، تایملاین، آمار، خروجی Markdown |
| منابع ایندکسشده |
| تگگذاری خودکار (کلیدواژه → تگ) |
آرشیو با آیدی تلگرام کاربر کلید میخورد؛ همان کلیدی که ربات تلگرامِ پروژهٔ نوتبوک استفاده میکند. پس کسی که از وب وصل شده و کسی که با ربات (/connect) کار میکند یک آرشیو مشترک دارند، و ورود از وب خودکار ربات را هم برای همان کاربر فعال میکند.
پیشنیاز
یک سرور با Docker (یا Python 3.11+ و ffmpeg).
یک دامنهٔ HTTPS (کانکتور Claude و OAuth به HTTPS نیاز دارند). با Caddy داخل compose خودکار گرفته میشود؛ یا Coolify؛ یا Cloudflare Tunnel.
api_id/api_hashاز my.telegram.org — یک جفت برای کل سرور؛ کاربرها فقط شمارهشان را میدهند (در بخش «پیشرفته» صفحهٔ لاگین میتوانند اعتبار خودشان را هم بدهند).برای «مغز»: یک ارائهدهندهٔ LLM/embedding (Gemini یا OpenAI با کلید، یا Ollama محلی).
راهاندازی با Docker
cp .env.example .env && nano .envحداقل اینها را پر کن:
TG_API_ID=... TG_API_HASH=...
PUBLIC_BASE_URL=https://mcp.example.com
APP_SECRET_KEY=$(python3 -c "import secrets; print(secrets.token_urlsafe(48))")
LLM_PROVIDER=gemini GEMINI_API_KEY=... # یا openai / ollamaدر Caddyfile دامنهات را بگذار، بعد:
docker compose up -d --buildآدرس MCP: https://mcp.example.com/mcp — همین را به کاربرها بده. صفحهٔ https://mcp.example.com/ راهنمای اتصال را نشان میدهد.
ربات تلگرام (اختیاری، برای همان آرشیو): TELEGRAM_BOT_TOKEN را در .env بگذار و
docker compose --profile bot up -dکاربر Coolify؟ راهنمای
README_COOLIFY.mdو فایلdocker-compose.coolify.yml.
بدون Docker
cp .env.example .env # DATA_DIR=./data ؛ برای تست محلی PUBLIC_BASE_URL=http://localhost:8000 مجاز است
pip install -r requirements.txt
./run_local.shامنیت — چیزهایی که باید بدانی
APP_SECRET_KEYنشستهای تلگرام را (Fernet) رمز میکند و کوکیها را امضا میکند. عوضش کنی همه باید دوباره وارد شوند. گمش کنی دادهها غیرقابلخواندناند.توکنهای OAuth فقط بهصورت hash ذخیره میشوند؛ access token یک ساعت، refresh token ۹۰ روز و با هر refresh عوض میشود. لغو از داشبورد یا
/revoke.هر کاربر فقط به نشست خودش میرسد: user_id از توکن میآید، نه از ورودی ابزار.
آدرسهای
file_urlرا خودِ سرور دانلود میکند؛ محافظ SSRF (فقط IP عمومی، ≤۳ ریدایرکت، سقف حجم) روشن است.محدودیت درخواست کد (
LOGIN_CODES_PER_HOURبهازای IP) و لیست سفید شماره (ALLOWED_PHONES) اختیاری.همیشه پشت HTTPS.
PUBLIC_BASE_URLباhttp://فقط برایlocalhostپذیرفته میشود.
تست
python -m pytest -q test_server.py # کل مسیر OAuth + لاگین + ابزارها، آفلاین با Telethon ساختگی
python -m pytest -q tests/notebook # تستهای موتور نوتبوکساختار
server.py entrypoint (FastMCP + OAuth + uvicorn، مسیر /t/<token>/mcp)
app/config.py تنظیمات از env
app/db.py SQLite: کاربران (نشست رمزشده)، کلاینتهای OAuth، کدها، توکنها
app/security.py Fernet، hash توکن، کوکی امضاشده، CSRF
app/oauth.py OAuthAuthorizationServerProvider روی SQLite + تراکنشهای /authorize
app/tg.py استخر کلاینت Telethon per-user، جریان لاگین، resolve/serialize، fetch امن
app/tools.py ابزارهای telegram_*
app/notebook.py پل به موتور نوتبوک + ابزارهای notebook_*
app/web.py صفحات لاگین / consent / داشبورد
telegram_notebook/ موتور NotebookLM (ingest، search، RAG، bot، …) — واردشده از پروژهٔ telegram-notebooklm-mvpThis server cannot be deployed
Maintenance
Related MCP Connectors
Telegram bridge for your MCP-compatible agent. Bidirectional, no LLM in our stack.
Hosted Telegram MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
Share one project context across ChatGPT, Claude, Telegram and any MCP client.
Personal knowledge MCP: capture bookmarks, notes & todos by chat; archive pages; search memory.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables full access to your personal Telegram account via MCP, allowing reading, sending, and searching messages, managing chats, and retrieving user information through natural language commands.1846 npm4MIT
- AlicenseCqualityDmaintenanceConnects AI tools to Telegram via MCP, enabling reading chats, sending messages, managing groups, and more using your own account.5453 PyPI7MIT
- AlicenseNot gradedqualityDmaintenanceEnables reading Telegram chats and searching messages through natural language, connecting to MCP clients like Claude Code, Codex, and Cursor.28 npm1MIT
- FlicenseNot gradedqualityCmaintenanceEnables users to interact with their own Telegram account through MTProto, supporting chat listing, message reading and searching, sending messages, and fetching contacts via MCP tools.-