商品数据库管理工具

一个由MCP服务器和Telegram机器人组成的项目,用于管理超市商品数据库,支持自然语言查询和数据库操作。

  • by porcupine-om
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 porcupine-om/MCP-SERVER

使用说明

MCP Connect-产品数据库项目

一个完整的项目,包括一个MCP服务器和一个电报机器人来处理超市的商品数据库。

项目结构

MCP SERVER/
├── mcp_server/              # MCP сервер
│   ├── server.py           # Основной MCP сервер (stdio)
│   ├── http_server.py      # HTTP обертка для MCP сервера
│   ├── db.py               # Работа с SQLite базой данных
│   ├── tools.py            # MCP инструменты
│   ├── products.db         # База данных (создается автоматически)
│   ├── requirements.txt    # Зависимости
│   └── README.md           # Документация MCP сервера
│
├── telegram_bot/           # Telegram бот
│   ├── bot.py              # Основной файл бота
│   ├── config.py           # Конфигурация и загрузка .env
│   ├── mcp_client.py       # Клиент для работы с MCP сервером
│   ├── requirements.txt    # Зависимости
│   ├── .env.example        # Пример файла с переменными окружения
│   └── README.md           # Документация бота
│
├── start_all.ps1           # Скрипт для запуска обоих сервисов
├── start_bot.ps1           # Скрипт для запуска только бота
└── README.md               # Главная документация проекта

快速入门

1.建立依赖关系

mcp服务器

cd mcp_server
pip install -r requirements.txt

注: 基本MCP服务器(server.py)不需要依赖关系,所有模块都包含在标准Python库中。HTTP服务器需要依赖关系(http_server.py).

电报

cd telegram_bot
pip install -r requirements.txt

注: 机器人使用图书馆 aiogram (与Python 3.13兼容)

2.配置电报机器人

  1. 创建文件 .env 目录 telegram_bot:
cd telegram_bot
# Windows PowerShell:
copy .env.example .env

# Linux/Mac:
cp .env.example .env
  1. 编辑 .env 文件并指定:
    • TELEGRAM_API_TOKEN - 令牌 机器 人 @植物学家
    • OPENAI_API_KEY OpenAI API密钥(通过代理)
    • 其他参数可以保留为默认值

3.项目启动

步骤1:启动MCP HTTP服务器

在一个终端:

cd mcp_server
python http_server.py

服务器将在 http://localhost:8000

步骤2:启动Telegram机器人

在另一个终端:

cd telegram_bot
python bot.py

机器人准备好了!在Telegram中找到它并发送命令 /start.

替代方法: 使用脚本 start_all.ps1 在单独的窗口中自动启动两个服务。

使用

机器人命令

  • /start -开始使用bot
  • /help -显示帮助

查询示例

机器人理解自然语言:

  • “展示所有商品”
  • “找到茶”
  • “显示水果类产品”
  • 找到ID 5的商品
  • 添加产品苹果120水果
  • “2+2*3是多少”

它是如何工作的

  1. mcp服务器 -通过SQLite提供产品数据库工具
  2. HTTP 信封 -允许您通过HTTP API连接到MCP工具
  3. 电报 使用OpenAI来理解用户的需求,并调用相应的MCP工具

请求处理过程:

  1. 用户向bot发送消息
  2. 机器人向OpenAI发送请求(通过代理)
  3. LLM分析请求并确定是否需要调用MCP工具
  4. 如果需要工具,机器人会通过MCP服务器的HTTP API调用它。
  5. 结果格式化并发送给用户

可用的MCP工具

  • list_products 显示所有产品
  • find_product -查找商品名称
  • find_products_by_category -按类别查找产品
  • find_product_by_ID 通过ID查找产品
  • add_product -添加产品
  • calculate 计算数学表达式

要求

  • Python 3.13(或3.7+兼容性)
  • 来自 @BotFather 的 Telegram Bot Token
  • OpenAI API Key(通过Proxyapi)
  • 已安装的依赖项(请参阅每个目录中的requirements.txt)

故障排除

bot没有回复

  • 验证MCP HTTP服务器是否已在 http://localhost:8000
  • 检查代币是否正确 .env
  • 检查机器人日志

连接到MCP服务器失败

  • 确保 http_server.py 发射
  • 检查URL MCP_SERVER_URL 在 .env

OpenAI错误

  • 验证密钥API是否正确
  • 确保使用正确的代理URL
  • 检查模型 o4-mini-2025-04-16 通过Proxyapi提供
  • 确保您正在使用图书馆。 aiogram (не python-telegram-bot)

许可证

该项目旨在演示MCP服务器的工作,并与Telegram机器人集成。