mcpField
P
pointsyeah

pointsyeah

本地服务
github.com/pulsemcp地图与出行818 周前更新

关于 pointsyeah

PointsYeah MCP 服务用于通过 PointsYeah 搜索积分或里程兑换机票及旅行优惠。它面向希望比较积分兑换航班和银行转积分选项的用户,覆盖 20 多个航空公司常旅客计划。

主要功能

  1. 01使用积分或里程搜索兑换机票
  2. 02比较主要银行积分转换选项
  3. 03查看过往搜索历史
  4. 04基于 refresh token 的身份验证

适用场景

  1. 01查找使用积分兑换的航班可用性
  2. 02比较银行积分转入不同航空计划的选项
  3. 03回顾以往的兑换机票搜索记录

MCP 相关

该项目是 MCP 服务,向 MCP 客户端提供 search_flights、get_search_history 和 set_refresh_token 等工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"com-pulsemcp-pointsyeah": {
"command": "npx",
"args": [
"-y",
"pointsyeah-mcp-server"
],
"env": {
"POINTSYEAH_REFRESH_TOKEN": "<POINTSYEAH_REFRESH_TOKEN>",
"ENABLED_TOOLGROUPS": "<ENABLED_TOOLGROUPS>"
}
}
}
}
启动命令npx -y pointsyeah-mcp-server
需要配置的环境变量
POINTSYEAH_REFRESH_TOKEN密钥AWS Cognito refresh token from PointsYeah for authentication.
ENABLED_TOOLGROUPSComma-separated tool groups to enable.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmpointsyeah-mcp-server0.2.9

工具

3

收录的工具列表 · 更新于 2 周前

参数类型必填说明
adultsnumber否成人乘客人数(1-9)。默认值:1。
cabinsarray否要搜索的客舱等级。选项:"Economy"、"Premium Economy"、"Business"、"First"。默认值:["Economy", "Business"]。可指定多个客舱等级。
arrivalstring是目的地机场或城市代码。示例:"NYC"、"LHR"、"NRT"。请使用标准 IATA 机场代码或城市代码。
childrennumber否儿童乘客人数(0-9)。默认值:0。
tripTypeenum否行程类型:单程为 "1",往返为 "2"。默认值:"2"。仅需去程航班时设置为 "1"。1 | 2
departurestring是出发机场或城市代码。示例:“SFO”、“NYC”、“LAX”、“ORD”。使用标准 IATA 机场代码或城市代码。
departDatestring是出发日期,格式为 YYYY-MM-DD。示例:“2026-04-01”。必须是未来日期。
returnDatestring否返程日期,格式为 YYYY-MM-DD。往返搜索时必填。示例:“2026-04-08”。必须晚于 departDate。

详细介绍

PointsYeah MCP 服务

一个用于通过 PointsYeah 搜索奖励机票和旅行优惠的 MCP 服务。搜索 20 多个航空公司忠诚度计划中的积分和里程航班可订情况,并比较各大银行奖励计划的转点选项。

功能

  • 奖励机票搜索 - 使用多个航空公司计划中的积分/里程搜索航班
  • 银行转点比较 - 查看 Chase、Amex、Citi、Capital One、Bilt 和 Wells Fargo 的转点选项
  • 搜索历史 - 查看过去的奖励机票搜索记录

前提条件

  • PointsYeah 账户(免费或高级版)
  • Node.js 18+

配置

环境变量
变量必填说明
POINTSYEAH_REFRESH_TOKEN否来自 PointsYeah 的 AWS Cognito 刷新令牌(可选;也可在运行时通过 set_refresh_token 工具设置)
ENABLED_TOOLGROUPS否要启用的工具组,以逗号分隔(默认:全部)
身份验证

这三个工具始终对 MCP 客户端可见。需要身份验证的工具(search_flights、get_search_history)在未通过身份验证时,会返回明确的错误提示,引导用户使用 set_refresh_token。

  1. 未提供令牌时:调用 search_flights 或 get_search_history 会返回错误:“需要身份验证。请先调用 set_refresh_token 工具。”
  2. 提供有效令牌后(通过环境变量或工具提供):航班搜索工具即可正常使用
  3. 令牌过期或被撤销时:需要身份验证的工具会再次开始返回错误,提示用户调用 set_refresh_token
获取刷新令牌
  1. 前往 PointsYeah 登录页面 并登录
  2. 打开浏览器开发者工具(F12)-> 控制台
  3. 运行:
    document.cookie
      .split('; ')
      .find((c) => c.includes('.refreshToken='))
      .split('=')
      .slice(1)
      .join('=');
    
  4. 将其设置为 POINTSYEAH_REFRESH_TOKEN 环境变量,或在运行时通过 set_refresh_token 工具提供

注意: 刷新令牌通常会在 30-90 天后过期。令牌过期后,服务会自动切换回使用 set_refresh_token 工具。

Claude Desktop 配置

将以下内容添加到 Claude Desktop 配置文件中:

{
  "mcpServers": {
    "pointsyeah": {
      "command": "npx",
      "args": ["-y", "pointsyeah-mcp-server"],
      "env": {
        "POINTSYEAH_REFRESH_TOKEN": "your-refresh-token-here"
      }
    }
  }
}
手动设置
# Clone the repository
git clone https://github.com/pulsemcp/mcp-servers.git
cd mcp-servers/experimental/pointsyeah

# Install dependencies
npm run install-all

# Set up environment
export POINTSYEAH_REFRESH_TOKEN="your-refresh-token"

# Build and run
npm run build
cd local && npm start

可用工具

工具说明需要身份验证
set_refresh_token设置用于身份验证的 PointsYeah 刷新令牌否
search_flights使用多个航空公司计划中的积分/里程搜索奖励机票是
get_search_history获取过去的航班搜索记录是

架构

此服务使用两步流程搜索航班:

  1. 探索搜索 - 向 PointsYeah 的 explorer API 发送 HTTP POST 请求,提供出发/到达机场、日期和客舱等级。返回包含 CloudFront 详情 URL 的摘要结果。
  2. 获取详情 - 对每个详情 URL 发送 HTTP GET 请求,以获取完整的航线、航段和转点信息。每次搜索最多获取 10 条详情。

所有 API 调用均使用普通 HTTP 请求,并通过 Cognito ID 令牌进行身份验证。

身份验证流程

PointsYeah 使用 AWS Cognito 进行身份验证。服务支持动态身份验证:

  1. 启动时,如果设置了 POINTSYEAH_REFRESH_TOKEN,则通过 Cognito 验证该令牌。若有效,则进入已验证模式;若无效或已过期,则进入未验证模式。
  2. 始终注册所有工具。需要身份验证的工具会在调用时检查身份验证状态,未通过身份验证时返回错误。
  3. 完成身份验证后(通过环境变量或 set_refresh_token),通过 Cognito 的 InitiateAuth API 将刷新令牌换取访问令牌和 ID 令牌。
  4. 当令牌距离过期时间不足 5 分钟时,按需刷新令牌。
  5. 如果会话期间令牌被撤销(通过 API 错误检测),则自动将身份验证状态标记为无效,以便后续调用提示用户重新进行身份验证。

开发

# Install dependencies
npm run install-all

# Build
npm run build

# Run tests
npm test                    # Functional tests
npm run test:integration    # Integration tests (with TestMCPClient)
npm run test:all            # All tests

# Development mode
npm run dev

# Linting (from repo root)
cd ../.. && npm run lint
cd ../.. && npm run format

限制

  • 刷新令牌过期 - Cognito 刷新令牌会过期(通常为 30-90 天)。用户需要重新登录并更新令牌。
  • 免费套餐限制 - PointsYeah 可能会限制免费套餐的搜索频率或结果数量。
  • API 变更 - 如果 PointsYeah 更改了其 explorer API,可能需要更新搜索流程。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。