🐍 MCP Telegram 代理
🖋 基于Telegram的智能代理,具备本地存储(SQLite)、向量知识库、与MCP工具集成以及通过Docker Compose或systemd自动启动的功能。
⚡ 功能
- 通过带有指令的Telegram机器人进行对话
/help和/health。 - 会话记忆:SQLite中带有上下文理解的完整对话历史。
- 向量数据库:在文件夹中搜索本地文档(轻量级嵌入)
knowledge/。 - MCP工具(3件):
weather,github,stackoverflow。 - 上下文理解:代理记住名字,回答有关对话的问题。
- 部署:Docker Compose 或 systemd 单元。
📌 克隆仓库
git clone https://github.com/AndreyBychenkow/my_mcp_bot_agent.git🚀 快速启动(本地)
- 创建
.env:
- TELEGRAM_BOT_TOKEN=... - (可选) GITHUB_PERSONAL_ACCESS_TOKEN= — 用于提高GitHub API的限制
- 安装依赖项:
pip install -e .(可选,如果不使用Docker)。 - 无需Docker的启动(在单独的终端中):
- python -m src.mcp_servers.weather.server - python -m src.mcp_servers.github.server - python -m src.mcp_servers.stackoverflow.server - python -m src.telegram_bot.bot
- 在Telegram上:请检查
/health,然后使用以下请求格式。
🚀 通过 Docker 部署
docker compose up -d --build服务:
agentTelegram机器人mcp_weather,mcp_github,mcp_stackoverflow
🚀 通过 systemd 部署
复制 deploy/agent.service (此处“в”在俄语中通常作为介词使用,但单独出现时没有具体含义,若作为句子或短语的一部分,需结合上下文翻译。若单独作为开头,可能表示开始或引入某个话题,但直接翻译无具体对应中文词汇,故在此处保留原样或根据上下文灵活处理。) /etc/systemd/system/,然后:
sudo systemctl daemon-reload
sudo systemctl enable agent
sudo systemctl start agent确保 .env (注:原文“(с”似乎是一个不完整的表达或特定上下文中的符号,没有足够的信息来准确翻译,因此这里仅保留原样并说明其不完整性。) TELEGRAM_BOT_TOKEN)位于目录中 WorkingDirectory 并指出在 EnvironmentFile。
🧷 MCP工具
- 天气Open-Meteo搜索城市+当前天气(无需密钥)。
- github(注:这是一个专有名词,通常不翻译,直接使用原词,意为“一个代码托管平台”或具体指“GitHub网站”)公开API(无密钥,限制较少;带
GITHUB_PERSONAL_ACCESS_TOKEN— 超过限额)。 - Stack Overflow(一个编程问答网站)Stack Exchange API 用于搜索问题/答案(无需密钥)。
限制:公开API对请求频率有限制。
📝 对话日志
文件夹 conversations/ 保存Cursor对话导出内容以及(可选)会话JSON日志。
建议不要将日志中的私密内容公开发布。
🟢 安全
- 通过环境变量设置密钥。
- 代码遵循KISS/DRY/SOLID原则。
- 静态类型检查(mypy/ruff)和代码检查工具。
💾 请求格式(Telegram)
⚠ MCP命令:
погода— 城市当前天气so— 在StackOverflow上搜索github— 搜索GitHub仓库
❓ 上下文问题:
Привет, меня зовут— 代理人会记住名字Как меня зовут?— 代理人会从对话中回忆起名字Как дела?/Как ты?— 关于状况的一般问题
📌 命令:
/help— 可用命令列表/health— 检查代理状态
📌 使用示例:
📋 简短报告:
- 用途Telegram中的智能助手,具备对话上下文理解能力。
- MCP工具:
weather,github,stackoverflow. - 记忆SQLite(
src/agent/memory.py) 带有完整对话历史的chat_id. - 上下文理解代理记住名字,回答有关对话的问题。
- 矢量生物安全(或生物防护):
src/agent/vector_store.py基于(fastembed+numpy)src/knowledge/*。 - 界面:
aiogram,团队/help,/health,支持上下文问题。 - 部署Docker Compose(
restart: unless-stopped) 或 systemd 单元deploy/agent.service。
