使用说明

项目简介

Telegram MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在将 Telegram 的功能集成到支持 MCP 协议的 LLM 客户端(如 Claude 和 Cursor)中。它允许 LLM 通过标准化的工具访问您的 Telegram 消息记录、联系人信息,并执行发送消息等操作,从而增强 LLM 在 Telegram 场景下的应用能力。

该项目包含两个主要组件:

  1. Telegram Bridge: 负责与 Telegram API 交互,同步消息数据到本地 SQLite 数据库,并提供 HTTP API 供 MCP Server 调用。
  2. Telegram MCP Server: 实现了 MCP 协议,对外暴露一系列工具,LLM 客户端可以通过这些工具查询 Telegram 数据和发送消息。

主要功能点

  • 搜索联系人 (search_contacts): 允许 LLM 根据名称或用户名搜索 Telegram 联系人。
  • 列出消息 (list_messages): 允许 LLM 检索指定聊天或联系人的消息记录,支持按日期范围、发送者、关键词等过滤,并可选择返回上下文消息。
  • 列出聊天 (list_chats): 允许 LLM 列出 Telegram 聊天列表,支持按名称、类型等过滤。
  • 获取聊天信息 (get_chat): 允许 LLM 获取指定 ID 的聊天详细信息。
  • 通过联系人获取私聊 (get_direct_chat_by_contact): 允许 LLM 通过联系人 ID 获取与其的私聊信息。
  • 获取联系人的聊天列表 (get_contact_chats): 允许 LLM 获取包含特定联系人的所有聊天列表。
  • 获取最近互动消息 (get_last_interaction): 允许 LLM 获取与特定联系人的最近一条消息。
  • 获取消息上下文 (get_message_context): 允许 LLM 获取指定消息的前后几条消息,以理解上下文语境。
  • 发送消息 (send_message): 允许 LLM 向指定的用户名或聊天 ID 发送 Telegram 消息。

安装步骤

  1. 克隆仓库

    git clone https://github.com/Muhammad18557/telegram-mcp.git
    cd telegram-mcp
  2. 创建并激活 Python 虚拟环境

    python3 -m venv myenv
    source myenv/bin/activate
  3. 安装依赖

    pip install -r requirements.txt
  4. 获取 Telegram API 凭证

  5. 配置 Telegram API 凭证

    • 进入 'telegram-bridge' 目录:'cd telegram-bridge'
    • 复制 '.env.example' 文件为 '.env':'cp .env.example .env'
    • 编辑 '.env' 文件,填入您的 Telegram API ID 和 API hash。
  6. 配置 MCP 服务器启动脚本路径

    • 编辑 'run_telegram_server.sh' 文件,将 'BASE_DIR' 变量的值修改为您的 'telegram-mcp' 仓库的绝对路径。可以使用 'pwd' 命令获取当前仓库的绝对路径。

服务器配置

要将 Telegram MCP Server 集成到 MCP 客户端(如 Claude 或 Cursor),您需要配置客户端的 MCP 配置文件。以下是配置示例,请根据您的客户端类型选择相应的配置文件和路径。

Claude Desktop 配置 ( '~/Library/Application\ Support/Claude/claude_desktop_config.json' )

{
  "mcpServers": {
    "telegram": {
      "command": "/bin/bash",
      "args": [
        "{{BASE_DIR}}/run_telegram_server.sh"
      ]
    }
  }
}

Cursor 配置 ( '~/.cursor/mcp.json' )

{
  "mcpServers": {
    "telegram": {
      "command": "/bin/bash",
      "args": [
        "{{BASE_DIR}}/run_telegram_server.sh"
      ]
    }
  }
}

配置参数说明:

  • '"telegram"': 服务器名称,在客户端中用于标识和选择 Telegram 集成。
  • '"command"': 启动服务器的命令,这里使用 '/bin/bash' 来执行 shell 脚本。
  • '"args"': 传递给 'command' 的参数列表。
    • '"{{BASE_DIR}}/run_telegram_server.sh"': 执行 'run_telegram_server.sh' 脚本,'{{BASE_DIR}}' 会被客户端替换为您的仓库根目录的绝对路径。

注意:

  • 请确保 'run_telegram_server.sh' 脚本中的 'BASE_DIR' 变量已正确配置为您的仓库绝对路径。
  • 将上述 JSON 配置保存到对应客户端的配置文件中,并确保文件路径正确。

基本使用方法

  1. 启动 Telegram Bridge 和 MCP Server: 'run_telegram_server.sh' 脚本会同时启动 Telegram Bridge 和 MCP Server。
  2. 重启 Claude Desktop 或 Cursor: 重启您的 MCP 客户端,客户端应该能够检测到并连接到 Telegram MCP Server。
  3. 在客户端中使用: 在 Claude 或 Cursor 中,您应该能够看到 Telegram 集成选项。通过自然语言指令,您可以指示 LLM 使用 Telegram 工具来搜索联系人、查询消息、发送消息等。例如,您可以对 Claude 说 "Search for messages from John about project updates in Telegram" 或 "Send a message to group 'Team Project' in Telegram saying 'Meeting postponed to tomorrow'"。

重要提示:

  • 首次运行 Telegram Bridge 时,需要根据提示在终端中输入您的 Telegram 手机号码和验证码以完成身份验证。
  • 首次同步消息记录可能需要一些时间,特别是当您的 Telegram 消息较多时。

信息

分类

通信与社交