M

MCP Telegram 连接器

@alexandertsai/mcp-telegram
1 Stars 456 次浏览 alexandertsai 更新于 2026-08-23

一个简单的MCP服务器,允许克劳德访问您的Telegram账户,以代表您阅读和发送消息。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

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. 登录并创建一个应用(或使用现有的一个)
  3. 记下你的API IDAPI Hash

步骤2: 设置Python环境

安装所需的包:

# 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 mcp
uv venv
source .venv/bin/activate
# .venv\Scripts\activate for windows
uv add "mcp[cli]" 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: 运行认证

运行以下命令进行认证。如果你启用了两步验证,在输入密码时不会看到任何文本出现在终端上。这是正常的!尽量不要在两步验证中打错字——这会让你重新开始整个过程...根据你安装的版本使用pythonpython3

cd src/mcp_telegram
python3 telethon_auth.py

系统会要求你提供:

  • 你的电话号码(国际格式,带+)(不要留空格)
  • Telegram发送到你账户的验证码
  • 你的两步验证密码(如果启用)

这将在你的主目录中创建一个会话文件,以便你不必再次认证。

步骤5: 添加到Claude桌面版

编辑你的Claude桌面版配置文件:

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

或者,进入设置,点击开发者然后点击编辑配置。确保开发者模式已启用。

将以下内容添加到你的配置文件中(替换为你实际的凭证):

"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. 用你在步骤1中获得的实际值替换API凭证
  3. 设置你的电话号码为国际格式

步骤6(可选):

请注意,原文档中的代码块(如#0, #1, #2, #3, #4, #5)被保留为空,具体实现细节需根据实际情况填充。

如果你希望聊天机器人回复时听起来像你,可以自由配置 src/mcp_telegram 文件夹下的 convostyle.txt

就这样!

重启 Claude Desktop(退出并重新打开),你现在可以让 Claude 做以下事情:

  • 显示你最近的 Telegram 聊天记录
  • 从特定的聊天中读取消息
  • 将某些消息标记为“已读”
  • 向你的联系人或群组发送消息,并且听起来很自然

确保在向 Claude 提出请求时包含“Telegram”这个词,否则它可能无法理解。例如,“Claude, 我有没有未读的 telegram 消息?”

烦人的故障排除

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

ls -la ~/.mcp_telegram_*

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

rm /Users/username/.mcp_telegram_numberininternationalformat*

再次尝试步骤 3。

相关 MCP 服务