bim-mcp
Provides read-only access to bim.com.tr, enabling retrieval of weekly Aktüel and İndirim date periods, priced product listings with filtering and sorting, product details, weekly price statistics, product-range categories, and the 81 Turkish provinces available in BİM's store finder.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@bim-mcp what are the cheapest deals in this week's BİM Aktüel?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
bim-mcp 🇹🇷
mcp-name: io.github.mohammad-abbasi-sh/bim-mcp
Unofficial read-only MCP server for bim.com.tr, BİM Birleşik Mağazalar A.Ş. — Turkey's largest hard-discount grocery chain (13,032 stores in Türkiye as of 30.06.2026). Weekly Aktüel deals with prices, product search, price statistics, the 11 product-range categories, and the 81 provinces in the store finder.
Built by Mohammad Abbasi as part of the "Turkey MCP factory" (Sepehr-style pipeline). Not affiliated with bim.com.tr or BİM.
For AI agents
Add to your MCP client config (stdio):
{
"mcpServers": {
"bim": {
"command": "uvx",
"args": ["bim-mcp==0.1.0"]
}
}
}Or run locally: python -m bim_mcp.server (needs mcp<2, curl-cffi).
Related MCP server: market-fiyatlari-mcp-server
Tools
Tool | Description |
| Aktüel + İndirim date periods — date key, Turkish label (e.g. "03 Kasım Salı"), kind ("aktuel"/"indirim") |
| Priced Aktüel products for one week — |
| Full detail of one product — |
| Price statistics for one week — count, min/median/mean/max in TL, 5 cheapest and 5 priciest products |
| The 11 product-range categories (Süt ve Süt Ürünleri, İçecekler, ...) with id, name, slug, URL |
| The 81 Turkish provinces in BİM's store finder (id + name). Per-city store addresses are NOT available — the finder lookup is session-gated on the site |
Example output (bim_aktuel_products / 03 Kasım 2026 week):
{"brand": "TURNA", "name": "AYÇİÇEK YAĞI PET ŞİŞE", "size": "5 L",
"price_try": 429.0,
"image_url": "https://cdn1.bim.com.tr/uploads/aktuel-urunler/1697_kucuk_543X467_2080_gda_0051_vector-smart-object.jpg",
"url": "https://www.bim.com.tr/aktuel-urunler/aycicek-yagi-pet-sise-26-10/aktuel.aspx",
"slug": "aycicek-yagi-pet-sise-26-10", "bim_id": "72460"}How it works
bim.com.tr serves its Aktüel pages fully server-rendered — no login, no API key, no session cookies. The Aktüel/İndirim date menu is a table inside <div class="subMenu aktuelsubmenu"> (rows link ?top=1&Bim_AktuelTarihKey=<key>). Products are <div class="product ..."> cards: brand in <h2 class="subTitle">, name in <h2 class="title">, size in <div class="gramajadet">, price split across <div class="text quantify">429,</div> + <span class="number">00</span> + <span class="curr">₺</span> (Turkish formatting: "." thousands, "," decimals). Two of the ~95 blocks per week are image-only banners with no price and are skipped. Categories come from /Markalar/<id>/<slug>.aspx links on the product-range page; provinces from the store-finder city dropdown. One site feature is documented, not worked around: the store finder posts to a KuramPortal gate with live page session tokens (bearer + page_SessionToken), so per-city store addresses are not offered. Transport uses Chrome TLS impersonation (curl-cffi, chrome120 with rotation); requests are spaced ~0.8s apart; everything is read-only.
Install
uvx bim-mcp==0.1.0 # run directly (needs uv)
# or
pip install bim-mcp==0.1.0
bim-mcp # starts the MCP server on stdioTests
python -m venv .venv && .venv/bin/pip install -e .
.venv/bin/python -m unittest discover -s tests -vOffline tests run on recorded fixtures (real pages fetched 2026-11-10); live tests hit bim.com.tr. Tests green at build time (see repo for counts) plus an MCP stdio smoke test.
Roadmap
Aktüel poster (Afişler) pages — weekly brochure images per date key
Store lookup if BİM ever publishes a session-free endpoint
Price history across Aktüel weeks (compare the same product week to week)
License
MIT — see LICENSE.
Built by Mohammad Abbasi — Almanibama · mabbasi.ir
Available Tools
7 toolsbim_aktuel_productsA
Priced Aktüel products for one week. date_key: a key from bim_list_aktuel_dates; omit for the current week. query: optional Turkish substring filter over brand + name + size (e.g. "yağ", "pirinç", "süt"). sort: "price_asc", "price_desc" or "name" (default: page order). limit 1..100 (default 50). Returns brand, name, size, price_try (TL), image_url, product url, slug and BİM id per product.
Inputs: sort, limit, query, date_key. Returns: result
bim_healthA
Check whether bim.com.tr is reachable right now.
Returns status ok (HTTP 200), blocked (HTTP 403/429 — bot wall or rate limit) or error, plus the HTTP status and the probed URL. One polite request; it does not fetch any listings.
Inputs: no named parameters. Returns: result
bim_list_aktuel_datesA
Aktüel and İndirim date periods on bim.com.tr, each with its date key (Bim_AktuelTarihKey), Turkish label (e.g. "03 Kasım Salı", "03-30 Kasım") and kind ("aktuel" or "indirim"). Use a key with bim_aktuel_products / bim_price_stats. No arguments.
Inputs: no named parameters. Returns: result
bim_list_categoriesA
The 11 BİM product-range categories (Süt ve Süt Ürünleri, İçecekler, Bakliyat & Unlu Mamüller, ...), each with id, Turkish name, slug and URL. No arguments.
Inputs: no named parameters. Returns: result
bim_list_citiesA
The 81 Turkish provinces in BİM's store finder (id + name), as published on bim.com.tr. Note: per-city store addresses are NOT available — the finder lookup is session-gated on the site. No arguments.
Inputs: no named parameters. Returns: result
bim_price_statsA
Price statistics for one Aktüel week: count, min/median/mean/ max price in TL, the 5 cheapest and 5 priciest products. date_key: a key from bim_list_aktuel_dates; omit for the current week.
Inputs: date_key. Returns: result
bim_product_detailA
Full detail of one Aktüel product. slug: the slug from a product URL (e.g. "aycicek-yagi-pet-sise-26-10" from /aktuel-urunler/aycicek-yagi-pet-sise-26-10/aktuel.aspx). Returns name, size, current price_try (TL), large image_url, BİM id, slug and url. Note: the detail page shows no brand — brand comes from bim_aktuel_products.
Inputs: slug (required). Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 7 tools
Each tool targets a clearly distinct resource or action: health probe, three reference lists, weekly product listing, single-product detail, and price statistics. There is little risk of confusing bim_aktuel_products with bim_product_detail or bim_price_stats because their outputs and arguments are distinct.
All tools share the bim_ prefix and snake_case, making the set predictable and readable. There is a minor convention split between bim_list_* reference tools and bare-noun tools such as bim_aktuel_products, bim_product_detail, and bim_price_stats.
Seven tools is well-scoped for a focused BİM site wrapper, with separate utilities for health, reference data, product browsing, detail lookup, and statistics. Each tool has a clear role and none feels redundant.
The core Aktüel flow is covered: dates, product listing, product detail, and price stats, plus categories, cities, and health. However, categories and cities are not connected to product retrieval, and bim_list_aktuel_dates exposes both aktuel and indirim kinds while only Aktüel products have a corresponding listing tool.
Maintenance
Related MCP Connectors
Live search across 250,000+ verified UK and Canada retail deals. Read-only, no auth required.
Read-only grocery-list comparisons for supported Canadian cities, with dated prices and coverage.
Public read-only offers, prices, product details, links and safe AI integration guidance.
Read-only UK and Australian supermarket shelf-price index and UK daily basket snapshots, CC BY 4.0. Not live prices; no product names. For product-level prices on demand, the pay-per-event UK Supermarket Price Scraper (Tesco, Sainsbury's, Asda, Aldi: https://apify.com/yappman/uk-supermarket-price-scraper) and AU Supermarket Price Scraper (Aldi Australia: https://apify.com/yappman/au-supermarket-price-scraper) run on the Apify Store, charged to the Apify account that runs them, and can be reached through Apify's MCP server.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables searching and comparing product prices across Turkish supermarket chains (BIM, A101, Migros, SOK, etc.) with location-based filtering. Provides access to Turkish market data from marketfiyati.org.tr for price tracking and comparison.3MIT
- AlicenseAqualityDmaintenanceEnables querying Turkish market prices, searching products, and comparing prices across different stores using the Market Fiyatı API.38 npm37MIT
- FlicenseNot gradedqualityDmaintenanceEnables searching and comparing grocery prices from Turkish markets via marketfiyati.org.tr.5-
- AlicenseAqualityCmaintenanceRead-only MCP server for Greek supermarket product and price data from PosoKanei. Enables product search, barcode lookup, price comparison across retailers, and basket evaluation.1049 npm5MIT