Skip to main content

30book-mcp: 30book MCP server for AI agents

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 · فارسی

For AI agents

  • What: MCP server for 30book (30book.com), an Iranian online bookstore. Search terms work best in Persian (titles, names); prices in Toman.
  • Install: uvx 30book-mcp (needs uv, Python 3.10+; or pip install 30book-mcp). Transport: stdio.
  • Claude Code: claude mcp add 30book -- uvx 30book-mcp
  • Auth: none. Optional SIBOOK_MCP_PROXY (HTTP proxy URL for requests to 30book.com).
  • Access: read-only. It never logs in and has no cart, checkout, wishlist or review-writing tools.
  • Tools: 14, prefixed sb_*. Start with sb_search, sb_book, sb_bestsellers, sb_deals, sb_browse.
  • Typical sequence: sb_search -> sb_book -> sb_similar or sb_reviews; for one person or publisher, sb_find_person / sb_find_publisher -> sb_author / sb_publisher.
  • Use when: comparing editions, publishers, prices, stock or ratings of printed Iranian and foreign books on 30book.
  • Do not use when: buying or ordering (no cart or checkout), e-books or audiobooks, or other bookstores.
  • Output: compact JSON; prices are Toman (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.
  • Machine-readable: server.json; catalog of all Iran MCP servers: awesome-iran-mcp (TOOLS.md, servers.json, llms.txt).

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.

Quick start

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).

Tools

All tools are read-only and prefixed sb_. Prices are Toman.

Find books

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

One book

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 The discounted-books page, biggest discount first on request

How it works

  • Book 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 (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.
  • HTML prices are Toman; the JSON-LD on book pages is Rial (x10) and is only used for sold-out books.
  • List pages take 2 to 5 seconds, book pages about 1 second. Stock is yes/no only.

Development

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 pytest -q            # offline, recorded pages
uv run pytest -m live -q    # real site, one test per tool

API map and test report: ../30book/.

FAQ

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 کتاب ۳۰بوک

سرور MCP غیررسمی و فقط‌خواندنی برای فروشگاه کتاب ۳۰بوک در ایران، برای دستیارهای هوش مصنوعی مثل Claude، Cursor و Copilot: جستجوی کتاب، مقایسهٔ چاپ‌ها و ناشران، قیمت (تومان) و تخفیف، موجودی، مشخصات کتاب، نویسنده و مترجم، نظرات، پرفروش‌ها و تخفیف‌ها. نیازی به حساب یا کلید ندارد.

نصب: claude mcp add 30book -- uvx 30book-mcp

بعد بپرسید: «ارزان‌ترین چاپ شازده کوچولو با جلد گالینگور کدام است؟»

Metadata

Release files for 30book-mcp 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for 30book-mcp 0.1.2
File Size Uploaded
30book_mcp-0.1.2.tar.gz 147.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for 30book-mcp 0.1.2
File Interpreter ABI Platform
30book_mcp-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 176.5 kB

Release files / 30book_mcp-0.1.2.tar.gz

Download URL 30book_mcp-0.1.2.tar.gz
Size 147.9 kB
Tags Source
SHA-256 checksum
How to use checksums
7ba32f0cee71a31813f1b28c51ade7d8d2662e0c12fb7ad2982617da8f6484b4
BLAKE2b-256 checksum
How to use checksums
ab69fd209cb5fe2571ba28653574cd2466d4e85945301ee2a861ff410ca8b60b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / 30book_mcp-0.1.2-py3-none-any.whl

Download URL 30book_mcp-0.1.2-py3-none-any.whl
Size 28.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7539c11ea9af07fdb076081ba9643cf0e73f6cac47d8b9a48c56360ee7e76c23
BLAKE2b-256 checksum
How to use checksums
5527ef718db54b636823ab5fc618abc54a85559b0bbe04e7a09d8f306b37aa4f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page