Chatroost — unofficial Telegram MCP server
io.github.mcp-telegramPublished by GitHub account mcp-telegramv1.45.1Updated Nov 3, 2026
Unofficial Telegram MCP server — read, search, reply and react in your own Telegram account.
Overview
Chatroost — unofficial Telegram's hosted MCP server (mcp.mcp-telegram.com); OAuth sign-in required; Streamable HTTP.
No AI overview yet: these facts come from the registry entry and the server itself.
- Endpoint
- mcp.mcp-telegram.com
- Last checked
Installation
In SourceWeft
- Open Chatroost — unofficial Telegram MCP server in the dashboard and add it to a workspace.
- Connect the required credentials. They are stored privately and never shown on public pages.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.mcp-telegram%2Fmcp-telegram/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.
{
"mcpServers": {
"chatroost-unofficial-telegram": {
"type": "http",
"url": "https://mcp.mcp-telegram.com/mcp"
}
}
}README
Telegram MCP Server
[npm] [npm downloads] [Node.js] [TypeScript] [MCP SDK] [License: MIT] [mcp-telegram MCP server]
📖 Documentation · ☁️ Cloud version — connect Telegram to Claude.ai or ChatGPT in 30 seconds with QR code, no API keys needed.
[MCP Telegram demo — connect and summarize chats in Claude]
Telegram MCP Server — a Model Context Protocol server that connects AI assistants like Claude and ChatGPT to Telegram via the MTProto protocol. Unlike bots, this runs as a userbot -- it operates under your personal Telegram account using GramJS, giving full access to your chats, contacts, and message history.
Features
- Comprehensive tool coverage -- the most full-featured Telegram MCP server available
- MTProto protocol -- direct Telegram API access, not the limited Bot API
- Userbot -- operates as your personal account, not a bot
- Full-featured -- messaging, reactions, polls, scheduled messages, stickers, media, contacts, and more
- Forum Topics -- list topics, read per-topic messages, send to specific topics, per-topic unread counts
- Stickers -- search sticker sets, browse installed/recent stickers, send stickers to any chat
- Account & profile management -- update profile, set emoji status, birthday, personal channel, profile photo, manage privacy settings, sessions, auto-delete timers
- Chat folders -- create, edit, delete and reorder folders, toggle folder tags, read suggested folders (v1.33.0)
- Global privacy -- read and set account-wide privacy settings (v1.33.0)
- Global search -- search messages across all chats at once
- Real-time polling -- fetch updates via stateless cursors; agent owns
{pts, qts, date}state - Inline bots & buttons -- query inline bots, send results, press callback buttons
- Stories -- read stories from peers, get story view stats; publish/edit/delete stories, react, pin, stealth mode, archive, report (v1.30.0)
- Discussion -- get discussion-group info for channel posts with comments, list groups eligible for discussion (v1.30.0)
- Read Receipts -- who read a message in a small group, when your private message was read (v1.30.0)
- Admin controls -- toggle channel signatures, anti-spam, forum mode, prehistory; approve join requests
- Stats -- channel and supergroup analytics (GetBroadcastStats / GetMegagroupStats)
- Boosts & Business -- boost status, boosters list, Telegram Business chat links CRUD, work hours, location, greeting/away/intro messages
- Star gifts -- browse available and saved gifts, save/convert gifts, manage Stars balance and subscriptions (opt-in via
MCP_TELEGRAM_ENABLE_STARS=1, v1.34.0) - Shared daemon -- one background process serves multiple MCP clients over a single Telegram session; see the shared-daemon guide (v1.38.0)
- QR code login -- authenticate by scanning a QR code in the Telegram app
- Session persistence -- login once, stay connected across restarts
- Human-readable output -- sender names are resolved, not just numeric IDs
- Works with any MCP client -- Claude Code, Claude Desktop, ChatGPT, Cursor, VS Code, Mastra, etc.
Prerequisites
- Node.js 18 or later
- Telegram API credentials --
API_IDandAPI_HASHfrom my.telegram.org
Quick Start
1. Get Telegram API credentials
- Go to my.telegram.org and log in with your phone number.
- Navigate to API development tools.
- Create a new application (any name and platform).
- Copy the App api_id and App api_hash.
2. Login
A QR code will appear in the terminal. Open Telegram on your phone, go to Settings > Devices > Link Desktop Device, and scan the code. The session is saved to ~/.mcp-telegram/session and reused automatically.
Custom session path: set
TELEGRAM_SESSION_PATH=/path/to/sessionto store the session file elsewhere.
Two-step verification (2FA): if your account has a cloud password enabled, scanning the QR code is not enough — Telegram also requires the password. Provide it via
TELEGRAM_2FA_PASSWORDso the login can complete:The password is only used locally to answer Telegram's SRP challenge and is never persisted.
Local files: tools that upload a file (
telegram-send-file,telegram-send-voice,telegram-send-album, stories, profile and group photos) read files under your home folder and temp folders, and downloads are saved toDownloads,Desktop,Documentsor temp folders. Hidden files and folders (~/.ssh,~/.mcp-telegram, ...),~/Library,~/AppDataand the session file are always refused, and an existing file is never overwritten (name (1).extis used). To use other folders, list them inMCP_TELEGRAM_FILE_DIRS(separated by:, or;on Windows); this replaces the defaults.
3. Add to Claude
That's it! Ask Claude to run telegram-status to verify.
Multiple Accounts
Use TELEGRAM_SESSION_PATH to run separate Telegram accounts side by side:
Then add each as a separate MCP server:
Each account gets its own session file — no conflicts.
Multiple agents / concurrent clients (shared daemon)
The opposite of multiple accounts: one account driven by many clients at once — several Claude Code windows, parallel sub-agents, or multiple IDEs. Normally each process opens the same session and they evict one another with AUTH_KEY_DUPLICATED. Serve mode fixes this.
Run a single persistent daemon that owns the one Telegram connection. Every other process auto-detects the daemon (via a PID lock) and becomes a thin client that proxies tool calls to it over a local Unix socket:
Then point each MCP client at the same install with the same TELEGRAM_SESSION_PATH — no serve argument. They connect to the daemon automatically; closing any client never drops the shared connection. Credentials are only required by the daemon (the owner), so client commands can omit TELEGRAM_API_ID/TELEGRAM_API_HASH and keep them where the daemon runs.
See the shared daemon guide for a systemd unit and SSH usage.
Proxy Support
If Telegram is blocked or you're running in a containerized environment (Docker, K3s), use a SOCKS5 or MTProxy:
Connecting via WSS (port 443)
If your VPS or hosting IP is reachable on outbound port 443 but not the default MTProto port 80 (some cloud providers ban port 80 on Telegram DC IP ranges as anti-abuse policy), set:
Installation Options
npx (recommended, zero install)
No need to clone or install anything. Just use npx @overpod/mcp-telegram.
Global install
Pre-built binary (no runtime needed)
Download from Releases — standalone single-file binaries, zero dependencies:
From source
Docker
Login (interactive terminal required):
Run the MCP server:
Note: Login must be done once via terminal. After that, the session is persisted in
~/.mcp-telegramand reused automatically.
Usage with MCP Clients
Claude Code (CLI)
Claude Desktop
-
Open your config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
Add the Telegram server:
-
Restart Claude Desktop.
-
Ask Claude: "Run telegram-login" -- a QR code will appear. If the image is not visible, it's also saved to
~/.mcp-telegram/qr-login.png. Scan it in Telegram (Settings > Devices > Link Desktop Device). -
Ask Claude: "Run telegram-status" to verify the connection.
Note: No terminal required! Login works entirely through Claude Desktop.
Claude Desktop (Binary)
Same setup, but using the pre-built binary instead of npx:
Claude Desktop (Docker)
-
Login via terminal first (see Docker section above).
-
Add to your config file:
- Restart Claude Desktop. Ask Claude: "Run telegram-status" to verify.
Cursor / VS Code
Add the same JSON config above to your MCP settings (Cursor Settings > MCP, or VS Code MCP config).
Mastra
Tools
All tools are auto-discoverable via MCP — your AI client will see the full list with parameters and descriptions when connected.
Tip: Ask your AI assistant "What Telegram tools are available?" to get the full list with parameters and descriptions.
Optional Features
Some tools are disabled by default and must be opted in via environment variables:
Add these to your .env file or MCP client config to enable them.
Development
Project Structure
Tech Stack
- TypeScript -- ES2022, ESM modules
- GramJS (
telegram) -- Telegram MTProto client - @modelcontextprotocol/sdk -- MCP server framework
- Zod -- Runtime schema validation for tool parameters
- Biome -- Linter and formatter
- tsx -- TypeScript execution without a build step
- dotenv -- Environment variable management
Troubleshooting
AUTH_KEY_DUPLICATED
A Telegram session can only be used by one process at a time. If you get AUTH_KEY_DUPLICATED, it means another process is already using the same session file.
Solution: Create separate sessions for each environment:
Then set TELEGRAM_SESSION_PATH in each environment's MCP config accordingly.
Security
- API credentials are stored in
.env(gitignored) - Session is stored in
~/.mcp-telegram/sessionwith0600permissions (owner-only access) - Session directory is created with
0700permissions - Phone number is not required -- QR-only authentication
- No data is sent to third-party services -- all communication goes directly to Telegram servers via MTProto
- QR login codes are generated locally and never leave your machine
- One session per process -- using the same session in multiple processes simultaneously causes
AUTH_KEY_DUPLICATEDerrors (see Troubleshooting) - This is a userbot (personal account), not a bot -- respect the Telegram Terms of Service
License
MIT
Source: README.md at commit 0fde882
Tools
0Version history
11- v1.45.1LatestNov 3, 2026
- v1.44.2Nov 1, 2026
- v1.44.1Oct 26, 2026
- v1.43.7Oct 26, 2026
- v1.43.6Oct 13, 2026
- v1.43.5Oct 13, 2026
- v1.43.4Oct 5, 2026
- v1.43.2Oct 3, 2026
- v1.43.1Sep 29, 2026
- v1.43.0Sep 21, 2026
- v1.42.0Sep 16, 2026
Score
85% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts