Skip to main content

MCP server for automated product search and price comparison across multiple marketplaces with integrated license management

Project description

Offers Check Marketplaces MCP Server

PyPI version Python 3.10+ License: MIT

A powerful MCP (Model Context Protocol) server for automated product search and price comparison across multiple marketplaces with integrated license management.

Features

  • 🔍 Multi-marketplace Search: Search products across multiple e-commerce platforms
  • 💰 Price Comparison: Automated price comparison and analysis
  • 📊 Statistics & Analytics: Comprehensive reporting and data analysis
  • 🗄️ Database Management: SQLite-based data storage with async operations
  • 🔐 License Management: Integrated license verification system
  • 🌐 Web Scraping: Playwright-based web scraping capabilities
  • 📈 Excel Integration: Import/export data from Excel files
  • 🚀 High Performance: Async/await architecture for optimal performance

Supported Marketplaces

  • Komus (komus.ru) - Office supplies and stationery
  • VseInstrumenti (vseinstrumenti.ru) - Tools and equipment
  • Ozon (ozon.ru) - Universal marketplace
  • Wildberries (wildberries.ru) - Consumer goods
  • OfficeMag (officemag.ru) - Office supplies

Installation

From PyPI

pip install offers-check-marketplaces

From Source

git clone https://github.com/yourusername/offers-check-marketplaces-mcp.git
cd offers-check-marketplaces-mcp
pip install -e .

Quick Start

1. Basic Usage

# Run in STDIO mode (for MCP clients)
offers-check-marketplaces

# Run in SSE mode (web server)
offers-check-marketplaces --sse --host 0.0.0.0 --port 8000

2. MCP Configuration

Add to your MCP client configuration (e.g., .cursor/mcp.json or .kiro/settings/mcp.json):

{
  "mcpServers": {
    "offers_check_marketplaces": {
      "command": "offers-check-marketplaces",
      "env": {
        "LICENSE_KEY": "your-license-key-here"
      }
    }
  }
}

3. Environment Variables

# Set license key
export LICENSE_KEY="your-license-key-here"

# Optional: Set custom API endpoint
export API_BASE_URL="https://your-api-endpoint.com"

MCP Tools

The server provides the following MCP tools:

Core Tools

  • search_products - Search for products across marketplaces
  • get_product_details - Get detailed product information and prices
  • get_product_list - List all products from database
  • get_statistics - Generate comprehensive statistics

Data Management Tools

  • save_product_prices - Save found prices to database
  • update_all_prices - Batch update prices for multiple products

License Management Tools

  • check_license_status - Check current license status
  • set_license_key - Set new license key

Excel Tools

  • parse_excel_file - Parse Excel file and return structured data
  • get_excel_info - Get information about Excel file structure without reading all data
  • export_to_excel - Export data to Excel file with formatting
  • filter_excel_data - Filter Excel data by specified criteria
  • transform_excel_data - Transform Excel data according to specified rules

Usage Examples

Search Products

# Using MCP client
result = await mcp_client.call_tool("search_products", {
    "model_name": "Полотно техническое БЯЗЬ ОТБЕЛЕННАЯ ГОСТ"
})

Get Product Details

# Get detailed information about a product
result = await mcp_client.call_tool("get_product_details", {
    "product_code": 195385.0
})

Generate Statistics

# Get comprehensive statistics
result = await mcp_client.call_tool("get_statistics", {})

Parse Excel File

# Parse Excel file with specific parameters
result = await mcp_client.call_tool("parse_excel_file", {
    "file_path": "data/input.xlsx",
    "sheet_name": "Данные",
    "header_row": 0,
    "max_rows": 100
})

Export Data to Excel

# Export processed data to Excel with formatting
result = await mcp_client.call_tool("export_to_excel", {
    "data": processed_data,
    "file_path": "data/output.xlsx",
    "sheet_name": "Результаты",
    "apply_formatting": True,
    "auto_adjust_columns": True
})

Filter Excel Data

# Filter data by multiple criteria
result = await mcp_client.call_tool("filter_excel_data", {
    "data": excel_data,
    "filters": {
        "Категория": "Хозтовары и посуда",
        "Цена позиции\nМП c НДС": {
            "greater_than": 1000,
            "less_than": 5000
        }
    }
})

Configuration

License Configuration

The system requires a valid license key. You can provide it through:

  1. Environment variable: LICENSE_KEY=your-key
  2. MCP configuration: Set in the env section of your MCP config
  3. Configuration file: data/.license_config.json

Data Directory

The system automatically creates user data directories following OS standards:

  • Windows: %APPDATA%\offers-check-marketplaces\
  • macOS: ~/Library/Application Support/offers-check-marketplaces/
  • Linux: ~/.local/share/offers-check-marketplaces/ (XDG compliant)

Contains:

  • SQLite database (database/products.db)
  • License cache (cache/.license_cache.json)
  • Excel files for import/export
  • Application logs (logs/)

You can override the location using the OFFERS_CHECK_DATA_DIR environment variable.

Development

Setup Development Environment

git clone https://github.com/yourusername/offers-check-marketplaces-mcp.git
cd offers-check-marketplaces-mcp

# Install with development dependencies
pip install -e ".[dev]"

Running Tests

# Run all tests
pytest

# Run specific test files
python test_license_integration.py
python test_mcp_license_tools.py
python test_final_integration.py

Building Package

# Install build tools
pip install build twine

# Build package
python -m build

# Upload to PyPI (requires credentials)
twine upload dist/*

Architecture

Components

  • Server (server.py) - Main MCP server with tool implementations
  • License Manager (license_manager.py) - License verification and management
  • Database Manager (database_manager.py) - SQLite database operations
  • Search Engine (search_engine.py) - Multi-marketplace search coordination
  • Data Processor (data_processor.py) - Excel file processing
  • Statistics Generator (statistics.py) - Analytics and reporting
  • Error Handling (error_handling.py) - Comprehensive error management

Data Flow

  1. Input: Excel files with product specifications
  2. Processing: Search products across marketplaces
  3. Storage: Save results to SQLite database
  4. Analysis: Generate statistics and comparisons
  5. Output: Updated Excel files with prices and analysis

API Reference

Search Products

search_products(model_name: str) -> dict

Search for products across multiple marketplaces.

Parameters:

  • model_name (str): Product model name to search for

Returns:

  • Dictionary with search results from different marketplaces

Get Product Details

get_product_details(product_code: float) -> dict

Get detailed information about a specific product.

Parameters:

  • product_code (float): Unique product code from database

Returns:

  • Dictionary with product details and price analysis

Error Handling

The system includes comprehensive error handling:

  • License Errors: Invalid or missing license keys
  • Network Errors: Marketplace connectivity issues
  • Database Errors: SQLite operation failures
  • Validation Errors: Invalid input parameters

All errors are logged and return user-friendly messages.

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

Changelog

v0.1.0

  • Initial release
  • Multi-marketplace product search
  • Price comparison and analysis
  • Integrated license management
  • MCP server implementation
  • Excel data processing
  • SQLite database storage
  • Comprehensive error handling

Made with ❤️ for automated marketplace analysis

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

offers_check_marketplaces_mcp_2025-0.1.1.tar.gz (703.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file offers_check_marketplaces_mcp_2025-0.1.1.tar.gz.

File metadata

File hashes

Hashes for offers_check_marketplaces_mcp_2025-0.1.1.tar.gz
Algorithm Hash digest
SHA256 aaf54695339f572adb2db50a4a5919c6c55b5939770daa6305cf72effb6707a9
MD5 f21d3e10c95b0221e28dec15e6ec8201
BLAKE2b-256 bc6485860e9db1fa30e416861366cc6b451ea9cc6934db1848aeecefae08969f

See more details on using hashes here.

File details

Details for the file offers_check_marketplaces_mcp_2025-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for offers_check_marketplaces_mcp_2025-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ee8dcc9aa52841fe389d7e2a4913811a773995c64b6aa5f7f064b036cf6b6b0a
MD5 2df76926e057915ca9c4a83e33d5c138
BLAKE2b-256 5761f189ab57d0a116c5dd9d920ae192f277654b735f7feafe06b8931c55cda1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page