关于 Telegram
Telegram MCP Server 通过 Telegram API 让 AI Agent 和其他 MCP 客户端与 Telegram 交互。它提供聊天列表、消息读取和发送,以及调用任意 API 方法的工具,并通过会话文件保留授权状态。
主要功能
- 01列出用户对话
- 02读取指定聊天的消息
- 03向指定聊天发送消息
- 04执行 Telegram API 方法
- 05保存已授权会话
适用场景
- 01查看最近的聊天列表
- 02读取某个聊天的消息
- 03通过指定聊天发送文本
- 04调用其他 Telegram API 操作
MCP 相关
该服务向 MCP 客户端提供获取对话、读取和发送消息及执行 Telegram API 方法的工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Telegram MCP 服务
English version | Русская версия
通过模型上下文协议(MCP)与 Telegram API 交互的服务。允许 AI Agent 和其他 MCP 客户端与 Telegram 交互。
要求
- Node.js 14+(或更高版本)
- npm
- Telegram 提供的 API ID 和 API Hash
安装
-
克隆仓库:
git clone https://github.com/kdoronin/telegram_mcp cd telegram-mcp -
安装依赖:
npm install(这将安装所需的软件包:
gramjs、@modelcontextprotocol/sdk、zod等。) -
创建并配置
.env文件:# Copy the example .env file cp .env.example .env编辑
.env文件并指定API_ID和API_HASH。 -
获取 API ID 和 API Hash:
- 前往 my.telegram.org
- 登录你的账户
- 前往“API development tools”
- 创建新应用
- 将
api_id和api_hash复制到.env文件中
运行
运行的重要说明
主服务文件 mcp-server.js 位于项目根目录,因此运行时不会出现路径问题。
选项 1:通过 npm(推荐)
npm run mcp # Run from the project root directory
选项 2:直接通过 node 执行
# Run from the project root directory
node mcp-server.js
选项 3:作为可执行文件运行
# From the project root
./mcp-server.js
选项 4:全局安装后运行
npm install -g . # Install the package globally
telegram-mcp # Run the globally installed package
与 MCP 客户端集成
在 Cursor 中配置
- 打开 Cursor 设置
- 前往 Features -> MCP Servers
- 点击“Add new MCP server”
- 配置服务:
- 名称:
telegram(或其他名称) - 类型:
command - 命令:
node /full/path/to/project/mcp-server.js - 也可以使用:
npx telegram-mcp(全局安装后)
- 名称:
在 Claude Desktop 中配置
- 打开 Claude Desktop 设置
- 前往 Tools -> MCP
- 点击“Add New Server”
- 配置服务:
- 名称:
telegram(或其他名称) - 类型:
command - 命令:
node /full/path/to/project/mcp-server.js - 也可以使用:
npx telegram-mcp(全局安装后)
- 名称:
检查功能
服务启动时:
- 将从
.env文件加载设置 - 检查是否存在已保存的会话
- 如果没有会话,将提示创建新会话(需要输入电话号码和确认码)
可用工具
MCP 服务提供以下工具:
getDialogs:获取用户对话(聊天)列表。- 参数:
session(字符串,必填)、limit(整数,可选,默认值:100)。
- 参数:
getMessages:获取指定聊天中的消息。- 参数:
session(字符串,必填)、chatId(字符串,必填)、limit(整数,可选,默认值:100)。
- 参数:
sendMessage:向指定聊天发送消息。- 参数:
session(字符串,必填)、chatId(字符串,必填)、message(字符串,必填)。
- 参数:
executeMethod:执行任意 Telegram API 方法(请谨慎使用)。- 参数:
session(字符串,必填)、method(字符串,必填)、params(对象,可选)。
- 参数:
注:session 参数通常是国际格式的用户电话号码(例如:+79001234567)。
提示词中的使用示例
Using the telegram.getDialogs tool for session +79001234567, show me the last 5 chats.
With telegram.sendMessage for session +79001234567, send the message "Hello from my AI assistant!" to chat with ID 'username_or_chat_id'.
授权
首次使用某个 session(电话号码)时,服务会在其运行所在的控制台中请求输入确认码。输入从 Telegram 收到的代码即可授权该会话。
如果启用了双重身份验证(2FA),还需要输入 Telegram 密码。如果密码输入错误,系统会提示重新输入(最多 3 次)。
授权成功后,会话将保存到 sessions/ 目录中的文件,并用于后续请求。
会话文件结构
会话以 JSON 文件的形式存储在 sessions/ 目录中,文件名为电话号码(例如:+79001234567.json)。每个文件包含:
- 会话字符串(加密的授权令牌)
- 创建/更新时间戳
故障排查
-
错误“Your API ID or Hash cannot be empty or undefined”
- 检查
.env文件是否位于项目根目录 - 确保其中正确指定了 API_ID 和 API_HASH
- 从项目根目录运行服务
- 检查
-
服务未找到已保存的会话
- 检查执行路径(应从项目根目录运行)
- 检查
sessions/目录中是否存在会话文件 - 尝试运行
npm run mcp
-
授权错误
- 如果输入了错误的 2FA 密码,系统会提示你重新输入
- 如果所有尝试次数都已用尽,请删除会话文件并重试
安全
- 不要与第三方分享你的 API ID 和 API Hash。
- 请在可信环境中运行服务。
- 会话文件包含敏感数据。 请将其存放在安全的位置,不要分享。
executeMethod工具允许执行任意 Telegram API 方法。请谨慎使用,因为它可能执行破坏性操作。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。