Vercel上的Telegram Bot+MCP服务器
可在Vercel上部署的基于TypeScript的Telegram Bot和模型上下文协议(MCP)服务器集成项目。
🚀 特点
- TypeScript 100%:完全类型稳定性
- 维塞尔최적화:针对无服务器环境
- MCP集成:内置Model Context Protocol服务器
- Telegraf框架:强大的Telegram Bot功能
- 立即部署:仅通过设置环境变量即可完成部署
📋 前提条件
- Node.js 18.0.0或更高版本
- Telegram Bot令牌
- Vercel帐户
🛠️ 安装和设置
1.克隆项目
git clone
cd telegram-bot-mcp-vercel2.安装依赖性
npm install
# 또는
yarn install3.设置环境变量
cp .env.example .env.env 编辑文件以设置以下值:
BOT_TOKEN=your_telegram_bot_token_here
WEBHOOK_URL=https://your-vercel-app.vercel.app/webhook4.本地开发
npm run dev🚀 Vercel分发
1.使用Vercel CLI
# Vercel CLI 설치 (처음만)
npm i -g vercel
# 배포
vercel2.GitHub联合部署
- 将项目推送到GitHub
- Vercel仪表板在Import
- 设置环境变量:
- BOT_TOKEN:电报机器人令牌 - WEBHOOK_URL:部署的URL+/webhook
3.设置网络钩子
部署完成后,必须在Telegram上注册Webhook:
curl -X POST "https://api.telegram.org/bot/setWebhook" \
-H "Content-Type: application/json" \
-d '{"url": "https://your-vercel-app.vercel.app/webhook"}'🤖 Bot命令
/start-启动机器人并发出欢迎信息/help-查看帮助/mcp-检查MCP服务器状态/ping-测试服务器响应/echo [메시지]-模仿消息
🔧 MCP服务器功能
端点
GET /mcp-MCP服务器状态和信息POST /mcp-处理MCP请求
交付工具
- 生成端点:创建API端点
- 分析api:API分析
- 分析电报信息:分析Telegram消息
交付资源
- api规范:Telegram Bot API명세서
📁 项目结构
telegram-bot-mcp-vercel/
├── api/
│ ├── webhook.ts # Telegram Bot 웹훅 핸들러
│ └── mcp.ts # MCP 서버 구현
├── package.json # 프로젝트 설정
├── tsconfig.json # TypeScript 설정
├── vercel.json # Vercel 배포 설정
├── .env.example # 환경변수 예시
└── README.md # 프로젝트 문서🔍 API测试
Telegram Bot测试
您可以通过与机器人对话来测试功能。
测试MCP服务器
# 서버 상태 확인
curl https://your-vercel-app.vercel.app/mcp
# 도구 목록 조회
curl -X POST https://your-vercel-app.vercel.app/mcp \
-H "Content-Type: application/json" \
-d '{"method": "tools/list"}'🛡️ 安全注意事项
- BOT_TOKEN绝对不要在代码中硬编码
- 仅通过Vercel环境变量管理敏感信息
- 在生产中添加Webhook URL验证
📚 参考资料
🤝 贡献
- 分叉项目
- 创建功能分支(
git checkout -b feature/AmazingFeature) - 提交您的更改(
git commit -m 'Add some AmazingFeature') - 推到分支机构(
git push origin feature/AmazingFeature) - 打开拉取请求
📄 许可证
该项目在MIT许可下分发。
解决问题
常见问题
1.Bot没有回应
- 验证BOT_TOKEN设置是否正确
- 验证Webhook是否已正确注册
- 检查Vercel函数日志
2.MCP服务器错误
- 验证MCP SDK版本兼容性
- 检查TypeScript编译错误
3.部署失败
- 检查Node.js版本(18.0.0或更高版本)
- 验证环境变量设置
如果需要更多帮助,请创建Issues!
