30book-mcp
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., "@30book-mcp Find the cheapest hardcover edition of The Little Prince on 30book and show its price in Toman."
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.
30book-mcp: 30book MCP server for AI agents
Let your AI agent search Iran's 30book bookstore (۳۰بوک). An unofficial, read-only MCP server for 30book, an Iranian online bookstore with about 200,000 printed books: search by title, compare editions and publishers, see list and discounted prices in Toman, stock, ISBN, authors, translators, reviews, best sellers and discounts, all from Claude, Cursor or Copilot.
For AI agents · Why · What it can do · Quick start · Tools · How it works · Good to know · FAQ · Configuration · فارسی · Development · Related servers · Disclaimer · License
For AI agents
What: unofficial MCP server for 30book (30book.com), an Iranian online bookstore. Search terms work best in Persian (titles, names); prices in Toman.
Install:
uvx 30book-mcporclaude mcp add 30book -- uvx 30book-mcp. Transport: stdio. Needs uv (Python 3.10+), orpip install 30book-mcp.Auth: none, no API key or account. Optional
SIBOOK_MCP_PROXY(HTTP proxy URL, or a comma-separated list, for requests to 30book.com).Access: read-only. It never logs in and has no cart, checkout, wishlist or review-writing tools, so no confirmation is needed before calling any tool.
Tools: 14, all prefixed
sb_. Start withsb_search,sb_book,sb_bestsellers,sb_deals,sb_browse. Typical sequence:sb_search->sb_book->sb_similarorsb_reviews; for one person or publisher,sb_find_person/sb_find_publisher->sb_author/sb_publisher.Units: prices in Toman (
pricelist price,final_priceto pay,discount_pctint). Stock is yes/no, never a count. About 20 books per page (award pages about 22).Use when: comparing editions, publishers, prices, stock or ratings of printed Iranian and foreign books on 30book.
Do not use when: the user wants to buy or order (no cart or checkout), needs shipping cost (quoted at checkout), wants e-books or audiobooks, or other bookstores.
Machine-readable:
server.jsonand the iran-mcp catalog (TOOLS.md,servers.json,llms.txt).
Related MCP server: digikala-mcp
Why
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.
What it can do
Search books by title (exact phrase or word by word), with sort, in-stock, publisher, author and translator filters
Compare editions and publishers: the same title from several publishers, list price against the price to pay
Book details: price, discount, stock, authors, translators, publisher, pages, cover, size, ISBN, language, edition (print number), year (Shamsi), weight, categories, rating, tags, description
Browse categories, fiction genres, national literatures, literary award lists and tags
Publishers and people: one publisher's catalogue, everything by an author or translator, name to id lookups
Reader opinion: reviews with stars and the rating summary, similar books
Popular and cheap: site-wide best sellers, newest books, best sellers by biggest discount
Read-only by design: no login, no cart, no orders
Example prompts:
"Cheapest edition of The Little Prince (شازده کوچولو) with a hard cover on 30book?"
"List books by this translator under 300,000 Toman and show their ratings."
"What are the best sellers in history right now, and which has the biggest discount?"
ارزان‌ترین چاپ رمان «صد سال تنهایی» در ۳۰بوک کدام است؟
پرفروش‌ترین کتاب‌های روانشناسی را با قیمت و تخفیف نشان بده.
کتاب‌های این ناشر را از ارزان به گران مرتب کن.
Quick start
You need uv. No API key or account.
claude mcp add 30book -- uvx 30book-mcpSettings → Developer → Edit Config, then add:
{
"mcpServers": {
"30book": { "command": "uvx", "args": ["30book-mcp"] }
}
}Add the Claude Desktop block above to ~/.cursor/mcp.json (or .cursor/mcp.json in a project).
Click Install in VS Code above, or add to .vscode/mcp.json:
{
"servers": {
"30book": { "type": "stdio", "command": "uvx", "args": ["30book-mcp"] }
}
}codex mcp add 30book -- uvx 30book-mcpOr in ~/.codex/config.toml:
[mcp_servers.30book]
command = "uvx"
args = ["30book-mcp"]Add to ~/.gemini/settings.json:
{
"mcpServers": {
"30book": { "command": "uvx", "args": ["30book-mcp"] }
}
}Add the Claude Desktop block to ~/.codeium/windsurf/mcp_config.json.
It is a standard stdio MCP server: run uvx 30book-mcp, or pip install 30book-mcp and run 30book-mcp.
Behind a proxy, set SIBOOK_MCP_PROXY=http://host:port (system proxy variables are ignored on purpose).
Tools
All 14 tools are read-only and prefixed sb_. Prices are Toman. Pass book, publisher and person ids between tools.
Tool | What it does |
| Search by title (exact phrase or word by word) with sort, in-stock, publisher, author and translator filters; 20 per page |
| Books of a category (section, subject, topic), fiction genre, national literature, literary award or tag |
| One publisher's catalogue with a short description |
| Everything by one author or translator |
| Publisher name to id |
| Author / translator name to id |
| Category sections and their subjects (codes for |
| Genres, national literatures, award lists and current tags |
Tool | What it does |
| Price, final price, discount %, stock, authors, translators, publisher, pages, cover, size, ISBN, language, edition (print number), year (Shamsi), weight, categories, rating, tags, description |
| Similar books, more by the author, more by the translator (a list is empty when the site only shows best sellers) |
| Reader comments with stars, plus the rating summary |
Tool | What it does |
| Site-wide best sellers |
| Newest books |
| Best sellers, optionally sorted by biggest discount |
All tools are annotated readOnlyHint: true and return compact JSON.
How it works
AI agent (Claude, Cursor, Copilot, ...)
│
│ MCP over stdio
▼
30book-mcp (runs on your machine)
│
│ HTTPS (Chrome TLS/HTTP2 fingerprint) + SignalR long polling
└──────▶ 30book.com book pages, Blazor-drawn list pagesBook pages, the home page and landing pages are plain server-rendered HTML and are parsed directly.
Search, category, publisher, author, genre and tag pages are built after load by a Blazor Server circuit. The server opens one over SignalR long polling, applies the binary render batches to a small DOM and reads the cards. Paging, sort and filters are URL query parameters, so no clicks are simulated; only the name boxes on the publisher and author index pages use a fired event.
It runs on your machine and calls 30book directly; there is no hosted server in between.
Good to know
Prices are in Toman. HTML prices are Toman; the JSON-LD on book pages is Rial (x10) and is only used for sold-out books.
priceis the list price,final_priceis what you pay,discount_pctis computed.in_stock: falsemeans sold out (the price may be the last known one).Stock is yes/no only, never a count.
Speed: list pages take 2 to 5 seconds (a Blazor session is opened per list), book pages about 1 second. Book pages are cached for 5 minutes, so book -> similar -> reviews is one fetch.
Search is name-fragment based. The site stores some names with Arabic yeh / kaf, so a person or publisher lookup can miss; try a shorter word.
Categories:
bts-Nsection pages are landing pages only; lists work for subject and topic codes (seesb_categories). Award pages show about 22 books per page and ignore sort.No price-range filter and no result count; only the last page number is known.
Special offers on the site are mostly stationery, so
sb_dealsuses best sellers or one subject sorted by discount.Not covered: shipping cost (quoted at checkout after login), e-books, audiobooks, buying.
Request rate: at most 2 requests at once with a short random delay, and timeouts, 429 and 5xx are retried up to twice. Keep your own call rate low; the site's
robots.txtdisallows*/searchfor crawlers.Proxy:
SIBOOK_MCP_PROXY(see Configuration).
FAQ
30book has no public API. 30book-mcp is an unofficial MCP server with 14 read-only tools that reads the site's
pages and exposes them to any MCP client, so an agent can search books and compare prices.
Run claude mcp add 30book -- uvx 30book-mcp, or use the matching config in Quick start for Claude
Desktop, Cursor, VS Code, Codex CLI, Gemini CLI or Windsurf, then ask in plain language, in Persian or English.
No, and that is deliberate. It never logs in and never calls cart, checkout, wishlist or review endpoints. The agent finds the best edition; you order on the site.
The site stores some names with Arabic yeh / kaf. Try a shorter word, or the extended=true option of sb_search.
It is free and needs no key. It calls 30book.com directly; if that host is unreachable from your network, set
SIBOOK_MCP_PROXY to an HTTP proxy. System proxy variables are ignored on purpose.
Requests use a Chrome TLS/HTTP2 fingerprint. If the site still serves a bot-check page, install the optional browser
extra (pip install "30book-mcp[browser]", then patchright install chromium) to clear it once.
No, 30book sells printed books (and some stationery). For e-books and audiobooks see taaghche-mcp and fidibo-mcp.
Use the full path to uvx (where uvx on Windows, which uvx on macOS/Linux) as command.
npx @modelcontextprotocol/inspector uvx 30book-mcpConfiguration
Variable | Default | Meaning |
| unset | Optional HTTP proxy URL for requests to 30book.com, or a comma-separated list used one at a time (the next one after a block or connect error). System proxy settings are ignored |
فارسی: سرور MCP کتاب ۳۰بوک
30book-mcp یک سرور MCP غیررسمی و فقط‌خواندنی برای ۳۰بوک (30book.com)، فروشگاه اینترنتی کتاب در ایران با حدود ۲۰۰ هزار عنوان کتاب چاپی، است. این سرور به دستیار هوش مصنوعی شما (Claude، Cursor، Copilot و ...) اجازه می‌دهد کتاب جستجو کند، چاپ‌ها و ناشران را مقایسه کند و قیمت و تخفیف را ببیند.
چه کارهایی می‌کند
جستجوی کتاب با عنوان، و فیلتر ناشر، نویسنده، مترجم و موجودی.
مقایسهٔ چاپ‌ها و ناشران با قیمت (تومان)، قیمت پس از تخفیف و درصد تخفیف.
مشخصات کتاب: موجودی، شابک، تعداد صفحه، نوع جلد، قطع، نوبت چاپ، سال نشر، نویسنده و مترجم.
مرور موضوعات: دسته‌بندی‌ها، ژانرها، ادبیات ملل، جوایز ادبی و برچسب‌ها.
نظرات خوانندگان با امتیاز، کتاب‌های مشابه، پرفروش‌ها، تازه‌ها و تخفیف‌ها.
نکته‌ها
فقط خواندنی است: وارد حساب نمی‌شود، سبد خرید نمی‌سازد و سفارش ثبت نمی‌کند.
همه قیمت‌ها به تومان است. موجودی فقط «موجود» یا «ناموجود» است، نه تعداد.
هزینهٔ ارسال در سایت عمومی نیست و هنگام ثبت سفارش محاسبه می‌شود.
کلید API یا حساب کاربری لازم ندارد. جستجو با کلمات فارسی بهتر جواب می‌دهد.
نصب (اول uv را نصب کنید). در Claude Code:
claude mcp add 30book -- uvx 30book-mcpدر Claude Desktop، Cursor و بقیه برنامه‌ها همان تنظیم بخش Quick start را بگذارید.
نمونه پرسش‌ها
«ارزان‌ترین چاپ شازده کوچولو با جلد گالینگور کدام است؟»
«پرفروش‌ترین کتاب‌های ۳۰بوک کدام‌اند و کدام بیشترین تخفیف را دارند؟»
«کتاب‌های این مترجم را زیر ۳۰۰ هزار تومان نشان بده.»
عبارت‌های جستجو: خرید کتاب، قیمت کتاب، مقایسه قیمت کتاب، کتاب‌فروشی اینترنتی، ۳۰بوک، سی‌بوک، تخفیف کتاب، پرفروش‌ترین کتاب‌ها، ناشر، مترجم، شابک، سرور MCP فارسی.
Development
git clone https://github.com/sepehr071/30book-mcp && cd 30book-mcp
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 toolTools live in src/sibook_mcp/catalog.py and product.py (the Python package is sibook_mcp, because a module name
cannot start with a digit); each is a typed async function with a docstring that tells the agent when to use it. A test
checks that the tool tables in this README match the server. Issues and PRs are welcome.
Releases: bump the version in pyproject.toml and server.json, then push a v* tag. GitHub Actions tests,
publishes to PyPI and the MCP Registry, and creates the GitHub Release.
Related servers
Taaghche MCP server for Iranian e-books and audiobooks
Fidibo MCP server for Persian e-books and audiobooks
Shopino MCP server for another Iranian online shop
Digikala MCP server for Iran's largest online store
iran-mcp: catalog of all Iranian-service MCP servers
Listed on mcpfarsi.ir, the Persian MCP marketplace
Disclaimer
Unofficial and not affiliated with or endorsed by 30book. It reads the site's public pages, which can change without notice. It is read-only: it never logs in and never changes anything on the site. Please keep request rates reasonable.
Author
Built and maintained by Sepehr Radmard (سپهر رادمرد). Connect on LinkedIn or follow @sepehr071 on GitHub for more MCP servers for Iranian websites, all listed in iran-mcp. If this saves you time, a star on the repo helps other people find it.
License
If this saves you clicks, a star helps others find it.
Available Tools
14 toolssb_authorBooks of an author or translatorBRead-onlyIdempotent
Books by one author or translator (default newest first).
Inputs: person_id (required), page, sort, available_only.
sb_bestsellersBest sellersCRead-onlyIdempotent
Site-wide best sellers (10 pages).
Inputs: page, available_only.
sb_bookBook detailsARead-onlyIdempotent
One book: authors, translators, publisher, prices, stock, ISBN, details, categories (codes for sb_browse), rating, tags, description.
Use after sb_search for details and author / publisher ids. review_text and stats only with include_blurb. Next: sb_similar, sb_reviews.
Inputs: book_id (required), max_chars, include_blurb.
sb_browseBrowse a category, genre, nation, award or tagARead-onlyIdempotent
Books of a category (bta-N-M or btf-N-M-K), genre, nation, award list or tag.
Use to browse a topic instead of a keyword. bts-N sections are not listable. Award pages ignore sort / filters.
Inputs: key (required), kind (required), page, sort, +2 more.
sb_categoriesCategory sections and subjectsBRead-onlyIdempotent
Category sections or, for one section, its subjects. Codes go to sb_browse(kind='category').
Inputs: section.
sb_collectionsGenres, nations, awards and tagsARead-onlyIdempotent
Home-page genres, nations, award lists and tags; ids go to sb_browse(kind=...).
Inputs: no named parameters.
sb_dealsDiscounted booksARead-onlyIdempotent
Best sellers (or one subject) by biggest discount. Some publishers inflate list prices: compare final_price.
Inputs: page, subject, available_only.
sb_find_personFind an author or translator by nameARead-onlyIdempotent
Look up author / translator ids by name.
Pass the id to sb_author or sb_search(author_id=...). Misses some people: then read authors[].id from sb_book.
Inputs: name (required).
sb_find_publisherFind a publisher by nameARead-onlyIdempotent
Look up publisher ids by name. Pass the id to sb_search(publisher_id=...) or sb_publisher.
Inputs: name (required).
sb_new_releasesNew releasesCRead-onlyIdempotent
Newest books (10 pages).
Inputs: page, available_only.
sb_publisherBooks of a publisherBRead-onlyIdempotent
One publisher's books plus a short about text. Try sort='bestselling' or 'cheapest'.
Inputs: publisher_id (required), page, sort, available_only.
sb_reviewsReader reviews of a bookCRead-onlyIdempotent
Reader comments and the rating summary; only the first comments on the page are available.
Inputs: book_id (required), full_text.
sb_searchSearch booksARead-onlyIdempotent
Search books by title.
Use first for any book question. Editions are separate books: compare final_price. Next: sb_book.
Inputs: query (required), page, sort, extended, +4 more.
sb_similarSimilar books and more by the authorARead-onlyIdempotent
Similar books, more by the author and by the translator, up to 20 each. Other editions: use sb_search.
Inputs: book_id (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 14 tools
Most tools map to a distinct resource or discovery mode (title search, category browse, similar books, author, publisher, bestsellers, deals, reviews). The riskiest overlaps — sb_search vs sb_browse vs sb_similar, sb_find_publisher vs sb_publisher, and sb_bestsellers vs sb_deals — are explicitly disambiguated in the descriptions (e.g. 'Use to browse a topic instead of a keyword'). A few boundaries still rely on the agent reading prose carefully, but no two tools appear to do the same thing.
All 14 tools share the sb_ prefix and snake_case, so the family is instantly recognizable. The suffix mixes verbs (search, browse, find_publisher, find_person) with nouns (book, author, publisher, reviews, categories, collections), which is a minor inconsistency rather than a readability problem.
14 tools sit comfortably in the well-scoped range and cover distinct facets of a bookstore catalog. The two find_* lookup helpers are slightly redundant with sb_search's id parameters, so one or two tools could arguably be folded in, but nothing feels padded.
The surface covers the full discovery lifecycle: keyword search, taxonomy browsing, entity lookup, book detail, similar titles, ratings and reviews — a coherent read-only catalog domain. Gaps are minor and partly documented: reviews expose only the first comments on a page, editions are only reachable via re-search, and there is no cart/order or price-tracking operation if commerce is in scope.
Maintenance
Related MCP Connectors
Search Chinese books with Douban ratings, AI book guides and curated toplists. Free, no API key.
Search the Dutch book catalog (2M+ titles, daily updates): natural language, ISBN, new releases.
AI-curated book catalog that eliminates hallucinations and surfaces lesser-known titles.
Book discovery using an AI-curated book catalog that eliminates hallucinations and surfaces lesser-known titles.
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides read-only access to iranketab.ir, enabling book searches, comparison of translations and editions, and retrieval of prices in Toman, stock, ratings, and reader comments.9MIT
- AlicenseAqualityBmaintenanceEnables AI agents to search Digikala's catalogue, compare every seller's offers and prices, review ~30 days of price history, read customer reviews and Q&A, and surface current deals, all through read-only tools.23528 PyPI43MIT
- AlicenseAqualityBmaintenanceEnables AI agents to search products on Iran's marketplace of independent shops with price, category, shipping and discount filters, find the cheapest in-stock offers, and read product details, shops, categories and customer reviews. It is read-only and needs no authentication, so it can be used straight from Claude, Cursor or Copilot.7215 PyPIMIT
- AlicenseAqualityBmaintenanceEnables AI agents to search and compare Persian book editions, ratings, reviews, prices, authors, translators, publishers, and bestseller or prize lists from Iranketab in a read-only way without an API key.13163 PyPIMIT