プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Telegram MCP Server

作者:tolboyバージョン 1.19.1i★ –iパソコンで動く
レジストリ名io.github.tolboy/telegram-mcp-tdlib

インストール

概要

作者による説明(英語の原文)

Local-first TDLib Telegram MCP server with 126 tools, account isolation and production guardrails.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: チャット・メール
  • 入力が必要なもの:TDLIB_API_ID, TDLIB_API_HASH, TDLIB_PHONE_NUMBER, TDLIB_AUTH_CODE, TDLIB_2FA_PASSWORD

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • 自分で入力するもの: TDLIB_API_ID, TDLIB_API_HASH, TDLIB_PHONE_NUMBER, TDLIB_AUTH_CODE, TDLIB_2FA_PASSWORD, MCP_READ_ONLY, MCP_TOOL_PROFILE

「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。

必要なもの

  • DockerDockerのインストール

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "telegram-tdlib": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "TDLIB_API_ID",
        "-e",
        "TDLIB_API_HASH",
        "-e",
        "TDLIB_PHONE_NUMBER",
        "-e",
        "TDLIB_AUTH_CODE",
        "-e",
        "TDLIB_2FA_PASSWORD",
        "-e",
        "MCP_READ_ONLY",
        "-e",
        "MCP_TOOL_PROFILE",
        "ghcr.io/tolboy/telegram-mcp-tdlib:1.19.1-stdio"
      ],
      "env": {
        "TDLIB_API_ID": "your-value",
        "TDLIB_API_HASH": "your-value",
        "TDLIB_PHONE_NUMBER": "your-value",
        "TDLIB_AUTH_CODE": "your-value",
        "TDLIB_2FA_PASSWORD": "your-value",
        "MCP_READ_ONLY": "your-value",
        "MCP_TOOL_PROFILE": "your-value"
      }
    }
  }
}

ターミナルでこれを実行します

claude mcp add telegram-tdlib --env TDLIB_API_ID=your-value --env TDLIB_API_HASH=your-value --env TDLIB_PHONE_NUMBER=your-value --env TDLIB_AUTH_CODE=your-value --env TDLIB_2FA_PASSWORD=your-value --env MCP_READ_ONLY=your-value --env MCP_TOOL_PROFILE=your-value -- docker run -i --rm -e TDLIB_API_ID -e TDLIB_API_HASH -e TDLIB_PHONE_NUMBER -e TDLIB_AUTH_CODE -e TDLIB_2FA_PASSWORD -e MCP_READ_ONLY -e MCP_TOOL_PROFILE ghcr.io/tolboy/telegram-mcp-tdlib:1.19.1-stdio

動かす前に、空欄の値を入力してください。

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "telegram-tdlib": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "TDLIB_API_ID",
        "-e",
        "TDLIB_API_HASH",
        "-e",
        "TDLIB_PHONE_NUMBER",
        "-e",
        "TDLIB_AUTH_CODE",
        "-e",
        "TDLIB_2FA_PASSWORD",
        "-e",
        "MCP_READ_ONLY",
        "-e",
        "MCP_TOOL_PROFILE",
        "ghcr.io/tolboy/telegram-mcp-tdlib:1.19.1-stdio"
      ],
      "env": {
        "TDLIB_API_ID": "your-value",
        "TDLIB_API_HASH": "your-value",
        "TDLIB_PHONE_NUMBER": "your-value",
        "TDLIB_AUTH_CODE": "your-value",
        "TDLIB_2FA_PASSWORD": "your-value",
        "MCP_READ_ONLY": "your-value",
        "MCP_TOOL_PROFILE": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "telegram-tdlib": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "TDLIB_API_ID",
        "-e",
        "TDLIB_API_HASH",
        "-e",
        "TDLIB_PHONE_NUMBER",
        "-e",
        "TDLIB_AUTH_CODE",
        "-e",
        "TDLIB_2FA_PASSWORD",
        "-e",
        "MCP_READ_ONLY",
        "-e",
        "MCP_TOOL_PROFILE",
        "ghcr.io/tolboy/telegram-mcp-tdlib:1.19.1-stdio"
      ],
      "env": {
        "TDLIB_API_ID": "your-value",
        "TDLIB_API_HASH": "your-value",
        "TDLIB_PHONE_NUMBER": "your-value",
        "TDLIB_AUTH_CODE": "your-value",
        "TDLIB_2FA_PASSWORD": "your-value",
        "MCP_READ_ONLY": "your-value",
        "MCP_TOOL_PROFILE": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

自分で入力する値

  • TDLIB_API_ID 必須 env
    Telegram API ID from my.telegram.org
  • TDLIB_API_HASH 秘密 必須 env
    Telegram API hash from my.telegram.org
  • TDLIB_PHONE_NUMBER 秘密 env
    Telegram phone number; omit after preparing a persisted session when using QR authentication
  • TDLIB_AUTH_CODE 秘密 env
    One-time Telegram login code for a fresh headless container
  • TDLIB_2FA_PASSWORD 秘密 env
    Telegram 2FA password when the account requires it
  • MCP_READ_ONLY env
    Keep true for safe first use
  • MCP_TOOL_PROFILE env
    Tool surface: reader, inbox, community-admin, research, or all

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント tolboy で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

チャット・メールのほかのサーバーとの比較i

  • このカテゴリのほかの1782件のうち0%よりスターが多い
  • このカテゴリのほかの1782件のうち84%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの1782件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Telegram MCP Serverは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

入力が必要なもの:TDLIB_API_ID, TDLIB_API_HASH, TDLIB_PHONE_NUMBER, TDLIB_AUTH_CODE, TDLIB_2FA_PASSWORD

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(1.19.1)がレジストリに届いたのは4 日前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにDockerも必要です。

代わりに使えるものは?

同じカテゴリには:Vexa, emailmd, MCP WhatsApp Cloud

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Vexa

作者:Vexa-ai

Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.

クラウドで動く★ 2,949Apache-2.02 か月前更新
インストール

emailmd

作者:anypost

Render markdown into email-safe HTML, lint drafts for deliverability problems, and preview emails.

パソコンでもクラウドでも★ 1,385MIT31 日前更新
インストール

MCP WhatsApp Cloud

作者:codespar

MCP server for WhatsApp Cloud API (Meta) — messages, media, and templates via Graph API

パソコンで動く★ 277MIT5 か月前更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

Telegram MCP Server

Telegram MCP for real accounts — safe by default, TDLib-powered, production-ready.

A local-first Model Context Protocol server that gives an AI agent real Telegram-account access without handing it the keys to your account. It starts read-only, hides write tools until you opt in, and runs over STDIO for desktop clients or Streamable HTTP at /mcp for managed deployments.

Why this one?
  • Safe by default — boots in read-only mode with a small inbox/reader profile; write and quota-consuming tools are *hidden from the model*, not merely blocked, until you turn them on.
  • Human approval that does not depend on your client — destructive tools ask a person first: through the MCP host where elicitation exists, otherwise on a single-use loopback page this server hosts. Either way the question leaves and the answer returns outside the model's turn, so an injected instruction can make the model *request* a ban, not approve one.
  • Sends an agent can retry — an idempotency_key turns a lost response into a stored receipt instead of a duplicate message; an unconfirmed send is reported as UNKNOWN, never silently resent.
  • Real user accounts, not just bots — built on TDLib (via tdlight-java), so an agent can read and act on your actual account, not only a Bot API subset.
  • Isolated multi-account — each account gets its own session, mandatory selection, and scoped API keys; reads never fan out across accounts.
  • Two transports — STDIO for Claude Desktop / Cursor / VS Code / Codex, Streamable HTTP for a managed service.
  • No JDK to install — runtime-inclusive release bundles for Windows, Linux x64/ARM64, and Apple-silicon macOS, with checksums, an SBOM, and signed container digests.

Screen recording of a live terminal session with server 1.19.0 and an authorized

TDLib account, November 2, 2026. The command-line MCP client reads only the public

@telegram channel and prints selected response fields.

MP4 · Still image · How it was recorded.

Safe first run

Runtime-inclusive releases need no JDK, Gradle, Git, Python, or Node.js. Use a test account for your first run if you can.

1. Install (macOS Apple silicon / Linux with Homebrew):

brew install --formula https://github.com/tolboy/telegram-mcp-tdlib/releases/latest/download/telegram-mcp.rb

Windows with Scoop:

scoop install https://github.com/tolboy/telegram-mcp-tdlib/releases/latest/download/telegram-mcp.json

2. Log in with a QR scan — the one-time code never touches your shell history:

telegram-mcp auth --method qr

3. Check the session is ready — this reads local state and starts no server:

telegram-mcp session doctor

Do not run serve --transport stdio yourself to try it out. With STDIO your AI client starts the server and owns its lifetime; a copy you launched in a terminal holds the TDLib session, and the client's own copy then exits with code 2 because it cannot lock td.binlog. Give the command to the client instead (below) and let it do the starting.

Then try a first prompt that cannot change anything:

“Summarize my last 20 conversations. Do not send or modify anything.”

In this mode write and quota-consuming tools are absent from the tool list entirely, so the model has nothing destructive to call. Switch to MCP_READ_ONLY=false only after you have reviewed the surface. When you do, set MCP_DESTRUCTIVE_APPROVAL=auto (or elicitation / loopback). The server refuses to start if writes are on and approval is left off, because "confirmed": true is an argument the model can set itself. auto asks through host elicitation where available, or through the server's loopback page otherwise. MCP_ALLOW_MODEL_CONFIRMED_WRITES=true is the explicit exception that restores the old combination.

Connect your client

Generate the entry instead of transcribing one — it fills in the key your client actually expects and pins the version it was generated from:

telegram-mcp config --client claude

--client claude-code|cursor|vscode|codex switches target — Codex gets TOML, VS Code gets the servers key it actually reads, Claude Code gets the explicit transport type. --writes enables write tools and the approval prompt that guards the destructive ones — pair it with a write-capable --profile inbox|community-admin|all, since the default reader surface hides write tools before read-only mode is consulted. --docker default emits a container entry with a pinned image, and --http default emits the shared-daemon entry for Claude Code, Cursor, VS Code, or Codex. Claude Desktop does not read remote servers from claude_desktop_config.json; add a network-reachable remote endpoint under Settings → Connectors instead. Claude remote connectors do not accept the generator's custom API-key header, so this server must be exposed over HTTPS with MCP_AUTH_MODE=oauth. The generator therefore rejects --client claude --http.

STDIO is the low-friction path for desktop clients. The generated entry looks like:

{

"mcpServers": { "telegram": { "command": "telegram-mcp", "args": ["serve", "--transport", "stdio"], "env": { "TDLIB_API_ID": "123456", "TDLIB_API_HASH_FILE": "/absolute/path/to/telegram-api-hash", "MCP_TOOL_PROFILE": "inbox", "MCP_READ_ONLY": "true" } } } }

  • Claude Desktop — add the block above to claude_desktop_config.json, then quit the app from the tray and start it again. Use Settings → Developer → Edit Config to open the file: it points at the right copy for your build. Editing %APPDATA%\Claude by hand works only for the installer build — the Microsoft Store build is packaged as MSIX and keeps its config in %LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\ instead.
  • Cursor — add it to ~/.cursor/mcp.json (or Settings → MCP → Add).
  • VS Code — use .vscode/mcp.json; VS Code names the top-level key servers instead of mcpServers and requires an explicit "type": "stdio" or "type": "http".

To share one local process across clients, use telegram-mcp daemon start and telegram-mcp daemon attach --client cursor (or codex, vscode, claude-code). See managed local daemon for status, stop and onboarding.

For a managed HTTP deployment instead of STDIO:

docker run --rm -p 127.0.0.1:8080:8080 \

-e TDLIB_API_ID -e TDLIB_API_HASH -e MCP_API_KEY \ ghcr.io/tolboy/telegram-mcp-tdlib:latest

See CLI and STDIO, interactive authentication, and client compatibility for exact platform/client variants.

Recipes

For reusable agent instructions, install the free Telegram Inbox Assistant skill. Requires server 1.17.2 or later. Shared-daemon users of Claude Desktop can use the optional tools bridge, included in runtime packages with its Python dependency instructions. Its setup guide includes client configuration templates and explains the separately required local server and Telegram authorization. The skill summarizes and searches in read-only mode.

Copy-paste configurations and prompts for real tasks, each with the smallest tool surface that can do the job: summarize your inbox, find a lost message, research public groups, read-only community health check, and draft replies without sending — index in docs/recipes. Those recipes are also MCP prompts. Selecting one does not grant tools beyond the configured profile.

How it compares

Most Telegram MCP servers wrap the Bot API or a Telethon user session and expose every capability to the model at once. This project optimizes for connecting an agent to a real account you care about, safely:

DimensionThis serverTypical Telethon / Bot-API MCP servers
Account accessReal user account via TDLib (tdlight-java)Often bot-only, or a single Telethon user session
Default postureRead-only; write/quota tools hidden until enabledUsually all tools exposed from the start
Multi-accountIsolated sessions, mandatory selection, scoped keys, no cross-account read fan-outSingle account, or implicit fan-out
TransportsSTDIO and Streamable HTTP /mcpUsually STDIO only
GuardrailsConfirmation gating, audit log, anti-spam limits, chat allow-list, untrusted-content markingMinimal
DistributionSigned runtime bundles (no JDK), SBOM + provenance, GHCR imageSource install via pip/npx

A fuller architectural comparison (TDLib vs Telethon vs Bot API, and why "hidden, not blocked" matters) is in docs/COMPARISON.md. The detailed, dated benchmark against the leading public servers — including features deliberately declined (raw MTProto escape hatch, ownership transfer, bulk contact export) — is in PUBLIC_BENCHMARK_AND_ROADMAP.md.

Tool profiles

You don't expose 126 tools on day one. MCP_TOOL_PROFILE narrows the advertised surface *before a client ever sees it*, without weakening account scoping, read-only mode, confirmation, audit, or anti-spam:

ProfileSurface
readerAlways non-mutating — safe for a first look
inboxPersonal messages, drafts, media, contacts, privacy
community-adminModeration, group/channel, permissions, bot commands
researchBounded account/public discovery and reading
allThe full inventory (opt in deliberately)

See TOOL_PROFILES.md for the exact intent of each surface.

Features

  • 126 MCP tools — messages, polls, read receipts, scheduled sends, chats, folders, invite-link administration, contacts, media, drafts, privacy, bot commands, detailed group permissions, profile, search, and account routing.
  • TDLib via tdlight-java — real user accounts, not just the Bot API.
  • Isolated multi-account mode — independent sessions, mandatory account selection, and optional per-key account scopes with no cross-account read fan-out.
  • Safe by default — read-only tool surface, human approval for destructive actions (MCP_DESTRUCTIVE_APPROVAL, over the host or a loopback page), and task-focused profiles (reader/inbox/community-admin/research/all).
  • Recoverable sends — optional idempotency keys and durable receipts for text, replies, files, voice, stickers, forwards and scheduled messages; see delivery recovery.
  • Per-client permissions — a reviewed JSON file grants each client read, download, mutate, quota or policy actions on named accounts

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く