Telegram集成服务器

一个强大的Telegram集成服务器,提供多种工具用于管理联系人、发送消息和通过多客户端协议(MCP)检索频道信息。

  • by wolderufael
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 wolderufael/telegram-mcp-server

使用说明

电报MCP服务器

一个功能强大的Telegram集成服务器,通过MCP(多客户端协议)提供各种工具来管理联系人、发送消息和检索频道信息。

特性

  • 联系人管理

    • 获取联系人列表
    • 搜索联系人
    • 获取上次交互
  • 消息传递

    • 按姓名或电话号码向联系人发送消息
    • 通过日期范围过滤获取聊天记录
    • 查看上次交互
  • 通道功能

    • 从频道获取帖子
    • 搜索频道
    • 查看频道信息
    • 按日期范围筛选帖子

先决条件

  • Python 3.8或更高版本
  • Node.js 14或更高版本(适用于npx安装)
  • 电报API凭证(API_id和API_hash)
  • Telegram帐户

安装

  1. 克隆存储库:
git clone https://github.com/yourusername/telegram-MCP-server.git
cd telegram-MCP-server
  1. 安装所需的依赖项:
uv venv .venv  # Create a virtual environment
source .venv/bin/activate  # Activate it (Linux/macOS)
.\venv\Scripts\activate  # Activate it (Windows)
uv pip install .
  1. 获取您的Telegram API ID和API哈希:
  • 首选https://my.telegram.org
  • 使用您的电话号码登录
  • 点击“API开发工具”
  • 填写必填字段(您可以使用任何应用程序标题和简称)
  • 提交后,您将看到您的API ID和API哈希
  1. 创建一个 .env 使用您的Telegram凭据在项目根目录中创建文件:
TG_API_ID=your_api_id
TG_API_HASH=your_api_hash
phone=your_phone_number  # Format: +1234567890
  1. 首次验证您的电报
uv run telegram_auth.py

在提示时输入您通过电报收到的代码。

与Cursor/Claude桌面集成

将以下json与相应的{{PATH}}值一起复制:

{
  "mcpServers": {
    "telegram": {
      "command": "{{PATH_TO_UV}}", // Run `which uv` and place the output here
      "args": [
        "--directory",
        "{{PATH_TO_SRC}}\\telegram-mcp-server", // cd into the repo, run `pwd` and enter the output here + "/whatsapp-mcp-server"
        "run",
        "main.py"
      ]
    }
  }
}

对于 克劳德,将此另存为 claude_desktop_config.json 在您的Claude Desktop配置目录中:

~/Library/Application Support/Claude/claude_desktop_config.json

对于 光标,将此另存为 mcp.json 在Cursor配置目录中:

~/.cursor/mcp.json

工具文档

get_contacts()

返回所有Telegram联系人的列表,包括他们的姓名、电话号码和用户名。

send_message_by_identifier(标识符:str,消息:str)

向通过姓名或电话号码标识的联系人发送消息。

  • identifier:联系人姓名或电话号码
  • message:要发送的短信

get_last_interaction(标识符:str)

返回与特定联系人交换的最新消息。

  • identifier:联系人姓名或电话号码

get_chat_history(标识符:str,开始日期:str=None,结束日期:str=None,限制:int=20)

检索指定时间范围内与联系人的聊天历史记录。

  • identifier:联系人姓名或电话号码
  • start_date:可选开始日期(YYYY-MM-DD)
  • end_date:可选结束日期(YYYY-MM-DD)
  • limit:要返回的最大邮件数

get_channel_posts(channel_name:str,start_date:str=None,end_date:stru=None,限制:int=20)

从Telegram频道获取帖子。

  • channel_name:频道用户名或名称
  • start_date:可选开始日期(YYYY-MM-DD)
  • end_date:可选结束日期(YYYY-MM-DD)
  • limit:返回的最大职位数

错误处理

该服务器包括全面的错误处理功能,用于:

  • 无效凭证
  • 网络问题
  • 速率限制
  • 无效参数
  • 权限错误

安全考虑

  • 安全存储API凭据
  • 永远不要分享你的 .env 文件
  • 在生产中使用环境变量
  • 对生产使用实施限速
  • 监控使用情况并实施日志记录

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 提交您的更改
  4. 推到分支
  5. 创建拉取请求

许可证

该项目根据MIT许可证获得许可。请参阅 许可证 文件以获取详细信息。

致谢

  • Telegram API集成的Telethon库
  • 服务器框架的FastMCP