
Jabama
io.github.sepehr071v0.1.0Updated Oct 5, 2026
Unofficial read-only Jabama: villas and stays with exact prices, group tours, events and theater.
Overview
Unofficial read-only access to Jabama stays, tours, events and theater, with exact per-night prices for given dates and guests.
- What it does
- Wraps Jabama's public endpoints in 21 read-only tools. It resolves Persian place names and free-text requests into search filters, searches villas, suites and eco-lodges by dates, guests and amenities, and returns whole-stay prices. It also reads nightly calendars, exact price quotes, house rules, amenities, reviews and host listings, and searches group tours, events and theater with free seats.
- When to use it
- Use it when planning travel in Iran and you want an assistant to compare stays, tours or shows with the real payable price for specific dates and guest counts, rather than the single price shown on a search card. It is read-only, so it is for research and comparison, not booking.
- Requirements
- Runs locally over stdio; needs uv (uvx jabama-mcp) or pip install jabama-mcp. No account, login or API key. Network access to Jabama's public endpoints is required. Optional JABAMA_MCP_PROXY environment variable sets an HTTP proxy; system proxy settings are ignored.
Installation
In SourceWeft
- Open Jabama in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
🏡 jabama-mcp
Let your AI agent plan the trip on Jabama.
Search villas, suites and eco-lodges with the exact price for your dates and guests, read rules and reviews,
and find group tours, events and theater seats, all from Claude, Cursor or Copilot.
[PyPI] [Python] [CI] [MCP Registry] [License: MIT]
[Install in Cursor] [Install in VS Code]
Quick start · What it can do · Tools · FAQ · فارسی
Why
On Jabama (jabama.com) a search card shows one price, but the real cost of a stay depends on the nights you pick
(weekends and holidays are priced differently), how many guests come (every guest above the base count adds a
nightly charge) and long-stay discounts. An agent with jabama-mcp reads the search, the nightly calendar and the
site's own price quote, so the number it gives you is the number you pay:
You: A cheap eco-lodge near Ramsar for 4 people, 20 to 23 October?
Agent: calls
jb_find_destination(query="رامسر")→jb_search_stays(keyword="city-ramsar", check_in="2026-10-20", check_out="2026-10-23", guests=4, types=["ecotourism"], sort="cheapest")→jb_price_quote(code=328353, check_in="2026-10-20", check_out="2026-10-23", guests=4)نسا - افرا in Tonekabon: 2,540,000 Toman for 3 nights and 4 guests (or 4 parts of 635,000). The host must accept the booking first; cancelling up to 24 Mehr costs 10% of the first night and 10% of the rest.
Real tool output from 2026-10-04; prices change all the time. Prices are in Toman.
What it can do
- 📍 Find a place: Persian city, area or landmark names (a beach, a mall, an airport) to search filters
- 🗣️ Understand a request: free text like «ویلای استخردار در رامسر برای ۶ نفر» becomes filters, with Jabama's own AI parser
- 🔎 Search stays by dates and guests with type, amenities, region, rooms, price, instant booking and rating filters
- 🧾 Get the exact price for dates and guests, night by night, with discounts and the cancellation windows
- 📅 See the calendar: free nights and nightly prices for the next ~76 days, with weekends and holidays
- ⭐ Check quality: house rules, amenities (and what is missing), reviews, host reputation, similar stays
- 🚌 Group tours (jabama.tours): search, departures with free seats and per-package prices, day plans
- 🎭 Events and theater (jabama.events): what is on, sessions, seats left, free seats by row and price
- 🔒 Read-only by design: no login, no booking, no seat holds, no payment
Quick start
You need uv.
Claude Code
Claude Desktop
Settings → Developer → Edit Config, then add:
Cursor
Click Install in Cursor above, or add the Claude Desktop block to ~/.cursor/mcp.json.
VS Code (Copilot agent mode)
Click Install in VS Code above, or add to .vscode/mcp.json:
Anything else
It's a standard stdio MCP server: run uvx jabama-mcp, or pip install jabama-mcp and run jabama-mcp.
Then just ask:
- "Cheapest villa with a pool in Ramsar for 6 people next weekend, and the exact total?"
- "Which nights is this cottage free in November, and which are cheapest?"
- "A one-day nature tour from Tehran this month, with free seats for 3."
- "What's on in Tehran on Friday evening under 500,000 Toman? Show the free seats."
- قوانین کنسلی جاباما چیست و چقدر از پول برمیگردد؟
How it works
jabama-mcp runs locally and calls the same public endpoints the Jabama websites use.
There's no hosted server in between, no API key, and nothing about you is sent anywhere else.
Tools
Listings are identified by their numeric code (328353, the number in jabama.com/stay/ecotourism-328353);
tours by an 8-digit id, events and plays by the id in their page URL.
🔎 Stay search (4)
🏡 One stay (6)
ℹ️ Help and guides (2)
🎭 Events and theater (6)
🚌 Group tours (3)
All 21 tools are annotated readOnlyHint: true and return compact structured JSON, so they don't flood the agent's context.
Good to know
- Prices are in Toman everywhere (1 Toman = 10 Rial). The stays API answers in Rial; the server divides by 10. Tours are Toman per person, events and theater Toman per ticket (or per unit, e.g. one boat, when
pricingisper_unit). - Stay prices are for the whole stay for the searched dates and guests (
total_price);cheapest_nightis the cheapest single night, not the average. Without dates a search prices one default night. - Count children as guests. The quote has no child price, so
guestsis everyone who stays. - Dates are Gregorian
YYYY-MM-DD(1405-07-28 = 2026-10-20); times are Tehran local. Stays can be quoted for about the next 76 days. jb_price_quoteis the number to trust. It is the same read-only quote the listing page shows; it creates no booking. Quotes show no tax line; Jabama's help center says 1.5% tax is added when booking.- Instant vs request:
instant_booking: falsemeans the host must accept first.instant_onlykeeps only instant listings. - Tour seats: only
jb_tourhas correct free seats; tour lists count seats once per package. - Ratings are 0–5;
nullmeans not rated yet. Stay reviews carry only a Jalali month, not a date.
FAQ
Can it book a villa or buy a ticket for me?
No, and that's deliberate. It has no login and never calls booking, order, payment, seat-hold or wallet endpoints.
jb_price_quote only asks for a price. The agent finds the best option; you book on the site.
A search with dates returns 0 results
Usually nothing is free for those dates with those filters, or the dates are past the ~76-day calendar. Try other dates or fewer filters. Dates must be Gregorian; the server rejects Jalali-looking dates instead of searching.
Do I need an Iranian IP?
No geo block was seen: direct calls and calls through a proxy in Turkey both worked (2026-10-04). Cloud servers
were not tested; if Jabama blocks one, set JABAMA_MCP_PROXY.
I get "blocked the request (HTTP 403)"
Jabama's web firewall rejects requests that don't look like a browser; the server already sends a browser
User-Agent. If it still happens, wait a minute, turn off a VPN, or set JABAMA_MCP_PROXY. Normal system proxy
variables are ignored on purpose, because direct calls are the fastest.
The theater seat map says "not available right now"
The theater seat map comes live from Jabama's ticketing partner, which sometimes refuses for a while. The showtimes and
seats_left still work; try the seat map again later or for another showtime.
Claude Desktop says uvx is not found
Use the full path to uvx (where uvx on Windows, which uvx on macOS/Linux) as command.
How do I debug what the agent sees?
Configuration
فارسی
jabama-mcp به دستیار هوش مصنوعی شما (Claude، Cursor، Copilot و ...) اجازه میدهد در جاباما ویلا، سوئیت و اقامتگاه بومگردی پیدا کند، قیمت دقیق را برای تاریخ و تعداد نفرات شما بگیرد، قوانین و نظرات را بخواند و تورها، رویدادها و صندلیهای خالی تئاتر را هم پیدا کند.
- فقط خواندنی است: وارد حساب نمیشود، رزرو ثبت نمیکند، صندلی نگه نمیدارد و پرداخت نمیکند.
- قیمت هر شب، هزینه نفر اضافه، تخفیف اقامت طولانی و قوانین کنسلی را نشان میدهد.
- همه قیمتها به تومان است.
- روی سیستم خود شما اجرا میشود و به هیچ سرور واسطی داده نمیفرستد.
نصب در Claude Code:
بعد بپرسید: «ارزانترین ویلای استخردار رامسر برای ۶ نفر از ۲۸ مهر تا ۱ آبان، با قیمت نهایی»
Development
Tools live in src/jabama_mcp/search.py, stay.py, info.py, tours.py and events.py; each is a typed async
function with a docstring that tells the agent when to use it. Issues and PRs are welcome, especially new tools and
fixes for API changes.
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.
Disclaimer
Unofficial and not affiliated with or endorsed by Jabama. It uses the public endpoints of the jabama.com, jabama.tours and jabama.events websites, which can change without notice. Please keep request rates reasonable.
License
Source: README.md at commit d24044b
Tools
0Version history
1- v0.1.0LatestOct 5, 2026