Telegram MCP Server

Telegram MCP Server

site icon
2025.04.18 4
PythonTelegram 消息管理自动化消息处理交流协作
mcp-telegram 是一个简单的 MCP 服务器,允许 Claude 访问您的 Telegram 账户,以读取和发送消息。它提供了多种功能,包括获取聊天列表、发送消息、获取未读消息、标记消息为已读以及获取对话上下文等。
View on GitHub

Overview

基本能力

产品定位

mcp-telegram 是一个用于 Telegram 消息管理的 MCP 服务器,旨在通过 Claude 自动化处理 Telegram 消息的读取和发送。

核心功能

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

适用场景

  • 自动化管理 Telegram 消息
  • 通过 Claude 读取和发送 Telegram 消息
  • 批量处理未读消息
  • 自定义聊天机器人回复风格

工具列表

  • Telethon: 用于与 Telegram API 交互的 Python 库
  • mcp-sdk: MCP 开发工具包
  • python-dotenv: 用于管理环境变量
  • nest_asyncio: 用于异步编程

常见问题解答

  • 认证问题: 确保在输入 2FA 密码时不要出错,否则需要重新开始认证过程。
  • 路径问题: 确保在配置文件中使用绝对路径。
  • 会话文件问题: 如果认证失败,可以尝试删除 ~/.mcp_telegram_* 文件并重新认证。

使用教程

使用依赖

  1. 安装 Git
  2. 安装 Python 3

安装教程

  1. 克隆仓库并进入目录
git clone https://github.com/alexandertsai/mcp-telegram
cd mcp-telegram
  1. 设置虚拟环境并安装依赖
pip install uv
uv venv
source .venv/bin/activate
uv add mcp-sdk telethon python-dotenv nest_asyncio
  1. 设置环境变量
export TELEGRAM_PHONE=phone number with country code and no spaces
export TELEGRAM_API_ID=api_id
export TELEGRAM_API_HASH=api_hash
  1. 运行认证脚本
cd src/mcp_telegram
python3 telethon_auth.py
  1. 配置 Claude Desktop

编辑 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"
          }
      }
  }

调试方式

  1. 检查环境变量是否设置正确
printenv
  1. 检查会话文件是否存在
ls -la ~/.mcp_telegram_*
  1. 删除会话文件并重新认证
rm /Users/username/.mcp_telegram_numberininternationalformat*

许可证

该项目遵循 Apache-2.0 开源许可条款,请参阅 Apache-2.0 了解完整条款。