Skip to content

Releases: AtaCanYmc/robo-market-search

v1.5.0

Choose a tag to compare

@github-actions github-actions released this 31 Jul 16:58
0ded3c5

1.5.0 (2026-07-31)

✨ Features

  • cart: update default free shipping threshold to 1500 TL (d0e2972)
  • enhance AgentTab with structured visual results and new response handling (47941dc)
  • implement prompt loading utilities with safe fallback defaults (bbc35c1)

🐛 Bug Fixes

  • deps: include groq, openai, anthropic, google-generativeai, ollama SDKs (7d2b368)
  • docker: invalidate pip cache and include MANIFEST.in in Docker builds (e76db13)
  • providers: remove unnecessary blank line in response handling (f15a513)

📚 Documentation

  • add enterprise-grade documentation suite (architecture, sdk, cli, mcp, api, providers, adrs) (9ab83d2)
  • embed screenshots in readmes and documentation pages (036cd5a)
  • remove outdated web demo section from README (585a659)
  • remove outdated web demo section from README (1d79fd1)

v1.4.0

Choose a tag to compare

@github-actions github-actions released this 31 Jul 16:03
70d478f

1.4.0 (2026-07-31)

✨ Features

  • add Bring Your Own API Key (BYOK) support to AI Hardware Agent endpoints (f44cbdc)
  • add cart optimization functionality with CLI support (5a46ea1)
  • add customizable shipping thresholds and settings to CartOptimizerTab (d9a18ca)
  • add export functionality for product search results in various formats (1b3917d)
  • add frontend components, API integration, and Docker setup for Robo Market Search (bdec6f6)
  • add installation script and binary release workflow for easier deployment (40213c9)
  • add requirements file with dependencies for FastAPI project (4038cd7)
  • enhance API configuration for production and add Docker support (1d03bdd)
  • enhance ProductCard component with image URL normalization and error handling (69c88de)
  • implement API endpoints and services for product search, cart optimization, and AI agent integration (5a2e949)
  • normalize product names in API response and ProductCard component (2585681)
  • update Dockerfile for streamlined dependency installation and entry point adjustment (830548a)
  • update installation commands for robo-market-search and add PostCSS configuration (209ad7e)
  • update README and add configuration files for Vercel and Render deployment (7280328)
  • update README to include BYOK support and enhance frontend features (7690b08)

🐛 Bug Fixes

  • add local package reference to root requirements.txt for Vercel deployment (960b085)
  • enforce @vercel/python builder in vercel.json to trigger pip install requirements.txt (4e375c5)
  • remove legacy builds array to eliminate Vercel CLI warning (07ff7dc)

v1.3.0

Choose a tag to compare

@github-actions github-actions released this 31 Jul 09:43
ccef774

1.3.0 (2026-07-31)

✨ Features

  • add configuration management for API keys in CLI, including set, show, and clear commands (efefc2e)
  • add DeepSeekProvider and GroqProvider implementations, update README and tests (9a50c20)
  • add initial project structure and core components for robo_market_agent (b379518)
  • add Vercel serverless function entrypoint and configuration for routing (4e4fb8a)
  • enhance CLI functionality and improve type casting in providers (0a50f77)
  • enhance type checking in pre-commit configuration and update CI workflow for improved testing (a56d158)
  • fix Python path for Vercel Serverless environment and update imports for demo module (6404276)
  • fix Python path for Vercel Serverless environment and update imports for demo module (f4bb2a5)
  • fix Python path for Vercel Serverless environment and update imports for demo module (9c2dbc0)
  • update .gitignore and add initial README files for project structure (04778b3)
  • update dependencies to use latest versions and add new packages (e2b4a5a)
  • update import alias for application and adjust Vercel configuration for routing (3f99366)

🐛 Bug Fixes

  • add missing newline at end of requirements.txt (9b4c82d)
  • update robo-market-search dependency to remove version constraint (2f7d7f1)

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 29 Jul 00:28
48704d8

1.2.0 (2026-07-29)

✨ Features

  • add favicon handling and Vercel serverless function entrypoint (4a83617)
  • add favicon handling and Vercel serverless function entrypoint (d814eeb)
  • add Telegram notification integration for search logging in LogPort (3bbea57)
  • add Vercel Analytics script and define store color mappings in … (0c25746)
  • add Vercel Analytics script and define store color mappings in views (7f7525d)
  • enhance caching mechanism and improve async logging in LogPort (59baa57)
  • enhance caching mechanism and improve async logging in LogPort (1b549a9)
  • implement Logport integration for anonymous search analytics logging (4789d53)

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 28 Jul 23:38
cd341b9

1.1.0 (2026-07-28)

✨ Features

  • add cart search example and optimize shipping cost calculation for multiple items (7edf341)
  • add cart search with shipping & CSV support (8859836)
  • add CSV and JSON export functionality for search results (6c90b5f)
  • add initial web demo with FastAPI, Jinja2, and HTMX (e9b3831)
  • add pre-commit configuration and update contributing guidelines (03f5c0b)
  • add product image display with fallback handling in results.html (83e47e9)
  • add release-please configuration and templates for contributing, bug reporting, and feature requests (de4f658)
  • add release-please configuration and templates for contributing… (e0a5a37)
  • add Vercel deployment instructions and configuration (c445371)
  • cart search with shipping costs, split optimization, and CSV input (Sha-Dox) (35afe57)
  • enhance search functionality with filtering and pagination options (b8f0eea)
  • implement export endpoints for JSON and CSV data downloads, add health check and SEO metadata routes (e84ec26)
  • implement SQLite and memory-backed TTL caching for search results (cdd7bda)
  • integrate UnifiedSearchClient for improved search functionality (38641e2)
  • refactor code for improved readability and maintainability (1792507)
  • update optional dependencies to conditionally include mcp for Python 3.10+ (2fe2f0f)

🐛 Bug Fixes

  • correct URL formatting by adding missing slashes (57cd38d)

📚 Documentation

♻️ Code Refactoring

  • update type hints for better clarity and consistency (cb29e0d)

robo-market-search-v1.0.1

Choose a tag to compare

@AtaCanYmc AtaCanYmc released this 13 Jun 16:00
Robo Market Search Logo

Robo Market Search

PyPI version
Python
License: MIT


Türkiye'nin en popüler 4 elektronik ve robotik pazarında (**Robolink, Robotistan, Robo90, Direnç.net**) tek satır kodla, çok hızlı ve eşzamanlı arama yapmanızı sağlayan Python istemci kütüphanesi.

Ayrıca yerleşik CLI (Komut Satırı) aracı ve MCP (Model Context Protocol) sunucusu özelliklerine sahiptir.

Özellikler

  • Unified Search (Birleştirilmiş Arama): 4 markette paralel (Thread) olarak eşzamanlı arama yapar ve ürünleri ucuzdan pahalıya sıralar.
  • Standart Veri Tipi: Tüm sonuçlar, standart Product objesi olarak döner.
  • Dinamik Token Mimarisi: API key veya token değişikliklerinde otomatik güncellenerek (regex ile ana sayfalardan kazıyarak) kesintisiz çalışır.
  • Güçlü CLI: Terminal üzerinden şık tablolar ve anlık yükleme animasyonları ile hızlı ürün araması.
  • LLM/MCP Entegrasyonu: Claude vb. LLM asistanlarına, projeniz için donanım/elektronik malzeme arama yeteneği kazandırır.

Kurulum

Sadece SDK (Kütüphane) özelliklerini kullanmak için:

pip install robo-market-search

CLI ve MCP özelliklerini de içeren tüm ekosistemi kurmak için:

pip install "robo-market-search[all]"

(Sadece CLI için [cli], sadece MCP için [mcp] seçeneklerini de kullanabilirsiniz.)

Komut Satırı Arayüzü (CLI) Kullanımı

Uygulamayı [cli] veya [all] etiketiyle kurduktan sonra terminalden anında arama yapabilirsiniz. CLI aracı typer ve rich kullanılarak geliştirilmiştir ve sonuçları terminalinizde şık, renkli bir tablo formatında sunar.

CLI Örnek Çıktı

Örnek Komutlar:

# Temel arama (Tüm marketleri tarar, en ucuzdan pahalıya sıralar)
robo-search "ESP32-WROOM"

# Limit belirterek arama (Market başına maksimum 3 ürün getirir, ekran kirliliğini önler)
robo-search "Arduino Uno" --limit 3

# Fiyat sıralamasını devreden çıkararak ham sonuçları listeleme
robo-search "PLA Filament" --no-sort

Telegram Bot Entegrasyonu

Projenizi kişisel bir elektronik arama asistanına dönüştürmek için yerleşik bir Telegram botu da barındırır. aiogram kullanılarak geliştirilen bu asenkron bot, saniyeler içinde marketleri tarar ve en ucuz ürünleri size linkleriyle birlikte mesaj olarak atar.

Telegram Bot Örnek 1     Telegram Bot Örnek 2

Kullanımı

  1. Telegram üzerinden @BotFather ile yeni bir bot oluşturun ve token'ınızı alın.
  2. Botu başlatmak için terminalden komutu token ile birlikte çalıştırın:
robo-bot --token "SİZİN_TELEGRAM_TOKENINIZ"

(Alternatif olarak TELEGRAM_BOT_TOKEN isimli bir ortam değişkeni (environment variable) tanımlayarak sadece robo-bot yazarak da çalıştırabilirsiniz.)

Bot çalıştıktan sonra Telegram uygulamasından botunuza /ara ESP32 veya /ara Arduino Uno yazarak doğrudan arama yapabilirsiniz.


Model Context Protocol (MCP) Sunucusu

Proje, LLM'ler (örn. Claude Desktop) için resmi MCP (Model Context Protocol) sunucusu içerir. Bu sayede yapay zeka asistanınız projeleriniz için doğrudan Türkiye pazarındaki elektronik parçaların fiyat ve stok durumunu canlı olarak sorgulayabilir.

MCP Örnek Çıktı

Sunucuyu Başlatma ve Test Etme

MCP sunucusunun sağlıklı çalışıp çalışmadığını Claude'a bağlamadan önce test etmek isterseniz, paketle birlikte gelen örnek test script'ini çalıştırabilir veya resmi MCP Inspector aracını kullanabilirsiniz.

1. Python İstemcisi ile Test:
Kendi yazdığımız bir Python scripti ile sunucuyu sanki bir LLM'miş gibi tetikleyebilirsiniz:

python examples/mcp_client_example.py

2. Resmi MCP Inspector ile Test (Görsel Arayüz):
Web tarayıcınız üzerinden görsel olarak test etmek için npx ile inspector'ı başlatın:

npx @modelcontextprotocol/inspector robo-mcp

(Bu komut lokalinizde bir web sunucusu başlatır ve tarayıcı üzerinden aracı test etmenize olanak tanır.)

LLM İstemcilerine (Clients) Kurulum

Yapay zeka asistanlarının bu aracı kullanabilmesi için ayar dosyalarına aşağıdaki JSON konfigürasyonunu eklemeniz yeterlidir:

{
  "mcpServers": {
    "robo-market-search": {
      "command": "robo-mcp",
      "args": []
    }
  }
}

Not: Komutun çalışabilmesi için robo-mcp komutunun sistem PATH'inize eklenmiş olması gerekir. Gerekirse "command": "/tam/yol/.venv/bin/robo-mcp" şeklinde absolute (tam) dosya yolunu da verebilirsiniz.

Bu konfigürasyonu kullandığınız asistana göre aşağıdaki konumlara ekleyebilirsiniz:

1. Claude Desktop

Windows için %APPDATA%\Claude\claude_desktop_config.json, macOS için ~/Library/Application Support/Claude/claude_desktop_config.json dosyasını düzenleyip yukarıdaki JSON'ı ekleyin.

2. Antigravity (Agent)

Antigravity'nin MCP ayar dosyasına (genellikle projenin kök dizinindeki veya global yapılandırma klasöründeki mcp.json veya mcp_servers.json) ilgili mcpServers objesini eklemeniz yeterlidir.

3. Cline (VS Code) / RooCode vb. Eklentiler

VS Code üzerinde çalışan Cline veya RooCode gibi MCP destekli AI eklentileri kullanıyorsanız, ayarlardan (veya ~/.vscode/global_storage/.../cline_mcp_settings.json üzerinden) yukarıdaki JSON'ı tanımlayarak aracı asistanınıza öğretebilirsiniz.

Note

ChatGPT, Gemini ve Ollama Desteği Hakkında:
ChatGPT ve Gemini'nin kendi resmi web arayüzleri veya Ollama'nın terminal arayüzü doğrudan yerel MCP sunucularını desteklemez. Ancak VS Code içerisindeki Cline gibi eklentilerin API ayarlarına giderek arka planda çalışacak model olarak ChatGPT, Gemini veya yerel bilgisayarınızdaki Ollama modellerini (örn. llama3) seçerseniz; bu modellerin tamamı robo-mcp aracımızı sorunsuzca kullanabilir.

LLM ile Nasıl Kullanılır?

Claude ile sohbet ederken şu tarz komutlar verebilirsiniz:

  • "Bana Türkiye'den ucuz bir ESP32-CAM ve HC-SR04 bul."
  • "Bir Arduino robot projesi yapmak istiyorum, gereken temel parçaları Türkiye marketlerinden araştırıp maliyet tablosu çıkarır mısın?"

LLM, arka planda robo-mcp aracını çağırıp güncel fiyat/stok bilgilerini çekecek ve size sunacaktır.

Hızlı Başlangıç (Python SDK / Birleştirilmiş Arama)

from robo_market_search import UnifiedSearchClient

client = UnifiedSearchClient()
products = client.search(query="arduino", limit_per_store=5)

for p in products:
    print(f"[{p.store}] {p.name} - {p.price} {p.currency} (Stok: {p.in_stock})")

Bireysel Market Araması

Sadece belirli bir markette arama yapmak isterseniz:

from robo_market_search import RobotistanClient

client = RobotistanClient()
products = client.search_component("esp32", limit=3)

Lisans

MIT License

robo-market-search-v1.0.0

Choose a tag to compare

@AtaCanYmc AtaCanYmc released this 13 Jun 14:19
Robo Market Search Logo

Robo Market Search

PyPI version
Python
License: MIT


Türkiye'nin en popüler 4 elektronik ve robotik pazarında (**Robolink, Robotistan, Robo90, Direnç.net**) tek satır kodla, çok hızlı ve eşzamanlı arama yapmanızı sağlayan Python istemci kütüphanesi.

Ayrıca yerleşik CLI (Komut Satırı) aracı ve MCP (Model Context Protocol) sunucusu özelliklerine sahiptir.

Özellikler

  • Unified Search (Birleştirilmiş Arama): 4 markette paralel (Thread) olarak eşzamanlı arama yapar ve ürünleri ucuzdan pahalıya sıralar.
  • Standart Veri Tipi: Tüm sonuçlar, standart Product objesi olarak döner.
  • Dinamik Token Mimarisi: API key veya token değişikliklerinde otomatik güncellenerek (regex ile ana sayfalardan kazıyarak) kesintisiz çalışır.
  • Güçlü CLI: Terminal üzerinden şık tablolar ve anlık yükleme animasyonları ile hızlı ürün araması.
  • LLM/MCP Entegrasyonu: Claude vb. LLM asistanlarına, projeniz için donanım/elektronik malzeme arama yeteneği kazandırır.

Kurulum

Sadece SDK (Kütüphane) özelliklerini kullanmak için:

pip install robo-market-search

CLI ve MCP özelliklerini de içeren tüm ekosistemi kurmak için:

pip install "robo-market-search[all]"

(Sadece CLI için [cli], sadece MCP için [mcp] seçeneklerini de kullanabilirsiniz.)

Komut Satırı Arayüzü (CLI) Kullanımı

Uygulamayı [cli] veya [all] etiketiyle kurduktan sonra terminalden anında arama yapabilirsiniz. CLI aracı typer ve rich kullanılarak geliştirilmiştir ve sonuçları terminalinizde şık, renkli bir tablo formatında sunar.

CLI Örnek Çıktı

Örnek Komutlar:

# Temel arama (Tüm marketleri tarar, en ucuzdan pahalıya sıralar)
robo-search "ESP32-WROOM"

# Limit belirterek arama (Market başına maksimum 3 ürün getirir, ekran kirliliğini önler)
robo-search "Arduino Uno" --limit 3

# Fiyat sıralamasını devreden çıkararak ham sonuçları listeleme
robo-search "PLA Filament" --no-sort

Model Context Protocol (MCP) Sunucusu

Proje, LLM'ler (örn. Claude Desktop) için resmi MCP (Model Context Protocol) sunucusu içerir. Bu sayede yapay zeka asistanınız projeleriniz için doğrudan Türkiye pazarındaki elektronik parçaların fiyat ve stok durumunu canlı olarak sorgulayabilir.

MCP Örnek Çıktı

Sunucuyu Başlatma ve Test Etme

MCP sunucusunun sağlıklı çalışıp çalışmadığını Claude'a bağlamadan önce test etmek isterseniz, paketle birlikte gelen örnek test script'ini çalıştırabilir veya resmi MCP Inspector aracını kullanabilirsiniz.

1. Python İstemcisi ile Test:
Kendi yazdığımız bir Python scripti ile sunucuyu sanki bir LLM'miş gibi tetikleyebilirsiniz:

python examples/mcp_client_example.py

2. Resmi MCP Inspector ile Test (Görsel Arayüz):
Web tarayıcınız üzerinden görsel olarak test etmek için npx ile inspector'ı başlatın:

npx @modelcontextprotocol/inspector robo-mcp

(Bu komut lokalinizde bir web sunucusu başlatır ve tarayıcı üzerinden aracı test etmenize olanak tanır.)

LLM İstemcilerine (Clients) Kurulum

Yapay zeka asistanlarının bu aracı kullanabilmesi için ayar dosyalarına aşağıdaki JSON konfigürasyonunu eklemeniz yeterlidir:

{
  "mcpServers": {
    "robo-market-search": {
      "command": "robo-mcp",
      "args": []
    }
  }
}

Not: Komutun çalışabilmesi için robo-mcp komutunun sistem PATH'inize eklenmiş olması gerekir. Gerekirse "command": "/tam/yol/.venv/bin/robo-mcp" şeklinde absolute (tam) dosya yolunu da verebilirsiniz.

Bu konfigürasyonu kullandığınız asistana göre aşağıdaki konumlara ekleyebilirsiniz:

1. Claude Desktop

Windows için %APPDATA%\Claude\claude_desktop_config.json, macOS için ~/Library/Application Support/Claude/claude_desktop_config.json dosyasını düzenleyip yukarıdaki JSON'ı ekleyin.

2. Antigravity (Agent)

Antigravity'nin MCP ayar dosyasına (genellikle projenin kök dizinindeki veya global yapılandırma klasöründeki mcp.json veya mcp_servers.json) ilgili mcpServers objesini eklemeniz yeterlidir.

3. Cline (VS Code) / RooCode vb. Eklentiler

VS Code üzerinde çalışan Cline veya RooCode gibi MCP destekli AI eklentileri kullanıyorsanız, ayarlardan (veya ~/.vscode/global_storage/.../cline_mcp_settings.json üzerinden) yukarıdaki JSON'ı tanımlayarak aracı asistanınıza öğretebilirsiniz.

Note

ChatGPT, Gemini ve Ollama Desteği Hakkında:
ChatGPT ve Gemini'nin kendi resmi web arayüzleri veya Ollama'nın terminal arayüzü doğrudan yerel MCP sunucularını desteklemez. Ancak VS Code içerisindeki Cline gibi eklentilerin API ayarlarına giderek arka planda çalışacak model olarak ChatGPT, Gemini veya yerel bilgisayarınızdaki Ollama modellerini (örn. llama3) seçerseniz; bu modellerin tamamı robo-mcp aracımızı sorunsuzca kullanabilir.

LLM ile Nasıl Kullanılır?

Claude ile sohbet ederken şu tarz komutlar verebilirsiniz:

  • "Bana Türkiye'den ucuz bir ESP32-CAM ve HC-SR04 bul."
  • "Bir Arduino robot projesi yapmak istiyorum, gereken temel parçaları Türkiye marketlerinden araştırıp maliyet tablosu çıkarır mısın?"

LLM, arka planda robo-mcp aracını çağırıp güncel fiyat/stok bilgilerini çekecek ve size sunacaktır.

Hızlı Başlangıç (Python SDK / Birleştirilmiş Arama)

from robo_market_search import UnifiedSearchClient

client = UnifiedSearchClient()
products = client.search(query="arduino", limit_per_store=5)

for p in products:
    print(f"[{p.store}] {p.name} - {p.price} {p.currency} (Stok: {p.in_stock})")

Bireysel Market Araması

Sadece belirli bir markette arama yapmak isterseniz:

from robo_market_search import RobotistanClient

client = RobotistanClient()
products = client.search_component("esp32", limit=3)

Lisans

MIT License