Telegram通知集成工具

一个基于Python的模型上下文协议(MCP)客户端和服务器,使LLM能够通过Telegram发送通知并接收用户响应。

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

使用说明

MCP与Telegram集成示例

基于Python的模型上下文协议(MCP)客户端和服务器,使LLM能够通过Telegram发送通知并接收用户响应。

特性

  • 向Telegram聊天发送文本提醒,并可自定义紧急程度
  • 检查具有可配置超时的用户回复
  • 与MCP兼容的LLM应用程序集成的灵活模板

MCP与函数调用或代理工具

MCP协议(模型上下文协议):

  • 将法学硕士的推理(“上下文”)与外部行动的执行分开。例如,LLM决定采取什么行动,MCP服务器处理如何执行该行动。
  • 这种解耦意味着您可以在不更改核心LLM模型或其提示的情况下更新或交换外部工具。
  • 它还允许更安全、更可控地执行操作。

LLM函数调用或代理:

  • 直接函数调用或基于代理的方法通常会混合决策和执行逻辑,这会使系统模块化程度降低。
  • 执行操作方式的更改可能需要重新设计代理或修改LLM的提示,从而增加维护难度。

先决条件

  • Python 3.11+
  • Telegram机器人代币(来自 @植物学家)
  • 您的Telegram聊天ID

安装

  1. 克隆存储库:
    git git@github.com:arananet/mcp-telegram-poc.git
    cd mcp-telegram-poc
    
  2. 安装依赖项:
    pip install -r requirements.txt
    
  3. 创建虚拟环境:
    python3 -m venv .venv
    
  4. 复制 .env.example 向 .env 并填写您的Telegram凭据:
    cp .env.example .env
    nano .env
    

配置

编辑 .env 与:

  • TELEGRAM_BOT_TOKEN=你的赌注_在这里
  • TELEGRAM_CHAT_ID=你的帽子在这里
  • OPENAI_API_KEY=your_OPENAI_apikey

获取Telegram Bot令牌

  1. 与聊天 @植物学家 在Telegram上。
  2. 发送 /newbot 并在此电报之后提供一个名称(例如mcp_example),然后提供一个用户名(例如mci_example_bot),botfather将用令牌进行回复。
  3. 复制提供的令牌。

查找您的聊天ID

  1. 向您的机器人发送消息(转到创建的机器人并发送一些示例,例如嗨)。
  2. 访问 https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates.
  3. 查找 chat 对象的 id 现场。您将看到类似这样的内容(例如“聊天”:{“id”:107184517,“first_name”:“Edu”,“last_name”:”Arana“…),聊天id为107184517。

用法

独立运行

python3 src/mcp_handler.py

程序化使用

对于发送和接收警报的测试:

python3 examples/test_client.py

代理集成

用于使用autogen 0.4框架的代理测试MCP的集成

python3 examples/test_autogen_agent.py

本地测试

使用测试脚本(Linux/macOS):

chmod +x test_server.sh
./test_server.sh

可用工具

send_alert

  • 参数:
    • message (str,必填):要发送的消息(支持Markdown)。
    • project (str,必填):项目名称。
    • urgency (str,可选):“低”、“中”、“高”(默认值:“中”)。
  • 描述:发送电报警报并等待回复。

check_reply

  • 参数:
    • message_id (int,必填):要检查的消息ID。
    • timeout_seconds (int,可选):等待时间(默认值:60)。
  • 描述:针对特定消息的回复进行民意调查。

发展

  • 安装依赖项: pip install -r requirements.txt
  • 运行服务器: python3 src/mcp_handler.py
  • 测试客户端: python3 examples/test_client.py
  • 测试代理: python3 examples/test_autogen_agent.py

例子

这 examples 文件夹包含:

  • test_server.py:独立运行服务器。

  • test_client.py:演示客户端交互。

  • test_autogen_agent.py:演示AutoGen Agent之间的MCP集成

  • 在images文件夹中,您可以找到一些测试的截图。

开发者

  • 爱德华多·阿兰纳

可用性

  • MCPHub认证https://mcphub.com/mcp-servers/arananet/mcp-telegram-poc