Telegram确认桥接器

一个通过Telegram从MCP代理(如Antigravity)请求人工确认的桥接服务。

  • by aralroca
  • JavaScript
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 aralroca/telegram-bot-mcp

使用说明

电报确认MCP网桥

一个简单的桥梁,通过电报向MCP代理(如Antigravity)请求人类确认。

反重力配置

要将此服务器添加到Antigravity配置(或任何MCP客户端),请使用以下JSON块。

您需要替换:

  • <ABSOLUTE_PATH> 使用克隆此存储库的绝对路径。
  • <YOUR_VERCEL_URL> 使用您的Vercel部署URL(例如。, https://my-telegram-bot.vercel.app).
{
  "mcpServers": {
    "telegram-bot": {
      "command": "node",
      "args": ["<ABSOLUTE_PATH>/telegram-bot-mcp/mcp-server.js"],
      "env": {
        "VERCEL_URL": "https://<YOUR_VERCEL_URL>"
      }
    }
  }
}

解释

此脚本(mcp-server.js)作为a 本地代理。代理通过以下方式与它通信 stdio (标准),脚本向您的Vercel后端发出HTTP请求,管理问题传递和轮询(主动等待)以获得响应。


建筑

  1. 代理商(本地) → calls ask_telegram_confirmation
  2. 本地代理(mcp-server.js) → calls POST /api/confirm Vercel
  3. 维塞尔 → 向Telegram Bot发送消息
  4. 用户 → 在手机上回答“是/否”
  5. 电报 → 调用Webhook POST /api/webhook Vercel
  6. 维塞尔 → 将响应保存在Redis中(Upstash)
  7. 本地代理 → 通过轮询接收响应 GET /api/confirm-status
  8. 代理 → 收到结果“用户回复:是”

安装和部署

1.克隆和准备

git clone https://github.com/aralroca/telegram-bot-mcp.git
cd telegram-bot-mcp
npm install

2.配置Telegram

  1. 交谈 @BotFather 创建机器人(/newbot).
  2. 保存 BOT_TOKEN.
  3. 得到你的 CHAT_ID (向机器人发送消息并检查 https://api.telegram.org/bot<TOKEN>/getUpdates).

3.部署到Vercel

npm run deploy

在Vercel中配置环境变量:

  • BOT_TOKEN:您的Telegram令牌。
  • CHAT_ID:您的聊天ID。
  • ALLOWED_USER_ID:您的数字用户ID(出于安全考虑)。

配置 升级Redis (来自Vercel Marketplace)以获得持久性。

4.配置Webhook

部署后,使用您的Vercel URL注册Telegram webhook:

https://api.telegram.org/bot<BOT_TOKEN>/setWebhook?url=https://<YOUR_VERCEL_URL>/api/webhook

故障排除和提示

Vercel“401未经授权”

如果代理收到401错误,可能是由于 Vercel部署保护.

  • 转到您的Vercel仪表板→ 设置 → 部署保护.
  • 禁用“Vercel身份验证”.
  • 这允许本地MCP代理和Telegram网络挂钩访问您的API。

2.禁止(403)

确保 ALLOWED_USER_ID 在您的Vercel环境中,变量与您的实际Telegram用户ID匹配。您可以通过向发送消息来查找您的ID @userinfobot.

3.状态持久化(Redis)

这座桥使用 瑞迪斯 在等待您的回复时跟踪问题。

  • 使用 Vercel市场 添加 升级Redis.
  • 确保它 连接 在您的项目中 存储 选项卡。
  • 我们支持REST协议(UPSTASH_REDIS_REST_URL)标准Redis协议(REDIS_URL).
  • 重新部署 连接存储后的项目。

4.连续轮询(等待状态)

如果代理在您回答“是”后仍处于“等待”状态:

  • 通过访问检查Redis是否正确初始化 https://<YOUR_VERCEL_URL>/health.
  • 你应该看看 "redis_initialized": true.

5.稳定的URL

始终使用 生产领域 (例如。, my-project.vercel.app)在您的反重力配置中 VERCEL_URL 环境变量。使用特定的部署URL(带有哈希的URL)将在下次部署后停止工作。

如何与Agent一起使用

要触发确认,您应该按MCP服务器的名称(在您的配置中定义,例如。, telegram-bot)在你的提示下。这有助于代理选择正确的工具。

示例提示:

  • “使用 电报机器人 在删除任何文件之前,请先征求我的确认。"
  • “告诉 电报机器人 向我发送确认请求以继续部署。"

接下来会发生什么:

  1. 代理将从调用该工具 telegram-bot 服务器。
  2. 您将在Telegram上收到来自您的机器人的消息: Should I proceed? Reply: YES / NO.
  3. 在轮询Vercel时,代理将保持“等待”状态。
  4. 一旦你回复 是 或 不 在您的手机上,代理将收到答案并继续执行任务。