Telegram MCP Server 使用说明

项目简介

Telegram MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务,它扩展了 LLM 应用与 Telegram 平台交互的能力。通过此服务器,LLM 可以调用预设的工具,例如向 Telegram 用户发送消息或请求用户回复,从而实现更丰富的 Telegram 机器人应用场景。

主要功能点

  • 发送消息: LLM 可以通过 'send_message' 工具向指定的 Telegram 聊天 ID 发送文本消息。
  • 请求用户输入: LLM 可以通过 'request_user_input' 工具向 Telegram 用户发送提示消息,并等待用户在 Telegram 中的回复,获取用户输入内容。
  • 安全验证: 服务器配置允许的 Telegram 聊天 ID 列表,只处理来自白名单用户的消息,增强安全性。
  • 配置灵活: 通过 'config.json' 文件配置 Telegram Bot Token 和允许的聊天 ID,方便管理和部署。

安装步骤

  1. 克隆仓库: 将 GitHub 仓库 'https://github.com/lane83/mcp-telegram' 克隆到本地。
  2. 安装 Node.js: 确保你的系统已安装 Node.js 18 或更高版本。
  3. 安装依赖: 在项目根目录下,打开终端并运行 'npm install' 命令安装项目依赖。
  4. 配置 config.json:
    • 在项目根目录下创建 'config.json' 文件。
    • 根据 'config.template.json' (如果仓库中有提供) 或以下模板,配置你的 Telegram Bot Token 和允许的聊天 ID 列表。
    {
      "telegram": {
        "botToken": "YOUR_TELEGRAM_BOT_TOKEN",  // 替换为你的 Telegram Bot Token
        "allowedChatIds": [CHAT_ID_1, CHAT_ID_2] // 替换为允许交互的 Telegram 聊天 ID 列表,可以添加多个
      }
    }
    • 获取 Telegram Bot Token: 在 Telegram 中搜索 @BotFather 并按照指示创建新的 Bot,获取 Bot Token。
    • 获取 Telegram Chat ID: 可以通过 Telegram Bot (例如 @userinfobot) 获取你的或群组的 Chat ID。
  5. 构建和运行: 在终端中运行 'npm run build && npm start' 命令,构建并启动 Telegram MCP Server。

服务器配置 (MCP 客户端配置)

MCP 客户端需要配置以下 JSON 信息以连接到 Telegram MCP Server:

{
  "serverName": "telegram-server",
  "command": "node",
  "args": [
    "src/telegram-server/index.js"
  ]
  // "serverName":  MCP 服务器的名称,用于标识和管理连接。
  // "command":     启动服务器的命令,这里使用 Node.js 运行 JavaScript 文件。
  // "args":        启动命令的参数,指向服务器入口文件 'src/telegram-server/index.js'。
}

基本使用方法

  1. 启动服务器: 按照安装步骤启动 Telegram MCP Server。
  2. 配置 MCP 客户端: 在你的 MCP 客户端应用中,配置上述服务器配置信息,建立与 Telegram MCP Server 的连接。
  3. 调用工具: 通过 MCP 客户端,你可以调用服务器提供的 'send_message' 和 'request_user_input' 工具,实现 LLM 应用与 Telegram 的交互。例如,调用 'send_message' 工具时,需要提供 'chatId' (目标 Telegram 聊天 ID) 和 'message' (要发送的消息内容) 作为参数。调用 'request_user_input' 工具时,需要提供 'chatId' (目标 Telegram 聊天 ID) 和 'prompt' (用户提示语)。
  4. 处理响应: MCP 客户端会接收到服务器返回的 JSON-RPC 响应,包含工具执行的结果。例如,'send_message' 工具成功执行后会返回 "Message sent successfully" 的文本内容, 'request_user_input' 工具会在用户在 Telegram 中回复后返回用户输入的文本内容。

信息

分类

通信与社交