MCP-SERVER

porcupine-om/MCP-SERVER

3.2

If you are the rightful owner of MCP-SERVER and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

MCP Connect is a project designed for managing a supermarket's product database through an MCP server and a Telegram bot.

Tools
6
Resources
0
Prompts
0

MCP Connect - Проект для работы с базой данных товаров

Полный проект, состоящий из MCP сервера и Telegram бота для работы с базой данных товаров супермаркета.

Структура проекта

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).

Telegram Бот
cd telegram_bot
pip install -r requirements.txt

Примечание: Бот использует библиотеку aiogram (совместима с Python 3.13).

2. Настройка Telegram бота

  1. Создайте файл .env в директории telegram_bot:
cd telegram_bot
# Windows PowerShell:
copy .env.example .env

# Linux/Mac:
cp .env.example .env
  1. Отредактируйте .env файл и укажите:
    • TELEGRAM_API_TOKEN - токен бота от @BotFather
    • OPENAI_API_KEY - API ключ OpenAI (через Proxyapi)
    • Остальные параметры можно оставить по умолчанию

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 - Начать работу с ботом
  • /help - Показать справку

Примеры запросов

Бот понимает естественный язык:

  • "покажи все товары"
  • "найди чай"
  • "покажи товары в категории Фрукты"
  • "найди товар с ID 5"
  • "добавь товар яблоки 120 фрукт"
  • "сколько будет 2+2*3"

Как это работает

  1. MCP Сервер - предоставляет инструменты для работы с базой данных товаров через SQLite
  2. HTTP Обертка - позволяет подключаться к MCP инструментам через HTTP API
  3. Telegram Бот - использует OpenAI для понимания запросов пользователя и вызывает соответствующие MCP инструменты

Процесс обработки запроса:

  1. Пользователь отправляет сообщение боту
  2. Бот отправляет запрос в OpenAI (через Proxyapi)
  3. LLM анализирует запрос и определяет, нужен ли вызов MCP инструмента
  4. Если нужен инструмент, бот вызывает его через HTTP API MCP сервера
  5. Результат форматируется и отправляется пользователю

Доступные MCP инструменты

  • list_products - показать все товары
  • find_product - найти товары по имени
  • find_products_by_category - найти товары по категории
  • find_product_by_ID - найти товар по ID
  • add_product - добавить товар
  • calculate - вычислить математическое выражение

Требования

  • Python 3.13 (или 3.7+ для совместимости)
  • Telegram Bot Token от @BotFather
  • OpenAI API Key (через Proxyapi)
  • Установленные зависимости (см. requirements.txt в каждой директории)

Устранение неполадок

Бот не отвечает

  • Проверьте, что MCP HTTP сервер запущен на http://localhost:8000
  • Проверьте правильность токена в .env
  • Проверьте логи бота

Ошибки подключения к MCP серверу

  • Убедитесь, что http_server.py запущен
  • Проверьте URL в MCP_SERVER_URL в .env

Ошибки OpenAI

  • Проверьте правильность API ключа
  • Убедитесь, что используете правильный URL Proxyapi
  • Проверьте, что модель o4-mini-2025-04-16 доступна через Proxyapi
  • Убедитесь, что используете библиотеку aiogram (не python-telegram-bot)

Лицензия

Проект создан для демонстрации работы MCP сервера и интеграции с Telegram ботом.