AwardWallet MCP
Query and manage AwardWallet account data through MCP tools, with read-only lookups and guarded write actions.
Check connection status, credential sources, demo/read-only mode, and visible people/account counts.
List people and business members, including sharing levels.
List/filter/sort loyalty accounts by person, program, type, balance, expiration, or update problems.
Get one account's full properties, sub-accounts, update links, and paginated transaction history.
View upcoming trips/reservations: flights, hotels, cars, trains, cruises, events, and more.
Search and inspect supported loyalty programs and what AwardWallet tracks.
Search raw API operations across AwardWallet's APIs and inspect their input schemas.
Call read-only raw API operations.
Call write/raw API operations; secrets are entered on a one-time local secure page, not in chat.
Check secure input submission status/result.
Connect or update AwardWallet/paid API credentials via a secure local page.
Enables querying Delta loyalty account data through AwardWallet, including SkyMiles balances, elite status, recent transactions, expirations, and account update problems.
Enables querying Marriott hotel loyalty account data through AwardWallet, including points balances, elite status, nights until the next level, account properties, and expiration details.
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., "@AwardWallet MCP Which of my points or certificates expire this year?"
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.
AwardWallet MCP
Ask Claude or ChatGPT about your airline miles, hotel points and credit-card rewards tracked in AwardWallet:
"Which of my points, certificates or elite statuses expire before December 31?"
"What's my Marriott balance and status, and how many nights until the next level?"
"Show the last 50 transactions on my Delta account."
"What trips do we have coming up, with confirmation numbers?"
"Which accounts have update problems?"
It runs on your own computer, and your AwardWallet key stays there.
Unofficial. This project is not affiliated with or endorsed by AwardWallet. It uses AwardWallet's published APIs with a key you create.
Get started (no coding needed)
Step 1: Get your AwardWallet API key
You need an AwardWallet account with AwardWallet Plus. The API key comes from a free AwardWallet Business account linked to your personal account; you sign in to both with the same login.
Sign in to AwardWallet, then open Create a business account.
Give the business access to your loyalty accounts. On the business site (business.awardwallet.com), click Members at the top, then Request full access.
Approve the request. AwardWallet emails you a link to authorize it. Once you approve, all your loyalty accounts are shared with the business, including ones you add later. Until then the business lists you with no accounts, and your assistant will find nothing.
Optional: add family. On the business site, use Members → Add new member to invite them. Each person approves in their own AwardWallet account and chooses how much to share; "Read all" is enough for this app.
Copy your API key from business.awardwallet.com/profile/api.
Step 2: Add it to your AI app
Claude Desktop
Works on Windows and Mac. Claude Desktop includes everything needed to run it.
Download awardwallet-mcp.mcpb.
Double-click the file. You can also drag it onto the Claude Desktop window, or use Settings → Extensions → Advanced settings → Install Extension…
Paste your API key when asked, then finish the installation.
Ask Claude: "Which of my AwardWallet points or certificates expire this year?"
To change the key later, go to Settings → Extensions → AwardWallet → Configure.
Claude Code and Cowork
The same plugin as for ChatGPT, without downloading anything. It works in Claude Code (the Claude Desktop Code tab, the terminal and VS Code) and in Cowork. Regular Claude chats can't run plugins that run on your computer; use the Claude Desktop extension for those.
Add the marketplace
bbarabe/awardwallet-mcp:Claude Desktop: Customize → Plugins → Add → Add marketplace, then enter it as the URL.
Terminal:
claude plugin marketplace add bbarabe/awardwallet-mcp
Add AwardWallet from the plugin list (terminal:
claude plugin install awardwallet@awardwallet-mcp).Start a new session and ask Claude to "set up AwardWallet". It gives you a link to a secure connection page on your computer.
Paste your API key on that page and select Check and save. Then tell Claude you're done.
Needs Node.js 20.10 or later, unless the ChatGPT desktop app is installed: the plugin uses ChatGPT's copy of Node when it finds one.
ChatGPT desktop app
Works on Windows and Mac, in the ChatGPT desktop app's Codex and Work modes. ChatGPT includes everything needed to run it.
In ChatGPT, open Plugins in the sidebar, then choose Add → Add a marketplace.
Fill in:
Source:
bbarabe/awardwallet-mcpGit ref:
plugin
Then select Add marketplace.
Search the plugins for AwardWallet, open it and select Install plugin.
Select Set up AwardWallet. ChatGPT checks the connection and gives you a link to a secure connection page that opens on your computer.
Paste your API key on that page and select Check and save. Then tell ChatGPT you're done.
Ask ChatGPT: "Which of my points, certificates or elite statuses expire in the next 90 days?"
To change the key later, ask ChatGPT to "connect AwardWallet again".
To update to a new version, open Settings → Plugins → Marketplace, select Upgrade next to AwardWallet MCP, then restart ChatGPT. To uninstall, select the delete icon there instead; your saved key stays on your computer in case you reinstall.
Try it first with sample data
You don't need an AwardWallet key to see how it works. Demo mode uses a made-up family with eight accounts, a few certificates and some trips, and sends nothing to AwardWallet.
Claude Desktop: leave the API key empty and switch on Demo mode in the extension's settings.
ChatGPT: the plugin has no settings screen, so use the developer setup with
AW_MOCK_MODE=true.
Good to know
Balances aren't live. They're AwardWallet's latest update of each account; results show when that was.
What each person shares matters. Their sharing level ("Read numbers", "Read balances" or "Read all") controls what you see.
Free (non-Plus) AwardWallet members show less. Their history and expiration dates stay hidden unless the Business account has a paid subscription.
Trips need more. The travel timeline needs a paid Business subscription and AwardWallet's approval.
Privacy:
The app runs on your computer and talks only to AwardWallet.
Your key stays on your computer: in Claude Desktop's secure settings, or for ChatGPT, in a settings file in the plugin's private folder.
Keys and passwords are never typed into the chat; a one-time page opens on your computer for them.
Read-only mode. Add
AW_READ_ONLY=true(Claude Desktop: the Read-only switch) to let the assistant look but never change anything. It's a good idea with autonomous agents.
Something not working? Open an issue. Please don't include your API key or personal details.
Related MCP server: ripio-community-mcp
For developers
Build from source
Requires Node.js 20.10 or later.
git clone https://github.com/bbarabe/awardwallet-mcp.git
cd awardwallet-mcp
npm install
npm run build # dist/awardwallet-mcp.mjsSave the API key in your OS credential store (Windows Credential Manager, macOS Keychain or Linux Secret Service). login checks the key with AwardWallet first; status shows what it can see:
node dist/awardwallet-mcp.mjs login
node dist/awardwallet-mcp.mjs statusCredentials are resolved in this order:
environment variable (
AW_API_KEY);AW_API_KEY_FILE;the credential store;
the settings file written by
connect_awardwallet's secure page:credentials.jsonin the plugin's data folder (PLUGIN_DATA) when running as a ChatGPT/Codex plugin, otherwise in%APPDATA%wardwallet-mcp(Windows),~/Library/Application Support/awardwallet-mcp(Mac) or~/.config/awardwallet-mcp(Linux). The file is readable only by you.
logout --all removes credentials from the credential store. The Claude Desktop extension and the ChatGPT plugin can't read the credential store (they ship without the native keyring module), so they use their own settings or the settings file.
Connect from the command line
In the commands below, replace /absolute/path/to/awardwallet-mcp with the folder you cloned.
Claude Code:
claude mcp add --scope user awardwallet -- node /absolute/path/to/awardwallet-mcp/dist/awardwallet-mcp.mjsCodex CLI (shares ~/.codex/config.toml with the ChatGPT desktop app). Install the published plugin:
codex plugin marketplace add bbarabe/awardwallet-mcp --ref plugin
codex plugin add awardwallet@awardwallet-mcpOr run your build as a plain MCP server:
codex mcp add awardwallet -- node /absolute/path/to/awardwallet-mcp/dist/awardwallet-mcp.mjsTo try an unreleased plugin build, run npm run pack:plugin and add build/plugin-marketplace as a marketplace: in ChatGPT with Plugins → Add → Add a marketplace or codex plugin marketplace add, in Claude Code with claude plugin marketplace add.
OpenClaw:
openclaw mcp add awardwallet --command node --arg /absolute/path/to/awardwallet-mcp/dist/awardwallet-mcp.mjsFor an autonomous agent, set AW_READ_ONLY=true. On a headless Linux machine without a keyring, pass AW_API_KEY through the agent's secret mechanism or AW_API_KEY_FILE.
Claude Desktop without the extension: add a server to claude_desktop_config.json with command node and the path to dist/awardwallet-mcp.mjs as its argument. That server reads the key saved by login.
Any other MCP client: it's a standard stdio server. Run node dist/awardwallet-mcp.mjs.
Demo data: use AW_MOCK_MODE=true anywhere, for example claude mcp add awardwallet-demo -e AW_MOCK_MODE=true -- node ….
Tools
Tool | Access | What it does |
| read | Which APIs are configured (and where the credentials come from), demo/read-only mode, people and account counts |
| read | Connected AwardWallet users and business members, with ids and sharing levels |
| read | Balances, elite status, update problems and everything that expires (points, certificates and other sub-accounts, elite status). Filter by person, program, type, balance, or an |
| read | One account's properties, sub-accounts, update links and paginated transaction history |
| read | Reservations in a date window: flights, hotels, cars, trains, cruises, events and more |
| read | Programs AwardWallet supports and what it tracks for each |
| read | Finds raw API operations and returns their input schemas |
| read | Runs a read-only raw operation |
| write | Runs a raw operation that changes data, signs in to a loyalty or mailbox account, or costs money |
| read | Result of a request completed on the secure input page |
| write | Link to the secure input page where the user enters the API key (or a paid API's credentials); saves them to the settings file and uses them right away |
| write | (opt-in, |
Every tool has readOnlyHint/destructiveHint annotations, and read-only mode doesn't register the write tools.
Every AwardWallet API
Besides the free Account Access API, AwardWallet sells APIs by contract. Add their credentials to enable them in the catalog tools:
API | Operations | Credential ( |
10 |
| |
9 |
| |
16 |
| |
1 |
| |
3 |
| |
3 |
|
Paid-API credentials are username:password. Inputs are validated against schemas transcribed from AwardWallet's documentation, and only the validated value is sent.
Current gaps:
Security-question and one-time-code answers can't be supplied yet.
The Email Parsing browser-redirect endpoint isn't included.
The travel timeline covers connected users only.
Secure input page
call_api_write_operation never accepts a password or token as an argument. It returns a one-time link like http://127.0.0.1:<port>/secure/<token>: the user types the secret there, the server sends it straight to AwardWallet, and get_secure_input_result returns the response.
How the page protects secrets:
It listens on 127.0.0.1 only and validates
Host,OriginandSec-Fetch-Site.It runs no scripts.
It shows where the secret will be used, and asks for confirmation before sending a password without TLS.
Links are single-use and expire after 15 minutes.
Secrets are never logged or stored, and they're redacted from anything returned.
To reach the page on a remote host:
Set
AW_SECURE_INPUT_PORT, then forward it (SSH tunnel, Tailscale Serve).Set
AW_SECURE_INPUT_URLto the forwarded address, so the links use it.
Found a vulnerability? See SECURITY.md.
Configuration
Variable | Default | |
| from credential store | Account Access API key. |
| from credential store | Paid APIs (table above); each also accepts |
|
| Built-in demo data; nothing is sent to AwardWallet |
|
| Register read-only tools only |
|
| Offer |
| – | Needed only if your business has several Redirect URLs configured |
|
|
|
| random | Fixed port for the secure input page |
|
| Public base URL of that page when tunneled |
Limits
Rate limit. AwardWallet allows 20 requests per rolling 10 minutes for each user, member or account. The server caches identical reads for a minute. It fetches accounts for up to 30 people per call;
peopleOffsetpages through larger businesses.Result size. Results are capped at 60,000 characters, with valid-JSON truncation and pagination (
limit,historyOffset,pageToken).
Develop and release
npm test # unit + end-to-end tests (demo data, no network, no credentials)
npm run typecheck
npm run inspect # MCP Inspector against the build (set AW_MOCK_MODE=true for demo data)
npm run pack:mcpb # dist/awardwallet-mcp.mcpb
npm run pack:plugin # build/plugin-marketplace: plugin marketplace for ChatGPT, Codex and ClaudePath | Contents |
| The MCP tools |
| API client, response types, demo data, summaries and date handling |
| Raw API operations, one file per AwardWallet API, each with a Zod input schema |
| The local secret-entry page |
| Checking and saving API credentials ( |
| The plugin for ChatGPT, Codex and Claude: both manifests, MCP config, Node launchers, skills and icons. It isn't named |
|
|
| Unit tests, and end-to-end tests that run the built server over stdio |
To release, bump the version in package.json, mcpb/manifest.json, plugin-src/plugin.json, plugin-src/.claude-plugin/plugin.json and src/server.ts, then push a matching tag (for example v0.2.0). The release workflow tests and builds, attaches awardwallet-mcp.mcpb and awardwallet-mcp.mjs to a new GitHub release, and publishes the plugin to the plugin branch that ChatGPT and Claude install from.
The plugin's launchers (plugin-src/scripts/; Claude refuses plugins with a top-level bin/ in chat and Cowork) run the server with the Node.js runtime that ships with ChatGPT and Codex, and fall back to a Node.js on PATH.
Contributing
Issues and pull requests are very welcome: bugs, questions, ideas, docs or code. Start by opening an issue; CONTRIBUTING.md covers setup, conventions and the PR checklist.
Some ideas where help would be great:
Answering AwardWallet security questions and one-time codes through the secure input page
Letting the Claude Desktop extension read keys saved with
loginBetter summaries for more itinerary types, and more providers' date formats
Real-world reports of what your accounts look like through the tools, and what's missing
Please don't include API keys, passwords or personal loyalty data in issues or tests.
License
MIT. Not affiliated with AwardWallet. "AwardWallet" is a trademark of its owner.
Available Tools
12 toolscall_api_read_operationCall AwardWallet API (read)ARead-onlyIdempotent
Runs a read-only AwardWallet API operation (access=read in search_api_operations) and returns AwardWallet's JSON response. Refuses write operations. API reference: https://awardwallet.com/api/main.
Inputs: operationId (required), input.
call_api_write_operationCall AwardWallet API (write)ADestructive
Runs an AwardWallet API operation that creates, changes or deletes data, signs in to a loyalty or mailbox account, or starts billable work (access=write in search_api_operations). When it needs a password or token, it returns a one-time link to a local page where the user types it, so the secret never passes through the conversation. API reference: https://awardwallet.com/api/main.
Inputs: operationId (required), input, collectSecrets.
connect_awardwalletConnect AwardWalletA
Connects this server to the user's AwardWallet account. Returns a one-time link to a page on this computer where the user pastes their AwardWallet API key (from https://business.awardwallet.com/profile/api), or a paid API's username and password. The page checks it with AwardWallet and saves it on this computer; it never passes through the conversation, so never ask the user to type a key in the chat. Use it when get_status or another tool reports a missing or rejected key, or when the user wants to change it.
Inputs: api.
get_loyalty_accountGet loyalty accountARead-onlyIdempotent
Returns one loyalty account in full: balance, every tracked property (elite status, account number, points to next level, ...), sub-accounts such as individual cards, links to update it on AwardWallet, and its transaction history, paginated.
Inputs: accountId (required), historyLimit, historyOffset.
get_loyalty_programGet loyalty programARead-onlyIdempotent
Returns what AwardWallet knows about one loyalty program: its login fields, the properties it tracks (elite status, expiration, ...), how many elite levels it has, and what AwardWallet can do with it (transaction history, itineraries, reservation lookup, expiration tracking).
Inputs: code (required).
get_secure_input_resultGet secure input resultARead-onlyIdempotent
Returns the status of a request waiting on the secure input page (waiting, completed, failed, cancelled or expired) and, once completed, AwardWallet's response.
Inputs: submissionId (required).
get_statusAwardWallet connection statusARead-onlyIdempotent
Shows which AwardWallet APIs this server can use and where each credential comes from, whether demo or read-only mode is on, and how many people and accounts the AwardWallet Business account can see. Useful to explain missing data or configuration errors.
Inputs: no named parameters.
get_travel_timelineGet travel timelineARead-onlyIdempotent
Lists trips from AwardWallet's travel timeline (flights, hotels, car rentals, trains, buses, cruises, ferries, transfers, parking and events) with dates, confirmation numbers, travelers and locations, sorted by start date, for a date window (default: today through 12 months ahead). Only connected users who share trips are covered, and AwardWallet requires a paid Business subscription with timeline export approval.
Inputs: limit, types, detail, userId, +3 more.
list_loyalty_accountsList loyalty accountsARead-onlyIdempotent
Lists loyalty accounts (airline miles, hotel points, credit-card rewards, rentals, shopping, ...) with balance, elite status, last change, update status and everything that expires on them (points, certificates and other sub-accounts such as free nights or companion passes, elite status), one compact row per account, plus a summary of upcoming expirations and accounts with update problems. Filter by person, program, type, balance or an expiration date. For one account's full properties and transaction history use get_loyalty_account.
Inputs: kind, sort, limit, owner, +8 more.
list_peopleList peopleARead-onlyIdempotent
Lists the people whose loyalty accounts your AwardWallet Business account can see: connected AwardWallet users (with the account and trip access each one granted) and members you added in the business interface, with how many accounts each has. Returns the userId and memberId values other tools accept.
Inputs: no named parameters.
search_api_operationsSearch AwardWallet API operationsARead-onlyIdempotent
Searches the raw AwardWallet API operations this server can call, across the Account Access, Web Parsing (Loyalty), Email Parsing, Credit Card Bonus, Flight Award Search and Hotel Award Search APIs (https://awardwallet.com/api/main). Returns each match's id, whether it reads or writes, its documentation link and the JSON Schema of its input. An empty query lists every available operation briefly.
Inputs: api, limit, query, access.
search_loyalty_programsSearch loyalty programsARead-onlyIdempotent
Searches the loyalty programs AwardWallet supports by name or code (e.g. 'hyatt', 'avios', 'membership rewards'), optionally by type. Returns program codes for get_loyalty_program.
Inputs: query (required), kind, limit.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 12 tools
Each tool has a distinct resource+action: high-level CRUD-style tools (list/get/search) are clearly separated from generic API operation tools and from authentication/status tools. No two tools appear to do the same thing.
All names use snake_case with a consistent verb_noun pattern (get_, list_, search_, call_, connect_), applied uniformly across all 12 tools.
12 tools is well within the ideal 3-15 range and each tool maps to a necessary capability, including both convenience wrappers and raw API access.
The set covers authentication/status, people, loyalty programs, loyalty accounts, travel timeline, and provides a generic gateway (search_api_operations plus call_api_read/write) to the full AwardWallet API, so no dead ends remain.
Maintenance
Related MCP Connectors
Search award flights and cash fares, optimize points, and predict fares inside ChatGPT and Claude.
Remote streamable-HTTP MCP server running on a single Cloudflare Worker. Your assistant gets live Airbnb, Amazon, Booking.com, Google Flights, Maps and Reddit data, social search on X, Instagram and TikTok, the Meta Ad Library, and image/video generation without any keys. Connect your own accounts to let it send WhatsApp or Telegram messages, work an IMAP inbox, manage Meta Ads campaigns and publish to X and LinkedIn. OAuth 2.1 with PKCE; stored credentials are AES-256-GCM encrypted.
Wanderlog MCP server for ChatGPT, Claude and any AI agent: create trip, add place, import booking and update itinerary in your own Wanderlog account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Wanderlog yourself; Cotlet does not store your password and you need no Wanderlog API key. About the official Wanderlog API: Wanderlog has no public API and no developer docs (checked 11 Oct 2026). Trips, places, reservations and expenses are edited in its web and mobile apps; bookings come in by forwarding confirmation emails or connecting Gmail. Setup and FAQ: https://cotlet.dev/integrations/wanderlog-api-mcp-server
Read and update your Everway trips and itineraries from any MCP-compatible AI assistant.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceA secure, read-only MCP server that empowers Claude Desktop and AI agents to safely query and inspect local SQLite databases.-
- AlicenseAqualityBmaintenanceA local, read-only MCP server that lets AI assistants securely access your Ripio account to retrieve balances, activity, prices, limits, and open orders using your own API key.10107 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables Codex or Claude Code to query bank balances, movements, and spending summaries through a locally run MCP server that keeps signing keys and encrypted financial data on the user's computer.Apache 2.0
- AlicenseNot gradedqualityCmaintenanceGives Claude and other MCP clients read-only access to Oura Ring data through the Oura API v2, exposing sleep sessions, readiness, activity, stress, heart rate, workouts and long-range trends as queryable tools. It runs locally, evens out the API's quirks, and keeps credentials on the user's machine.MIT