Rate Ranger

io.raterangerPublished by rateranger.ioOfficial publisherv1.0.0Updated Oct 27, 2026

Watch a hotel's price after your user booked it, and email them when it drops enough to rebook.

VerifiedStreamable HTTPWeb executableLocation & LifestyleCommunication & Collaboration

Overview

AI-generated overview

Rate Ranger enrols a traveller's existing hotel booking in free price monitoring and emails them if the rate drops enough to rebook.

What you can do
  • Submit one to ten already-booked hotel stays for a traveller, with hotel, city, country, dates and total price
  • Read a submitted booking back by its read token to see whether the traveller has confirmed and monitoring has started
When to use it
Use it when a user has already booked a hotel and wants to know if the price falls before their stay, so they could rebook. It is not a hotel search or booking tool and monitors nothing until the traveller confirms by email.
Requirements
A remote MCP endpoint added as a custom connector; no key, account or setup is needed. Works in ChatGPT Developer Mode, Claude Code and Cursor, but not as a claude.ai custom connector, which requires OAuth. Each booking needs an email address and an ISO 3166-1 alpha-2 country code.
Before you install
A successful submission monitors nothing until the traveller clicks the emailed confirmation link; unconfirmed entries are deleted after 7 days, so do not tell a user their booking is tracked before checking. The endpoint accepts any email address, so submitting one can send mail to a person who did not ask for it. Daily limits apply per IP and per email address.

Installation

In SourceWeft

  1. Open Rate Ranger in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.rateranger%2Fhotel-price-monitor/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "rate-ranger": {
      "type": "http",
      "url": "https://www.rateranger.io/api/mcp"
    }
  }
}

README

Rate Ranger for AI agents

Rate Ranger watches what a hotel charges after your user has already booked it, and emails them if the rate drops far enough to be worth rebooking. Free, no account, no app.

This repository is the public contract for doing that programmatically: an OpenAPI spec, an MCP connector manifest, and worked examples.

Do not drive the web form

The form at rateranger.io is protected by a CAPTCHA that issues no token to an automated browser. An assistant will fill every field correctly and then fail at the last step with nothing to click. Use the connector or the API instead.

Option 1: the MCP connector

Add https://www.rateranger.io/api/mcp as a custom connector. No key, no account, no setup beyond the URL.

It exposes two tools:

ToolWhat it does
submit_hotel_bookingEnrols one to ten bookings for one traveller
check_hotel_bookingReads a booking back, including whether it is confirmed yet

Works in ChatGPT (Developer Mode), Claude Code and Cursor. It does not work as a claude.ai custom connector, which requires OAuth; there is no way to declare a server unauthenticated there.

The server speaks protocol revisions 2026-07-28, 2025-11-25, 2025-06-18 and 2025-03-26, so both the current per-request-metadata shape and the older initialize handshake work.

Option 2: the HTTP API

bash
curl -X POST https://www.rateranger.io/api/agent/bookings \  -H 'Content-Type: application/json' \  -d '{    "email": "[email protected]",    "agent": "my-assistant/1.0",    "bookings": [{      "hotel_name": "Novotel Bali Ubud Resort",      "city": "Ubud",      "country": "ID",      "check_in_date": "2027-07-14",      "check_out_date": "2027-07-17",      "total_price": 742.50,      "currency": "USD"    }]  }'

Answers 202 Accepted with a read_token per booking.

The traveller has to confirm. Tell them so.

A successful submission monitors nothing. Rate Ranger emails the traveller one link. Until they click it, no price is checked and no alert can fire. If they never click, everything is deleted after 7 days.

So do not tell your user their booking is being tracked. Tell them to check their inbox, then confirm it yourself with check_hotel_booking or GET /api/agent/bookings/{token} before you say anything stronger. Look at booking.confirmed, which is false until they act.

This is why no key is needed. The endpoint takes an email address from whoever calls it, so if submission alone started the service, anyone could sign any address up for mail it never asked for. The confirmation step is what makes an open API safe to leave open.

country is required, and it matters

ISO 3166-1 alpha-2, for example JP or ID. It decides which rate source can find the hotel at all. A booking without one cannot be monitored properly, so it is required here even though the web form treats it as optional.

Limits

Per day
Anonymous caller, by IP50 bookings
With a key100 bookings
One email address, from one caller3 bookings
One email address, from anyone10 bookings

Email [email protected] for a key if you need more.

Prices may include decimals. Only the web form restricts them to whole numbers.

Errors

Every error carries a stable code to branch on, plus a message for a human reading a log. Branch on code; the wording may change.

CodeMeaning
invalid_emailNot a valid address
disposable_emailA throwaway provider, which cannot receive alerts
invalid_tokenSignature failed, wrong token type, or expired
not_foundToken verified but matches no booking
rate_limitedA daily limit was reached

Full request and response shapes are in openapi.json.

Support

[email protected]

Source: README.md at commit c9c9d02

Tools

2

submit_hotel_booking

Enrol a hotel booking the traveller has ALREADY made into free price monitoring. Rate Ranger watches what the hotel charges for the same dates and emails them if it drops far enough to be worth rebooking. IMPORTANT: this monitors nothing on its own. The traveller is emailed one confirmation link, and no price is checked until they click it. Tell your user to expect that email. Do not tell them the booking is being tracked until check_hotel_booking says it is. Unconfirmed bookings are deleted after 7 days. Use this only for a booking that already exists. It does not search for or make reservations.

Parametersagentemailrequiredbookingsrequired

check_hotel_booking

Check one booking you submitted, using the read token returned at submission. Use it to find out whether the traveller has confirmed yet: `confirmed` is false until they click the emailed link, and while it is false nothing is being monitored. Check here before telling your user their booking is being tracked.

Parameterstokenrequired

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.