Award Flight Daily

com.awardflightdaily由 awardflightdaily.com 發布官方發布者v1.26.0更新於 Oct 24, 2026

Official airline award MCP. Search 12.3M+ award flights across 48 loyalty programs.

已驗證Streamable HTTP可網頁執行位置與生活金融

概覽

AI 產生的概覽

遠端 MCP 伺服器,用來搜尋與分析各常客計畫的哩程獎勵機票,並提供高 CP 值兌換與信用卡轉點查詢。

可以做什麼
  • 依出發地、目的地、日期區間、艙等、計畫、僅直飛與哩程上限搜尋獎勵機票,支援分頁
  • 列出常客計畫並檢視各計畫的航線數、日期範圍與艙等可用性等統計
  • 檢視某條航線的逐日可用性,含哩程、稅費與各計畫座位數
  • 找出依最低哩程排序的高 CP 值兌換航線
  • 查詢信用卡點數轉航空哩程的合作對象、兌換比例與入帳速度
  • 取得紀錄總數、航線數與機場涵蓋等彙總統計
適用情境
適合在規劃哩程兌換機票時使用:讓助理比較不同計畫的兌換哩程、逐日查看某條航線的機位,或了解信用卡點數可轉入哪些航空計畫。
執行需求
需要遠端 streamable HTTP 端點;清單未宣告任何套件、環境變數或標頭。README 另述自架方式,需 Python 及 fastmcp、pydantic、duckdb,並以 DUCKDB_PATH 指定 DuckDB 資料庫檔案路徑。
安裝前請注意
README 稱查詢為唯讀且參數化,寫入類工具僅列為未來構想。可用性資料可能過時或不完整,轉點或開票前應向航空公司或常客計畫確認機位與價格。遠端端點未宣告身分驗證。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Award Flight Daily,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/com.awardflightdaily%2Faward-flight-daily/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "award-flight-daily": {
      "type": "http",
      "url": "https://awardflightdaily.com/mcp-server/mcp"
    }
  }
}

README

Award Flight Daily MCP Server

A FastMCP server that wraps the Award Flight Daily database (12.3M award flight records across 25 loyalty programs) and exposes it to AI agents via tools.

Overview

The Award Flight Daily MCP server provides 7 core tools for searching, analyzing, and optimizing award travel:

  1. afd_search_award_flights - Core search across 12M+ records
  2. afd_list_programs - All 25 programs with statistics
  3. afd_get_program_details - Deep dive on a single program
  4. afd_get_route_availability - Calendar view for a route
  5. afd_find_sweet_spots - Best-value redemptions
  6. afd_check_transfer_partners - Credit card transfer ratios
  7. afd_get_market_stats - Aggregate database statistics

File Structure

mcp_server/├── __init__.py                 # Package definition├── config.py                   # Constants: programs, cabins, banks├── server.py                   # FastMCP server entry point (7 tools registered)├── db/│   ├── __init__.py│   └── queries.py             # DuckDB queries (read-only, parameterized)├── models/│   ├── __init__.py│   ├── inputs.py              # 8 Pydantic input models with validators│   └── responses.py           # Formatting helpers (JSON/Markdown)└── tools/    ├── __init__.py    ├── search.py              # afd_search_award_flights    ├── programs.py            # afd_list_programs, afd_get_program_details    ├── routes.py              # afd_get_route_availability    ├── sweet_spots.py         # afd_find_sweet_spots    ├── transfers.py           # afd_check_transfer_partners    └── analytics.py           # afd_get_market_stats

Configuration

All environment and program configuration lives in config.py:

  • MCP_SERVER_NAME: "awardflightdaily_mcp"
  • DUCKDB_PATH: Environment variable, defaults to /data/award_flights.duckdb
  • PROGRAMS: Dictionary of 25 programs (slug -> full name)
  • CABINS: Cabin class codes (Y/W/J/F)
  • BANKS: 7 credit card programs

Installation & Deployment

Requirements

fastmcp>=1.0.0pydantic>=2.0duckdb==1.1.3

Running

Stdio mode (local):

bash
python -m mcp_server.server

HTTP mode (remote):

bash
python -m mcp_server.server --http 8001

Tools API

1. Search Award Flights

python
SearchInput(    origin="JFK",                      # Required: IATA code(s)    destination="NRT",                 # Required: IATA code(s)    date_from="2026-06-01",           # Required: YYYY-MM-DD    date_to="2026-06-30",             # Required: YYYY-MM-DD    cabin=CabinClass.BUSINESS,        # Optional: Y/W/J/F (default J)    source="united,aeroplan",         # Optional: program filter    direct_only=False,                # Optional: nonstop only    max_miles=100000,                 # Optional: mileage cap    min_seats=1,                      # Optional: min seats (default 1)    limit=50,                         # Optional: results limit (default 50, max 200)    offset=0,                         # Optional: pagination offset    response_format=ResponseFormat.JSON # Optional: JSON or Markdown)

Returns: Paginated flight results with mileage, taxes, seats, airlines, equipment.

2. List Programs

python
ListProgramsInput(    response_format=ResponseFormat.JSON)

Returns: All 25 programs with:

  • Total flights & routes
  • Date range
  • Cabin availability counts (Y/W/J/F)

3. Program Details

python
ProgramDetailInput(    program="united",  # Required: program slug    response_format=ResponseFormat.JSON)

Returns: Deep stats for one program:

  • Total availability
  • Unique routes & airports
  • Average & minimum mileage by cabin

4. Route Availability

python
RouteInput(    origin="JFK",    destination="NRT",    cabin=CabinClass.BUSINESS,    source=None,  # Optional: filter by program    response_format=ResponseFormat.JSON)

Returns: All dates for a route with mileage, taxes, seats per program.

5. Find Sweet Spots

python
SweetSpotInput(    cabin=CabinClass.BUSINESS,    origin=None,  # Optional    destination=None,  # Optional    limit=25,    response_format=ResponseFormat.JSON)

Returns: Best-value routes ranked by minimum mileage cost.

6. Transfer Partners

python
TransferInput(    bank="chase",      # Optional: bank slug    program="united",  # Optional: program slug    response_format=ResponseFormat.JSON)

Returns: Credit card → airline transfer mappings with:

  • Transfer ratio (e.g., "1:1")
  • Speed (e.g., "Instant", "1-2 days")

7. Market Stats

python
MarketStatsInput(    response_format=ResponseFormat.JSON)

Returns: Aggregate database stats:

  • Total records, programs, routes
  • Airport coverage
  • Cabin availability breakdown

Input Validation

All inputs use Pydantic with validation:

  • IATA codes: Must be exactly 3 alphabetic characters
  • Dates: YYYY-MM-DD format only
  • Cabin: Enum restricted to Y/W/J/F
  • Limit: 1-200 results
  • Offset: >= 0
  • Min seats: 1-9

Invalid inputs raise ValidationError with detailed messages.

Response Formats

JSON (default)

Full structured response with pagination metadata:

json
{  "total": 1234,  "count": 50,  "offset": 0,  "has_more": true,  "cabin": "J",  "results": [    {      "id": "...",      "source": "united",      "origin": "JFK",      "destination": "NRT",      "date": "2026-06-15",      "mileage": 75000,      "taxes": 11.20,      "seats": 2,      "direct": true,      "airlines": "United",      "equipment": "B787",      "updated_at": "2026-03-26T12:34:56"    }  ]}

Markdown

Human-readable output with formatting:

markdown
# Award Flight Search Results
**1234 flights found** | Cabin: Business | Showing 50
## JFK → NRT | 2026-06-15
- **75,000 miles** + $11.20 taxes | united- Nonstop | 2 seats | United B787
...

Database

All queries are:

  • Read-only (DuckDB in read-only mode)
  • Parameterized with proper escaping
  • Filtered on expired_at IS NULL (active records only)
  • Type-safe with CAST(? AS DATE) for dates

Connection is lazy-loaded on first query and reused.

Design Principles

  1. No monoliths - Each tool in its own module
  2. Separation of concerns - DB queries, models, tools, responses separate
  3. Type safety - Pydantic models on all inputs
  4. Defensive - All parameterized queries, validators on inputs
  5. Fast - Read-only DuckDB, lazy connection, caching via MCP layer
  6. Testable - Pure functions, no side effects

Error Handling

  • Invalid input: Pydantic ValidationError with field details
  • Database error: Returns error message string (no 500s)
  • No results: Friendly "No flights found" message

The MCP layer handles serialization of errors to the client.

Future Enhancements

  • Price tracking ($/mile value calculation)
  • Seat map integration
  • Award chart comparison
  • Frequent flyer earning rates
  • Stopover/layover optimization
  • Alert setup via MCP (future: read-write tools)

來源:README.md,提交 22cb27f

工具

0
SourceWeft 尚未讀取此伺服器的工具。

版本歷史

1
  1. v1.26.0最新Sep 16, 2026

評分

已滿足適用檢查項的 75%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。