Marriott MCP
Allows AI agents to access a Marriott Bonvoy account, view status, points, trips, stay history, search hotels and availability, and create, modify, or cancel reservations through marriott.com.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Marriott MCPWhat's my Marriott Bonvoy points balance and upcoming trips?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Marriott MCP
Your Marriott Bonvoy account, as tools an AI agent can actually use.
Marriott MCP is a Model Context Protocol server that signs into your marriott.com session and exposes it to clients such as Claude, ChatGPT, Cursor, or Grok.
It is not Marriott’s partner/CRS API. There is no public consumer API for points, elite nights, or trips. This server drives a real Chrome profile the same way you would, then wraps that session as MCP tools, resources, and skills.
Clone it, add Bonvoy credentials (.env or the login page the MCP opens — never in Grok chat), run it on your machine.
Unofficial project. Not affiliated with, endorsed by, or maintained by Marriott International.
What you get
Surface | What it does |
Read | Account, trips, stay history, property search + availability (URLs and dates from MCP, not the web) |
Write | Create, modify, and cancel reservations |
Human gate | Every write sends |
Skills | Agent Skills over MCP (SEP-2640): |
Transport | stdio for local agents, Streamable HTTP + OAuth 2.1 PKCE for remote connectors |
Write tools never collect card numbers, CVV, or passwords through elicitation. If Marriott’s checkout asks for a card, the flow aborts.
Related MCP server: @striderlabs/mcp-ihg
How it works
AI client ── MCP (stdio or HTTPS) ──► Marriott MCP
│
▼
persistent Chrome
(your Bonvoy session)
│
▼
marriott.comAkamai blocks bare HTTP from datacenter IPs. A headed Chrome profile with a normal login is the reliable path.
Writes do not run when the model “says confirm.” The server pauses the tool, emits a nested elicitation/create (Confirm / Cancel). Decline, cancel, or timeout → changed: false, Playwright never starts the mutation.
Tools
Read
marriott_status— signed in, page, first namemarriott_open/marriott_login— sessionmarriott_me— points, elite, nightsmarriott_trips— upcoming reservationsmarriott_activity— GraphQL activity (types=all|stay|bonus;entries+type_counts)marriott_stays— stay history (monthsdefault 240)marriott_search— hotels for destination + dates (property_id, official URL)marriott_availability— rates + property URL for one hotelmarriott_page— rooms, prices, confirmation number, structured errorsmarriott_click/marriott_fill/marriott_dismiss— interact (no cards/captcha)marriott_goto— marriott.com URLs only
Write (elicitation required)
marriott_reservation_createmarriott_reservation_modifymarriott_reservation_cancelmarriott_book— first lists rooms A/B/C in chat; books only after the human picks and says confermo
Skills fallback (if the client has no skills/list yet)
marriott_skills_listmarriott_skills_get
Bugs (saved on the MCP host, secrets stripped)
marriott_report_bug— title, what happened, tool, arguments, logmarriott_bugs_list/marriott_bugs_get
Manuals ship next to the tools:
skill://marriott-stays/SKILL.mdskill://marriott-reservations/SKILL.md
Run your own copy
Requires Python 3.11+, Google Chrome, and a display (headed Chrome).
git clone https://github.com/emrgim/marriott-mcp.git
cd marriott-mcp
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
playwright install chromeBonvoy sign-in (pick one):
.envwithMARRIOTT_EMAIL/MARRIOTT_PASSWORD, orskip
.env: the first Marriott tool sends an elicitation URL. Open/login/{token}, enter Bonvoy there. Never type the password in Grok.
Local stdio (Claude Desktop, Cursor, Hermes, …)
{
"mcpServers": {
"marriott": {
"command": "/absolute/path/to/marriott-mcp/.venv/bin/python",
"args": ["/absolute/path/to/marriott-mcp/src/mcp_server.py"],
"env": {
"DISPLAY": ":0"
}
}
}
}On macOS, omit DISPLAY if Chrome can open windows normally.
Streamable HTTP + OAuth (Grok custom connector, remote agents)
export MARRIOTT_PUBLIC_BASE=https://your-https-host.example
export MARRIOTT_GROK_MCP_HOST=127.0.0.1
export MARRIOTT_GROK_MCP_PORT=8099
export DISPLAY=:0
.venv/bin/python src/grok_http.pyPut HTTPS in front (reverse proxy or tunnel). Well-known OAuth and /oauth/* stay unauthenticated; MCP POST / and /mcp require a bearer token from PKCE.
Connector form (typical):
Server URL:
https://your-https-host.exampleClient ID:
grokClient secret: empty
Token auth: none (PKCE)
Scope:
mcp:tools
Grok Bot: if the connect card opens /oauth/authorize with no query, that is a client bug (missing redirect_uri). Set GROK_MCP_TOKEN and MARRIOTT_OAUTH_DISCOVERY=0 on the host, then connect with Authorization: Bearer <token> (no OAuth discovery). Bonvoy credentials stay in .env or /login/{token}, never in chat.
A systemd user unit template lives in deploy/marriott-grok-mcp.service — copy it and adjust paths.
Environment
See .env.example. Never commit .env. Chrome profile and cookies stay in .session/ (gitignored).
Variable | Purpose |
| Bonvoy email or member number |
| Bonvoy password |
| Public HTTPS origin for OAuth + confirm links |
| HTTP bind |
| Seconds to wait for Confirm (default 180) |
Protocol notes
MCP protocol versions:
2025-11-25,2025-06-18,2025-03-26,2024-11-05Skills extension:
io.modelcontextprotocol/skillswithdirectoryRead: true(draft SEP-2640)Write path: nested
elicitation/createon the Streamable HTTP SSE stream; optional/confirm/{id}pageConfirming a write in chat is not enough. The button is.
More detail: docs/MCP.md.
Safety
Credentials live only in your
.envand OS keychain-equivalent. This repo ships empty placeholders.Destructive tools are annotated
destructiveHint: true.The server refuses unknown cancel/delete tool names.
Do not point a public connector at an account you do not control.
License
MIT. See LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Travel tools for AI agents: plan and edit real trips, search stays and tours, import travel videos.
Give AI assistants access to real-time data. Search the web, compare flights, find hotels, and more.
Personal AI travel agent. Points optimization, live flight/hotel/award search, trip planning.
Real Chrome for agents: start a browser, read pages as numbered markdown, click, type, hand off.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that enables AI agents to search Hilton hotels, manage reservations, and check Hilton Honors status through browser automation. It supports the full booking flow, points redemption, and digital key access via natural language commands.1623MIT
- AlicenseAqualityDmaintenanceEnables hotel search, booking, reservation management, and rewards tracking for IHG hotels via browser automation.12131MIT
- AlicenseAqualityBmaintenanceEnables AI agents to search hotels, check availability, manage reservations, and book rooms on Booking.com via browser automation.215315MIT
- AlicenseAqualityDmaintenanceMCP server for Marriott Hotels that enables AI agents to search hotels, manage reservations, check in, and interact with the Marriott Bonvoy loyalty program via browser automation.16218MIT