Skip to main content
Glama

Promas (скрапер изображений товаров)

Promas — это автоматический скрапер изображений товаров и сервер Model Context Protocol (MCP) для ИИ-агентов.

Вместо написания хрупких скраперов под каждый сайт, которые ломаются при изменении HTML-структур, Promas сочетает подключаемое поисковое обнаружение с универсальным конвейером семантического извлечения и расширяемым апскейлингом с учётом CDN. Он надёжно извлекает фотографии товаров в мастер-разрешении на любых сайтах брендов и розничных магазинов (Apple, Nike, Sony, Amazon, Target, B&H, Best Buy, eBay, магазины Shopify и произвольные URL товаров).


1. Быстрый старт

Вариант A: установка из PyPI (рекомендуется)

pip install promas
playwright install chromium

Запускайте мгновенно откуда угодно:

promas "iPhone 16 Pro"

Вариант B: запуск в Docker (без установки локальных Python / Playwright)

# Build the Docker image
docker build -t promas .

# Run the FastMCP Server for your AI Agent
docker run -i --rm promas

# Or run the standalone CLI scraper
docker run --rm promas promas "Sony FX3"

Related MCP server: Universal Shopping Agent MCP Server

2. Архитектура и конвейер

graph TD
    User([AI Agent / CLI Request]) --> Cache{TTL Disk Cache}
    Cache -- "Cache Hit (<0.1s)" --> Return([Return Verified Master Assets])
    Cache -- "Cache Miss" --> SearchRouter{Pluggable Discovery}
    SearchRouter -->|BRAVE_API_KEY| BraveAPI[Brave Search API]
    SearchRouter -->|SERPAPI_API_KEY| SerpAPI[SerpAPI Google]
    SearchRouter -->|Default: Free / Zero Keys| BrowserSearch[Stealth Browser Discovery]
    BraveAPI --> Scorer[E-Commerce Candidate Scorer]
    SerpAPI --> Scorer
    BrowserSearch --> Scorer
    Scorer --> ParallelScraper[Parallel Multi-Page Scraper]
    subgraph Scraping Pipeline
        ParallelScraper --> RateLimiter[Domain Rate Limiter]
        RateLimiter --> Parser[Universal Extractor: Schema.org, OG, Microdata, DOM]
        Parser --> CDNUpscaler[CDN Master Upscalers: Scene7, Nike, Shopify, Amazon...]
    end
    CDNUpscaler --> Verifier[Async HTTP Verification & pHash Dedup]
    Verifier --> CacheStore[(Save to Disk Cache)]
    CacheStore --> Return

3. Почему Promas? (Сравнение)

Возможность

Самописные скрипты (BeautifulSoup, Puppeteer)

Платные API (Bright Data, ScrapingBee)

Promas

Стоимость

Бесплатно

$50–$500+/мес регулярно

100% бесплатно и с открытым исходным кодом (MIT)

Настройка и обслуживание

Хрупкие селекторы под каждый сайт; ломаются при редизайнах

Типовые HTML-ответы; требуют собственных парсеров

Поисковое обнаружение + семантические схемы + CDN-апскейлеры

Антибот-защита и лимиты запросов

Быстро блокируются Cloudflare/Akamai

Обрабатывается в облаке

Лимитер запросов на домен + Stealth + повторы Tenacity

Проверка изображений

Нет; возвращает битые ссылки и пиксели 1x1

Базовая проверка статуса

Асинхронная HTTP-проверка + перцептивная дедупликация pHash

Поисковые бэкенды

Жёстко прописанные скраперы

Пользовательские API-скраперы

Подключаемые (Brave API / SerpAPI / браузерный фолбэк)

Кэширование

Нет

Дополнительная плата

Встроенный TTL-кэш на диске (повторные запросы за доли секунды)

Качество изображений

Обычно захватывает миниатюры интерфейса с низким разрешением

Только необработанные изображения страницы

Снятие лимитов мастер-CDN (до 2500px+)

Нативная поддержка ИИ-агентов

Требуется ручная обёртка

Только REST API

Нативный протокол инструментов FastMCP + поддержка Docker


4. Поисковые бэкенды и конфигурация

Promas работает из коробки на 100% — без настройки и без API-ключей.

Как работает поисковое обнаружение:

  1. Бесплатно / по умолчанию (без настройки): Promas использует встроенный браузерный движок Playwright Stealth, чтобы бесплатно обнаруживать e-commerce-кандидатов через Bing и DuckDuckGo.

  2. Brave Search API (рекомендуется для продакшена): если задан BRAVE_API_KEY, Promas переключается на официальное API-обнаружение, соответствующее ToS и выполняющееся за доли секунды.

    • Получите бесплатный ключ (2 000 бесплатных запросов в месяц): Brave Search API

  3. SerpAPI (альтернатива): если задан SERPAPI_API_KEY, Promas выполняет запросы к Google Search через SerpAPI.

    • Получите бесплатный ключ (100 бесплатных запросов в месяц): SerpAPI

Справочник переменных окружения:

Переменная

По умолчанию

Описание

BRAVE_API_KEY

Нет

Необязательный API-ключ для Brave Search

SERPAPI_API_KEY

Нет

Необязательный API-ключ для SerpAPI Google Search

PROMAS_GLOBAL_CONCURRENCY

3

Максимальное число одновременных браузерных контекстов

PROMAS_PER_DOMAIN_CONCURRENCY

1

Максимальное число параллельных запросов к целевому магазину

PROMAS_DOMAIN_DELAY_SECONDS

0.5

Вежливая задержка между запросами к одному домену

PROMAS_CACHE_ENABLED

True

Включение/отключение дискового кэша (True/False)

PROMAS_CACHE_TTL_SECONDS

86400 (24h)

Время жизни кэша в секундах

PROMAS_ENABLE_IMAGE_VERIFICATION

True

Асинхронная HTTP-проверка MIME-типа и размеров в пикселях

PROMAS_ENABLE_PERCEPTUAL_DEDUP

True

Удаление почти дублирующихся фрагментов по pHash

PROMAS_PHASH_HAMMING_THRESHOLD

4

Порог чувствительности для дедупликации по pHash


5. Использование

A. Автономный CLI

Поиск по названию товара:

promas "iPhone 16 Pro"

Извлечение по прямому URL:

promas "https://www.apple.com/iphone-16-pro/"

Фильтрация по конкретному домену и ограничение количества:

promas "Sony FX3" --max-images 5 --site bhphotovideo.com

Обход кэша или отключение проверки:

promas "Nike Air Jordan 1" --no-cache --no-verify

B. Сервер FastMCP

Запустите автономный MCP-сервер:

promas-mcp

C. Интеграция с агентом (mcp_config.json)

Нативная установка Python:

{
  "mcpServers": {
    "promas": {
      "command": "promas-mcp",
      "env": {
        "BRAVE_API_KEY": "optional-key-here"
      }
    }
  }
}

Docker-контейнер (установка без зависимостей):

{
  "mcpServers": {
    "promas": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "promas"]
    }
  }
}

6. Многоинструментальный набор MCP

Promas предоставляет ИИ-агентам отдельные узкоспециализированные инструменты:

Инструмент

Назначение

Описание

fetch_product_images

Полный конвейер

Строка запроса или URL -> автоматическое обнаружение -> параллельный скрапинг -> HTTP-проверка -> дедупликация pHash -> ссылки на мастер-фотографии.

search_product_urls

Только обнаружение

Строка запроса -> быстрое ранжирование страниц-кандидатов товаров в e-commerce (возвращает URL без скрапинга изображений).

scrape_single_url

Только извлечение

Конкретный прямой URL -> извлекает заголовок и мастер-изображения строго с этой страницы.


7. Рекомендации по системному промпту агента

Добавьте следующие инструкции в системный промпт вашего ИИ-агента:

You have access to the `fetch_product_images` tool (Promas), which universally retrieves high-resolution product imagery and official product links from across the web.

GUIDELINES FOR USING PROMAS:
1. When asked for product images, photos, or visual references, call `fetch_product_images(query=<specific product name or direct URL>)`.
2. Do not invent or hallucinate image URLs; strictly return the verified URLs returned by Promas.
3. Render primary high-res images as markdown (e.g. `![Product Photo](url)`) and provide source product links for reference.
4. If a specific store is desired by the user, you can supply `site_filter` (e.g. `site_filter="apple.com"`).

8. Схема вывода

{
  "status": "success",
  "query": "iPhone 16 Pro",
  "title": "Apple iPhone 16 Pro",
  "sources_scraped": [
    "https://www.target.com/p/apple-iphone-16-pro/-/A-93597960",
    "https://www.amazon.com/Apple-iPhone-Version-256GB-Titanium/dp/B0DHJDPYYR",
    "https://www.apple.com/shop/buy-iphone/iphone-16"
  ],
  "images": [
    "https://target.scene7.com/is/image/Target/GUEST_7c0750b4-ee18-41d4-9309-d08e41619229",
    "https://target.scene7.com/is/image/Target/GUEST_4e1ce623-313f-4193-93a4-61dc0fc9da14"
  ],
  "error_message": null
}

9. Участие в разработке

Участие в разработке приветствуется! Добавление поддержки мастер-апскейлинга для новой e-commerce-платформы или CDN занимает меньше 10 строк кода благодаря нашему реестру плагинов-декораторов.

👉 Пошаговые инструкции по добавлению нового правила CDN см. в CONTRIBUTING.md.


10. Тестирование и контроль качества

Promas включает модульные тесты для чистых функций парсинга, проверки типов и канареечные интеграционные тесты:

# Run unit tests
pytest -v

# Run linting
ruff check .

# Run type checker
mypy promas/ tests/

# Run live golden canary integration tests (hits live sites)
pytest -v --run-integration

11. Правовое и этичное использование

  • Только публичный доступ: Promas обращается исключительно к публично доступным веб-страницам; он не обходит аутентификацию, пейволлы или приватные логины.

  • Условия использования (ToS): автоматический доступ может регулироваться условиями использования конкретного сайта. Всегда изучайте ToS целевых доменов и политики для роботов перед массовым скрапингом либо указывайте официальные поисковые API-ключи (BRAVE_API_KEY / SERPAPI_API_KEY) для обнаружения, соответствующего ToS.

  • Авторские права на изображения и атрибуция: Promas находит и возвращает прямые URL изображений — он не хранит, не перехостит и не копирует медиафайлы. Дальнейший показ, хранение или коммерческое использование полученных изображений — ответственность пользователя.


12. Лицензия

Этот проект распространяется под лицензией MIT.

Install Server
A
license - permissive license
B
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Agent-native product catalog for AI shopping agents. 296M+ products, 28 countries.

  • Product discovery for AI agents: ranked products and bundles from the open merchant web.

  • Web search, page extraction and structured commerce, social and business data for AI agents

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/szqiel/promas'

If you have feedback or need assistance with the MCP directory API, please join our Discord server