mcpbeat

Bookrails MCP Server

io.github.pinalmdave/bookrails
answering

Bookrails is answering right now. Last checked 9 min ago. It exposes 13 tools.

Find, compare, and book local service businesses: live availability, prices, reviews, booking.

The linked repository no longer exists on GitHub — it was deleted or made private.

Uptime history 41 hours of history
41 hours agonow
100.0%
Uptime 24h
91 of 91 checks
13
Tools
read from the server
784 ms
Response time
average over 24h
open, no key
Access
streamable-http

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 9 min ago.

run in your terminal
claude mcp add bookrails --transport http https://bookrails-api.azurewebsites.net/mcp/
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "bookrails": {
      "url": "https://bookrails-api.azurewebsites.net/mcp/"
    }
  }
}
~/.codex/config.toml
[mcp_servers.bookrails]
url = "https://bookrails-api.azurewebsites.net/mcp/"
.cursor/mcp.json
{
  "mcpServers": {
    "bookrails": {
      "url": "https://bookrails-api.azurewebsites.net/mcp/"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "bookrails": {
      "url": "https://bookrails-api.azurewebsites.net/mcp/"
    }
  }
}

Available tools 13

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

availability
check_availability
List open, bookable time slots for one service from the business's live calendar. Slots are held nothing — they can be taken by others until book_appointment succeeds, so book promptly after user confirmation.
get_availability_now
Answer urgency: 'who can fit me in today?', 'emergency plumber available now'. Returns only businesses with a genuinely open slot inside the window, sorted by soonest slot. Ideal for same-day and emergency requests (HVAC, plumbing, urgent dental).
ask
ask_business_question
Answer a specific question about one business, grounded in that business's own knowledge base (FAQs, policies, service descriptions) rather than model guesswork. Returns 'unknown' when unanswerable — never fabricates. Returns: {answer, confidence: 'high'|'low'|'unknown', source: 'faq'|'policy'|'services'}
book
book_appointment
Book the appointment. ONLY call after the user has explicitly confirmed the business, service, price, and exact slot. Writes to the business's calendar and emails/texts the customer a confirmation. Returns: {confirmation_id, status: 'confirmed' | 'pending_deposit', payment_url (present when a deposit is required — user completes payment on the hosted page), booking_page_url, cancellation_policy} Errors: SLOT_TAKEN (re-run check_availability and offer alternatives), DEPOSIT_REQUIRED, INVALID_CONTACT.
business
get_business_details
Get a business's full profile: services with prices and durations, hours, booking and cancellation policies, review summary, photos, and hosted booking page URL. Call this before quoting prices to the user. Returns: {business: BusinessSummary, services: list[ServiceItem], hours: dict[str, str], policy: BookingPolicy, review_summary: str}
businesses
search_businesses
Find top-rated local service businesses matching a need near a location. Returns ranked businesses with rating, distance, price band, one-line highlight, the soonest available slot, and a hosted booking URL. Results are bookable directly via check_availability + book_appointment.
cancel
cancel_or_reschedule
Cancel or reschedule an existing booking. Enforces the business's cancellation window; returns REFUND_FORFEITED warning when a deposit is non-refundable so the assistant can warn the user BEFORE confirming. Returns: {confirmation_id, status, refund_status, message}
compare
compare_businesses
Side-by-side comparison of 2-4 businesses the user is deciding between: prices for comparable services, ratings, soonest availability, policies, and a one-line 'best for' verdict per business. Returns: {comparison_table: list[dict], best_for: dict[str, str]}
join
join_waitlist
When no slot fits, capture demand instead of losing it: add the customer to the business's waitlist. They are auto-notified (email/SMS) when a matching slot opens. Only call after the user explicitly agrees to join the waitlist. Returns: {waitlist_id, position, status}
local
get_local_insights
Market-level answers: most-booked services in this area, typical price ranges, busiest days/times (book early), and top-rated businesses. Useful when the user asks broad questions like 'what do people usually get at a med spa' or 'when is the best time to book HVAC maintenance'. Returns: {popular_services: list[{name, median_price_usd, share}], busiest_days: list[str], booking_lead_time_days, top_rated: list[BusinessSummary]}
price
get_price_estimates
Answer 'how much does X cost near me' with real local prices — not national averages. Returns low/median/high from actual listed prices of businesses in the area, plus the 3 best-value businesses with links. Returns: {service, location, price_low_usd, price_median_usd, price_high_usd, sample_size, best_value: list[BusinessSummary]}
promotions
get_promotions
Answer 'any deals near me?' — current promotions, first-visit offers, and seasonal specials from local businesses, each with validity dates and a direct booking link. Returns: list[{business: BusinessSummary, offer, valid_until, terms}]
reviews
get_reviews
Answer 'is this place any good?' — recent reviews plus a themed summary (what customers praise, what they complain about) so the assistant can give a balanced recommendation. Returns: {rating, review_count, themes: {praise: [...], complaints: [...]}, recent_reviews: list[{rating, date, text_snippet}]}

Endpoints

URLTransportStateLatencyChecked
https://bookrails-api.azurewebsites.net/mcp/ streamable-http answering 801 ms 9 min ago

Bookrails — questions

Answers built from our own checks of this server.

What can Bookrails do?
It exposes 13 tools, read directly from the server on our last check. Among them: ask_business_question, book_appointment, cancel_or_reschedule, check_availability, compare_businesses, get_availability_now and 7 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is Bookrails working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 91 of 91 checks got a reply (100.0%), average response time 784 ms. The bar chart above shows every period we have measured.
Is Bookrails still maintained?
The linked repository no longer exists on GitHub — it was deleted or made private. We show this because it changes what you can expect: an unmaintained server may keep answering for months and then stop without warning.
How do I connect Bookrails?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Bookrails need an API key?
No. Bookrails completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 13 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is Bookrails?
It answers our handshake in 784 ms on average, which is faster than 10% of all working MCP servers we measure. That is on the slow side — worth knowing if the tool sits inside an interactive loop. The comparison comes from our own checks across the whole registry, every 15 minutes.