Observed since 20 Oct, 15:27 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Unofficial read-only MCP server for 30book (30book.com): search Iranian printed books, compare editions and publishers, prices in Toman, discounts, authors and bestsellers.
Let your AI agent search Iran's 30book bookstore. Unofficial, read-only MCP server for 30book (۳۰بوک, about 200,000 printed Iranian and foreign books): search by title, compare editions and publishers, see list and discounted price in Toman, stock, pages, cover type, ISBN, print run, authors, translators, reviews, best sellers and discounts. No account, no API key, no login, no cart.
Quick start · Tools · How it works · FAQ · فارسی
uvx 30book-mcp (needs uv, Python 3.10+; or pip install 30book-mcp). Transport: stdio.claude mcp add 30book -- uvx 30book-mcpSIBOOK_MCP_PROXY (HTTP proxy URL, or a comma-separated list, for requests to 30book.com).sb_*. Start with sb_search, sb_book, sb_bestsellers, sb_deals, sb_browse.sb_search -> sb_book -> sb_similar or sb_reviews; for one person or publisher, sb_find_person / sb_find_publisher -> sb_author / sb_publisher.price list price, final_price to pay, discount_pct); stock is yes/no, not a count; pass the book, publisher and person ids between tools.TOOLS.md, servers.json, llms.txt).30book has no public API and its list pages are drawn by a live Blazor Server session, so a plain scraper sees empty pages. This server speaks that protocol (SignalR long polling, no browser needed) and parses the book pages, so an agent can answer "cheapest edition of Little Prince with a hard cover", "everything by this translator under 300,000 Toman" or "what are the best sellers in history" in a few calls.
You need uv.
claude mcp add 30book -- uvx 30book-mcp
Other clients (Claude Desktop, Cursor, VS Code): run the command uvx with argument 30book-mcp.
Behind a proxy, set SIBOOK_MCP_PROXY=http://host:port (system proxy variables are ignored on purpose). A comma-separated list is used one proxy at a time, moving on after a block or connect error.
Requests use a Chrome TLS/HTTP2 fingerprint. If the site ever serves a bot-check page, install the optional browser extra (30book-mcp[browser], then patchright install chromium) to clear it once.
All tools are read-only and prefixed sb_. Prices are Toman.
| Tool | What it does |
|---|---|
sb_search | Search by title (exact phrase or word by word) with sort, in-stock, publisher, author and translator filters; 20 per page |
sb_browse | Books of a category (section, subject, topic), fiction genre, national literature, literary award or tag |
sb_publisher | One publisher's catalogue with a short description |
sb_author | Everything by one author or translator |
sb_find_publisher | Publisher name to id |
sb_find_person | Author / translator name to id |
sb_categories | Category sections and their subjects (codes for sb_browse) |
sb_collections | Genres, national literatures, award lists and current tags |
| Tool | What it does |
|---|---|
sb_book | Price, final price, discount %, stock, authors, translators, publisher, pages, cover, size, ISBN, print run, year, categories, rating, description |
sb_similar | Similar books, more by the author, more by the translator |
sb_reviews | Reader comments with stars, plus the rating summary |
| Tool | What it does |
|---|---|
sb_bestsellers | Site-wide best sellers |
sb_new_releases | Newest books |
sb_deals | Best sellers, optionally sorted by biggest discount |
blazor.py) and reads the
cards. Paging, sort and filters are URL query parameters (pg, sort, qt, pub, wtr, inp, stp), so no
clicks are simulated; only the name boxes on the publisher and author index pages use a fired event.export HTTPS_PROXY=http://127.0.0.1:10898 HTTP_PROXY=http://127.0.0.1:10898 # uv downloads only
uv sync
uv run ruff check . && uv run ruff format --check .
uv run python -m pytest -q # offline, recorded pages
uv run python -m pytest -m live -q # real site, one test per tool
API map and test report: ../30book/.
Does it buy anything? No. It never logs in and never calls cart, checkout, wishlist or review endpoints.
Why is a search sometimes empty? The site stores some names with Arabic yeh / kaf; try a shorter word or extended=true.
Is it affiliated with 30book? No. Unofficial; keep the request rate low.
Is there a 30book API or MCP server for AI agents? 30book has no public API. This server reads the site's pages and exposes them as MCP tools, so any MCP client can search books and compare prices.
How do I use 30book with Claude, Cursor or Copilot? Run claude mcp add 30book -- uvx 30book-mcp, or give your
client the command uvx with argument 30book-mcp (or pip install 30book-mcp).
Is it free, and does it work outside Iran? It is free and needs no key. It calls 30book.com directly; if that
host is unreachable from your network, set SIBOOK_MCP_PROXY.
If this saves you clicks, a star helps others find it.
سرور MCP غیررسمی و فقطخواندنی برای فروشگاه کتاب ۳۰بوک در ایران، برای دستیارهای هوش مصنوعی مثل Claude، Cursor و Copilot: جستجوی کتاب، مقایسهٔ چاپها و ناشران، قیمت (تومان) و تخفیف، موجودی، مشخصات کتاب، نویسنده و مترجم، نظرات، پرفروشها و تخفیفها. نیازی به حساب یا کلید ندارد.
نصب: claude mcp add 30book -- uvx 30book-mcp
بعد بپرسید: «ارزانترین چاپ شازده کوچولو با جلد گالینگور کدام است؟»
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.3.0 | 18 Oct 2026 | 5 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 15:27 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:6f125a2707aebe2539a4795abc0a1287cc537fb02233268ff3c3db7f893e9d7e