Telegram MCP服务器

一个强大的MCP服务器,使Claude能够与Telegram频道和群组交互,提供网页抓取和直接API访问功能。

  • by DLHellMe
  • TypeScript
  • 本地部署
  • 31 星标
  • 更新于
在 GitHub 查看 DLHellMe/telegram-mcp-server

使用说明

电报MCP服务器

强大的MCP(模型上下文协议)服务器,使Claude能够与Telegram频道和组进行交互。该服务器提供网络抓取和API对Telegram内容的直接访问。

🚀 特性

版本0.3.0-双模式操作

API模式(推荐)⚡

  • 快100倍 比网页抓取
  • 通过Telegram的MTProto协议直接访问
  • 频道内的搜索功能
  • 访问您所属的私人频道
  • 完整的消息元数据(视图、反应、转发)
  • 持久会话-一次身份验证
  • 无需浏览器自动化
  • 无限制的帖子检索 默认情况下

Web抓取模式🌐

  • 不需要API凭据
  • 使用Puppeteer进行基于浏览器的抓取
  • 对受限内容的身份验证支持
  • 视觉媒体提取
  • 适用于快速匿名访问

📋 先决条件

  • Node.js 18.0.0或更高版本
  • Chrome/Chromium(用于网页抓取模式)
  • 电报API凭证(用于API模式)- 把他们带到这儿来

🛠️ 安装

  1. 克隆此存储库:
git clone https://github.com/DLHellMe/telegram-mcp-server.git
cd telegram-mcp-server
  1. 安装依赖项:
npm install
  1. 复制示例环境文件:
cp .env.example .env
  1. 编辑 .env 并添加您的配置:

    • 对于API模式:添加您的 TELEGRAM_API_ID 和 TELEGRAM_API_HASH
    • 对于网页抓取:默认设置即用
  2. 构建项目:

npm run build

🔧 配置

获取Telegram API凭据

  1. 首选 https://my.telegram.org
  2. 使用您的电话号码登录
  3. 点击“API开发工具”
  4. 创建新应用程序
  5. 复制您的 api_id 和 api_hash 到 .env 文件

Claude桌面配置

将此添加到您的Claude Desktop配置文件中:

视窗: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "telegram-scraper": {
      "command": "node",
      "args": ["/absolute/path/to/telegram-mcp-server/dist/index.js"],
      "env": {
        "TELEGRAM_API_ID": "your_api_id",
        "TELEGRAM_API_HASH": "your_api_hash"
      }
    }
  }
}

📖 用法

配置后,重新启动Claude Desktop。克劳德将提供Telegram工具。

API模式工具

  1. telegram_api_login -使用Telegram进行身份验证(仅限首次)

    Use telegram_api_login to connect to Telegram
    
  2. api_scrape_channel -取消频道帖子(默认情况下不受限制)

    Use api_scrape_channel with url="https://t.me/channelname"
    

    或者有一个限制:

    Use api_scrape_channel with url="https://t.me/channelname" and max_posts=50
    
  3. api_search_channel -在频道内搜索

    Use api_search_channel with url="https://t.me/channelname" and query="keyword"
    

Web剪贴工具

  1. scrape_channel -废弃公共渠道

    Use scrape_channel with url="https://t.me/channelname"
    
  2. telegram_login -登录以获取受限内容

    Use telegram_login with phone="+1234567890"
    

🔒 数据存储

会话数据和Cookie存储在特定于平台的目录中:

  • 视窗: %APPDATA%\telegram-mcp-data
  • macOS: ~/Library/Application Support/telegram-mcp-data
  • Linux: ~/.config/telegram-mcp-data

你可以用以下命令覆盖它 TELEGRAM_DATA_PATH 环境变量。

🛡️ 安全说明

  • 永远不要承诺你的 .env 文件 -它包含敏感的API凭据
  • API证书是个人的-每个用户都需要自己的证书
  • 会话文件包含身份验证数据-确保其安全
  • 使用 .gitignore 防止意外提交的文件

📝 发展

# Run in development mode
npm run dev

# Build the project
npm run build

# Watch for changes
npm run watch

🤝 贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 提交拉取请求

📄 许可证

MIT许可证-有关详细信息,请参阅许可证文件

🙏 致谢

内置:

⚠️ 免责声明

此工具用于教育和研究目的。请尊重Telegram的服务条款和频道成员的隐私。在抓取私人频道之前,务必获得许可。

🐛 故障排除

API模式问题

  • “未连接到Telegram API”:运行 telegram_api_login 第一
  • 电话号码格式:包括国家代码(例如+1234567890)
  • 2FA错误:在提示时输入您的2FA密码

Web抓取问题

  • “未找到Chrome二进制文件”:安装Chrome或Chromium
  • 登录问题:确保使用正确的电话格式
  • 超时错误:增加 BROWSER_TIMEOUT 在……里面 .env

📞 支持

  • 在GitHub上创建bug问题
  • 在创建新问题之前检查现有问题
  • 报告问题时包括错误消息和日志