Telegram MCP Server

by alexandertsai
Verified

Integrations

  • Allows Claude to access a Telegram account to read chats, view messages, send messages, mark messages as read, and retrieve conversation context to formulate natural-sounding replies.

Telegram MCP 服务器

这是一个简单的 MCP 服务器,可让 Claude 访问您的 Telegram 帐户来阅读和发送消息。

功能

  1. get_chats :获取您的 Telegram 聊天列表
  2. send_message :向聊天发送消息
  3. get_message :从聊天中获取消息并打印未读消息
  4. mark_messages_read :将消息标记为已读
  5. get_conversation_context :获取过去 20 条消息并读取convostyle.txt以确定适当的回复

设置

推荐设置

步骤 1:获取您的 Telegram API 凭证

  1. 前往https://my.telegram.org/apps
  2. 登录并创建一个应用程序(或使用现有的应用程序)注意:什么类型的应用程序并不重要 - 只需创建任何东西...确保在类型下选择“web”。
  3. 记下您的API IDAPI Hash

第 2 步:设置 Python 环境

安装所需的软件包(打开终端执行此操作。在 Mac 上按 command+space 并输入“terminal”,在 Windows 上按 Windows 键并输入“terminal”。将代码逐行复制并粘贴到终端中)。确保您已事先安装 Git。

# Clone the repository within your desired directory (if you haven't already) git clone https://github.com/alexandertsai/mcp-telegram cd mcp-telegram

设置虚拟环境。如果适用,请使用pip3

# Set up virtual environment pip install uv uv venv source .venv/bin/activate # .venv\Scripts\activate for windows uv add mcp-sdk telethon python-dotenv nest_asyncio

步骤 3:添加 ID

对于 Mac(bash):

在虚拟环境中,运行以下命令:

export TELEGRAM_PHONE=phone number with country code and no spaces export TELEGRAM_API_ID=api_id export TELEGRAM_API_HASH=api_hash

检查它们是否已在终端中使用printenv导出。

对于 Windows (Powershell):

在虚拟环境中,运行以下命令。请确保包含引号,否则 powershell 可能会出现问题:

$env:TELEGRAM_PHONE="phone number with country code and no spaces" $env:TELEGRAM_API_ID="api_id" $env:TELEGRAM_API_HASH="api_hash"

检查它们是否已使用 powershell 中的gci env:导出。

步骤 4:运行身份验证

运行此程序进行身份验证。如果您启用了 2FA,输入密码时终端中不会显示任何文本。这是正常现象!请尽量避免在 2FA 过程中输入错误——否则需要重新启动整个过程……请根据您安装的版本使用pythonpython3

cd src/mcp_telegram python3 telethon_auth.py

你将被要求提供:

  • 您的电话号码(国际格式,带“+”)(请勿留空格)
  • Telegram 向您的帐户发送的代码
  • 您的 2FA 密码(如果启用)

这会在您的主目录中创建一个会话文件,因此您无需再次进行身份验证。

步骤 5:添加到 Claude 桌面

编辑您的 Claude Desktop 配置:

打开 Claude 桌面,进入设置(cmd+,),点击“开发者”,然后点击“编辑配置”。编辑 ClaudeDesktop_config.json 文件。确保已启用开发者模式。

macOS~/Library/Application Support/Claude/claude_desktop_config.json
Windows%APPDATA%\Claude\claude_desktop_config.json

将其添加到您的配置中(替换为您的实际凭据)。按 command+s 保存。

"mcpServers": { "telegram": { "command": "/your/path/to/python3", "args": ["/full/path/to/mcp-telegram/main.py"], "env": { "TELEGRAM_API_ID": "your_api_id_here", "TELEGRAM_API_HASH": "your_api_hash_here", "TELEGRAM_PHONE": "+65945678900" } } }

**main.py:**要获取完整路径,请转到您的 IDE 或桌面,找到该文件,右键单击它,然后单击“复制路径”。

**python:**在终端中运行where.exe python (Windows) 或where python (Mac) 以获取完整路径(如有需要,请替换为python3 )。如果在 Windows 上,由于 JSON 格式(ctrl+f 为“\”,ctrl+h 为“/”),您可能需要将路径中的反斜杠替换为正斜杠。

非常重要:

  1. 使用 Python 和 main.py 脚本的完整绝对路径
  2. 将 API 凭证替换为步骤 1 中的实际值
  3. 以国际格式设置您的电话号码

步骤 6(可选):

如果您希望聊天机器人做出响应并发出与您相似的声音,请随意在src/mcp_telegram中配置convostyle.txt

就是这样!

重新启动 Claude Desktop(退出并重新打开),现在您可以要求 Claude:

  • 显示您最近的 Telegram 聊天
  • 阅读特定聊天的消息
  • 将某些消息标记为“已读”
  • 以自然的声音向您的联系人或群组发送消息

向 Claude 询问提示时,务必包含“Telegram”一词,否则它可能无法理解。例如,“Claude,我还有未读的电报消息吗?”

定制

您可以进入 Claude Desktop -> 点击您的用户,然后点击左下角的设置 -> 配置您的个人偏好设置,以获得更个性化的响应。例如,“使用 MCP 查看 Telegram 时,忽略频道”。

令人厌烦的故障排除

在虚拟环境中,尝试运行:

ls -la ~/.mcp_telegram_*

然后使用以下命令终止会话文件(只需复制并粘贴前面带有 rm 的文件路径)

rm /Users/username/.mcp_telegram_numberininternationalformat*

再次尝试步骤 3。

-
security - not tested
A
license - permissive license
-
quality - not tested

local-only server

The server can only run on the client's local machine because it depends on local resources.

一个简单的 MCP 服务器,允许 Claude 访问您的 Telegram 帐户,代表您阅读和发送消息。

  1. Functions
    1. Setup
      1. Recommended set up
      2. Step 1: Get Your Telegram API Credentials
      3. Step 2: Set Up Python Environment
      4. Step 3: Add IDs
      5. Step 4: Run authentication
      6. Step 5: Add to Claude Desktop
      7. VERY IMPORTANT:
      8. Step 6 (optional):
    2. That's It!
      1. Customisation
        1. Pesky troubleshooting
          ID: iw2s0g45fo