
Security News
Cloudflare Introduces a Faster TypeScript Compiler Written in Rust
Cloudflare introduces tsrs, a Rust port of TypeScript’s compiler promising faster checks and lower memory use, with the TypeScript team’s help.
30book-mcp
Advanced tools
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 (۳۰بوک).
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
uvx 30book-mcp or claude mcp add 30book -- uvx 30book-mcp. Transport: stdio. Needs uv (Python 3.10+), or pip install 30book-mcp.SIBOOK_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.
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.price list price, final_price to pay, discount_pct int). Stock is yes/no, never a count. About 20 books per page (award pages about 22).server.json and the
iran-mcp catalog (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.
Example prompts:
You need uv. No API key or account.
claude mcp add 30book -- uvx 30book-mcp
Settings → 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-mcp
Or 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).
All 14 tools are read-only and prefixed sb_. Prices are Toman. Pass book, publisher and person ids between tools.
| 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, language, edition (print number), year (Shamsi), weight, categories, rating, tags, 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 |
All tools are annotated readOnlyHint: true and return compact JSON.
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 pages
price is the list price, final_price is what you pay, discount_pct is computed. in_stock: false means sold out (the price may be the last known one).bts-N section pages are landing pages only; lists work for subject and topic codes (see sb_categories). Award pages show about 22 books per page and ignore sort.sb_deals uses best sellers or one subject sorted by discount.robots.txt disallows */search for crawlers.SIBOOK_MCP_PROXY (see Configuration).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.
uvx is not foundUse the full path to uvx (where uvx on Windows, which uvx on macOS/Linux) as command.
npx @modelcontextprotocol/inspector uvx 30book-mcp
| Variable | Default | Meaning |
|---|---|---|
SIBOOK_MCP_PROXY | 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 |
30book-mcp یک سرور MCP غیررسمی و فقطخواندنی برای ۳۰بوک (30book.com)، فروشگاه اینترنتی کتاب در ایران با حدود ۲۰۰ هزار عنوان کتاب چاپی، است. این سرور به دستیار هوش مصنوعی شما (Claude، Cursor، Copilot و ...) اجازه میدهد کتاب جستجو کند، چاپها و ناشران را مقایسه کند و قیمت و تخفیف را ببیند.
چه کارهایی میکند
نکتهها
نصب (اول uv را نصب کنید). در Claude Code:
claude mcp add 30book -- uvx 30book-mcp
در Claude Desktop، Cursor و بقیه برنامهها همان تنظیم بخش Quick start را بگذارید.
نمونه پرسشها
عبارتهای جستجو: خرید کتاب، قیمت کتاب، مقایسه قیمت کتاب، کتابفروشی اینترنتی، ۳۰بوک، سیبوک، تخفیف کتاب، پرفروشترین کتابها، ناشر، مترجم، شابک، سرور MCP فارسی.
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 tool
Tools 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.
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.
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.
If this saves you clicks, a star helps others find it.
FAQs
Unofficial read-only MCP server for 30book (30book.com): search Iranian printed books, compare editions and publishers, prices in Toman, discounts, authors and bestsellers.
The pypi package 30book-mcp receives a total of 400 weekly downloads. As such, 30book-mcp popularity was classified as not popular.
We found that 30book-mcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Cloudflare introduces tsrs, a Rust port of TypeScript’s compiler promising faster checks and lower memory use, with the TypeScript team’s help.

Security News
The PHP Foundation says Chainguard broke a security embargo ahead of critical RCE patches, as leaks disrupted the coordinated release.

Security News
PHP releases emergency patches for two critical RCE vulnerabilities as agencies urge organizations to take unpatched sites offline.