Running on the User API means it sees what you see, including the private chats a bot could never join. The per-tool permissions and the chat whitelist are the counterweight: read, send, draft and mark-read are separate grants, so an assistant can be allowed to catch you up without being allowed to reply.
A Go MCP server that connects to a real Telegram account over the User API (MTProto) rather than as a bot. Each tool sits behind a named permission, and the chats it can see are limited by an access whitelist.
- Dialogs listed, limited to the chats the whitelist allows
- Message history fetched with pagination, date filtering and media download
- Messages searched inside a chat by text, with an optional sender filter
- Text or a file sent, with an optional reply-to
- Messages forwarded from one chat to another
- A draft saved without sending it
- A chat marked read
- Typed peer references and lazy peer resolution, which is what keeps rate-limit waits out of startup
Your own api_id and api_hash from my.telegram.org, and Go 1.26 or newer. Telegram's API terms govern use of the User API, and the account it acts as is your own.
One command plus a key — go install github.com/Prgebish/mcp-telegram/cmd/mcp-telegram@latest, then supply credentials
