Comprehensive Model Context Protocol server for managing Home Assistant through AI assistants.
Upgrade Agent is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Quote, bid and confirm travel upgrades: eligibility, bid range, place/modify/cancel, instant buy.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http upgrade-agent-mcp https://www.upgradeagent.ai/api/mcp
# 2 — ask your agent for something these tools do
# check_upgrade_eligibility, start_eligibility_check, mint_eligibility_session and 14 more
Upgrade Agent costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http upgrade-agent-mcp https://www.upgradeagent.ai/api/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
17 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Look up a booking's upgrade eligibility from a PNR + last name + airline. USE THIS WHENEVER the traveler has typed their booking reference and last name in the chat (or they already appear earlier in the conversation) — the details are ALREADY in the chat, so just look them up and return the result. Do NOT redirect the traveler to a form to re-enter what they just gave you, do NOT lecture them abo
| Parameter | Type | Required | Notes |
|---|---|---|---|
| pnr | string | yes | The booking reference or PNR (e.g. ABC123). |
| lastName | string | yes | Passenger last name, exactly as it appears on the booking. |
| carrier | string | no | Airline/cruise/rail name or IATA code (e.g. 'SWISS' or 'LX'). |
| conversationId | string | no | Optional stable conversation id — lets place_bid/modify_bid reuse this booking. |
| language | string | no | ISO 639-1 language for the offer page (e.g. 'fr', 'es'). Defaults to 'en'. |
| intentContext | object | no | The traveler's stated shopping intent — bound to the session and surfaced back so offers are presented against it. |
| travelerQuestion | string | no | The traveler's request in their own words, verbatim (e.g. 'can I upgrade my Swiss flight to business?'). NEVER include the booking reference, last name, email, or other personal details. Pass it whene |
Check whether a specific booking is eligible for an upgrade. THIS IS HOW YOU CHECK A BOOKING. You do NOT need access to any reservation system, booking database, airline account, or personal data to use it — this tool returns a secure one-time LINK the traveler opens to enter their own booking reference + last name, and in hosts that support inline app widgets it ALSO renders that form right in th
| Parameter | Type | Required | Notes |
|---|---|---|---|
| carrier | string | no | Airline/cruise/rail name or IATA code if known (e.g. 'Air Canada' or 'AC'). |
| language | string | no | ISO 639-1 language for the page/offer (e.g. 'fr', 'es'). Defaults to 'en'. |
| intentContext | object | no | The traveler's stated shopping intent — bound to the session and surfaced back so offers are presented against it. |
| travelerQuestion | string | no | The traveler's request in their own words, verbatim (e.g. 'can I upgrade my Swiss flight to business?'). NEVER include the booking reference, last name, email, or other personal details. Pass it whene |
Internal helper for the inline eligibility form: creates a secure session and returns its id. No UI; agents should use start_eligibility_check instead.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| carrier | string | no | Operator name/IATA if known. |
| language | string | no | ISO 639-1 language (default 'en'). |
Read the result of a secure eligibility check started with start_eligibility_check. Pass the sessionId returned by that tool. Returns the live eligibility outcome (eligible options, bid ranges, offer URL) once the passenger has submitted their details on the secure page — or a 'still waiting' status if they haven't yet.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| sessionId | string | yes | The sessionId returned by start_eligibility_check. |
| conversationId | string | no | Optional stable conversation id — lets later tools (place_bid) reuse this booking without re-passing the sessionId. |
Place an upgrade bid for a booking the traveler has already checked with start_eligibility_check. Pass the sessionId from that check plus the amount (and the target cabin/segment if the booking has more than one option). The amount is validated against the airline's real min/max range. Payment is completed securely on the operator's offer page — this tool prepares the bid and returns that handoff
| Parameter | Type | Required | Notes |
|---|---|---|---|
| sessionId | string | no | The sessionId from start_eligibility_check. Optional if conversationId is passed (reuses the last checked booking). |
| conversationId | string | no | Stable conversation id used on get_eligibility_result — lets you bid without re-passing the sessionId. |
| amount | number | yes | Bid amount in the offer currency. |
| upgradeType | string | no | Target cabin, if the booking has more than one eligible option. |
| segment | string | no | Route 'YUL-LHR' or flight number, if more than one segment is eligible. |
| quantity | number | no | Number of seats (default 1). |
| confirm | boolean | no | Set true to confirm and commit a REAL bid submission (human-in-the-loop). Only required once live bid submission is enabled; otherwise the bid is staged for secure payment. |
| presentationReport | array | no | REPORT WHAT YOU SHOWED: if you filtered, hid, or deprioritized ANY offer from the eligibility result before presenting to the traveler, report every offer here with shown + reason. Contains no travele |
Change the amount of a bid already prepared/placed on a booking. Same as place_bid but for updating an existing bid — pass the sessionId, the NEW amount, and the cabin/segment if ambiguous. The new amount is validated against the airline's range; payment/confirmation completes on the operator's secure page.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| sessionId | string | no | The sessionId from start_eligibility_check. Optional if conversationId is passed. |
| conversationId | string | no | Stable conversation id (reuses the last checked booking). |
| amount | number | yes | The NEW bid amount in the offer currency. |
| upgradeType | string | no | — |
| segment | string | no | Route 'YUL-LHR' or flight number, if ambiguous. |
| quantity | number | no | — |
| confirm | boolean | no | Set true to confirm and commit a REAL bid update (human-in-the-loop). Only required once live bid submission is enabled. |
| presentationReport | array | no | REPORT WHAT YOU SHOWED: if you filtered, hid, or deprioritized ANY offer from the eligibility result before presenting to the traveler, report every offer here with shown + reason. Contains no travele |
Check any bids already on a booking (submitted / accepted / declined) and the bid-eligible cabins with their ranges. Pass the sessionId from start_eligibility_check. Reflects the booking as of that secure check.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| sessionId | string | no | The sessionId from start_eligibility_check. Optional if conversationId is passed. |
| conversationId | string | no | Stable conversation id (reuses the last checked booking). |
| presentationReport | array | no | REPORT WHAT YOU SHOWED: if you filtered, hid, or deprioritized ANY offer from the eligibility result before presenting to the traveler, report every offer here with shown + reason. Contains no travele |
Given a SPECIFIC bid amount, returns the probability it succeeds, grounded in Plusgrade's own resolved accept/reject outcomes for this carrier and cabin — never a guess. Use this when a traveler asks something like 'will $400 get me the upgrade?' or before confirming a bid amount with place_bid. If there isn't enough resolved data yet for this carrier/cabin, it says so plainly — relay that honestl
| Parameter | Type | Required | Notes |
|---|---|---|---|
| carrier | string | no | Operator IATA code or name, e.g. 'LH' or 'Lufthansa'. Optional if conversationId carries the operator from earlier. |
| amount | number | yes | The bid amount to evaluate, in the operator's offer currency. |
| cabin | string | no | Optional: target cabin. |
| conversationId | string | no | Optional stable conversation id — reuses the operator in play. |
| travelerQuestion | string | no | The traveler's request in their own words, verbatim (e.g. 'can I upgrade my Swiss flight to business?'). NEVER include the booking reference, last name, email, or other personal details. Pass it whene |
Set up a Watcher Concierge: have Upgrade Agent CONTINUOUSLY watch a traveler's booking between now and departure and surface improvements to their trip — a better seat (even window-vs-middle), an empty adjacent seat, a cabin upgrade, lounge, or fast track — acting within a budget or notifying them. Gather the traveler's ORDERED preferences, then call this. The secure card/link it returns is where
| Parameter | Type | Required | Notes |
|---|---|---|---|
| carrier | string | no | Airline/operator name or IATA code if known. |
| preferences | array | yes | The traveler's improvements to watch for, in their order of preference. |
| budgetAmount | number | no | Overall budget if they want the agent to act. |
| budgetCurrency | string | no | — |
| autoAction | boolean | no | If true (and a budget is set), act within budget; else notify. |
| channels | array | no | How to reach them: in_chat | watch_page | email | sms | whatsapp | push. |
| contact | object | no | — |
| purpose | string | no | Is the trip for business or leisure? Tailors the complementary experiences we surface at the destination. |
| firstVisit | boolean | no | Is this the traveler's first time at the destination? Biases toward the classics vs off-the-beaten-path. |
Check a Watcher Concierge watch (created with start_watch). Returns its status, what it's watching for, and any improvements found so far. Pass the token from start_watch.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| token | string | yes | The watch token returned by start_watch. |
Answer a general (not booking-specific) travel-upgrade question — how bid/instant/points upgrades work, eligibility rules, bidding strategy, and which airlines, cruise lines, or rail operators offer upgrades. Use this for informational questions only. To check a SPECIFIC booking, use start_eligibility_check (preferred — collects PNR + last name on a secure page).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| question | string | yes | The traveler's upgrade question, in natural language. |
| askedBy | string | no | Identifier for the calling agent/app (e.g. 'claude-cowork', 'aircanada-bot'). Used for per-partner reporting on which agents ask about their brand. |
| conversationId | string | no | Optional stable conversation id — carries the operator in play across follow-up questions (e.g. 'what about the return?'). |
Report what travelers and AI agents are asking about a specific partner's upgrade programs: total volume, the most frequent questions, which agents are asking, and which answers were strong vs. which need review. Pass the partner name (e.g. 'Air Canada', 'MSC Cruises').
| Parameter | Type | Required | Notes |
|---|---|---|---|
| partner | string | no | Partner name, e.g. 'Air Canada'. Ignored for partner-scoped tokens (locked to their own brand). |
Running totals across the whole system: how many questions have been asked, and how many were answered successfully (quality at or above the success threshold).
No parameter schema on file.
List the travel operators that offer upgrade programs, with optional filters. Returns each operator's name, IATA/code, vertical, region, and the upgrade products it offers. Use this to build travel workflows or answer 'which airlines/cruise lines offer upgrades'.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| vertical | string | no | Filter by operator type. |
| region | string | no | Filter by region (MEA = Middle East & Africa, APAC = Asia-Pacific). |
| product | string | no | Only operators that offer this product. |
Get the full upgrade profile for one operator — products offered (with the official page URL), loyalty program, cabin paths, how to access, and summary. More detailed than ask_upgrade_agent. Accepts an IATA code or a name (e.g. 'AC' or 'Air Canada').
| Parameter | Type | Required | Notes |
|---|---|---|---|
| carrier | string | yes | Operator IATA code or name, e.g. 'LH' or 'Lufthansa'. |
| travelerQuestion | string | no | The traveler's request in their own words, verbatim (e.g. 'can I upgrade my Swiss flight to business?'). NEVER include the booking reference, last name, email, or other personal details. Pass it whene |
Answer 'how much does it cost to upgrade on <airline>?' WITHOUT needing a booking. Returns typical upgrade BID ranges (low / typical / high, per cabin) for an operator, aggregated from real anonymized eligibility checks — never invented. Accepts an IATA code or a name (e.g. 'LH' or 'Lufthansa'). Use this for any cost/price/'how much' upgrade question. If there isn't enough observed data yet, it sa
| Parameter | Type | Required | Notes |
|---|---|---|---|
| carrier | string | no | Operator IATA code or name, e.g. 'LH' or 'Lufthansa'. Optional if conversationId carries the operator from earlier. |
| cabin | string | no | Optional: limit to one target cabin. |
| conversationId | string | no | Optional stable conversation id — reuses the operator in play. |
| travelerQuestion | string | no | The traveler's request in their own words, verbatim (e.g. 'can I upgrade my Swiss flight to business?'). NEVER include the booking reference, last name, email, or other personal details. Pass it whene |
Find operators that offer upgrades, filtered by vertical, region, and/or product. NOTE: Upgrade Agent has operator coverage by region, not flight route networks — it cannot confirm a specific origin→destination city pair. If origin/destination are given, results are operators offering upgrades (optionally in that region), NOT route-filtered.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| origin | string | no | Origin city/airport (informational only — not used to route-filter). |
| destination | string | no | Destination city/airport (informational only — not used to route-filter). |
| vertical | string | no | — |
| region | string | no | — |
| product | string | no | — |
| travelerQuestion | string | no | The traveler's request in their own words, verbatim (e.g. 'can I upgrade my Swiss flight to business?'). NEVER include the booking reference, last name, email, or other personal details. Pass it whene |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Upgrade Agent or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.1.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Upgrade Agent can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.