MCP Telegram 连接器
一个简单的MCP服务器,允许克劳德访问您的Telegram账户,以代表您阅读和发送消息。
服务介绍
Telegram MCP 服务器
这是一个简单的MCP服务器,可以让Claude访问你的Telegram账号来读取和发送消息。
功能
get_chats: 获取你的Telegram聊天列表send_message: 向某个聊天发送消息get_message: 从某个聊天获取消息并打印未读消息mark_messages_read: 将消息标记为已读get_conversation_context: 获取过去的20条消息,并读取convostyle.txt以确定合适的回复
设置
步骤1: 获取你的Telegram API凭证
- 访问 https://my.telegram.org/apps
- 登录并创建一个应用(或使用现有的一个)
- 记下你的API ID 和 API 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: 运行认证
运行以下命令进行认证。如果你启用了两步验证,在输入密码时不会看到任何文本出现在终端上。这是正常的!尽量不要在两步验证中打错字——这会让你重新开始整个过程...根据你安装的版本使用python或python3:
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)。
非常重要:
- 使用Python和main.py脚本的完整绝对路径
- 用你在步骤1中获得的实际值替换API凭证
- 设置你的电话号码为国际格式
步骤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。