mcpField
T
TourClaim by Copernican

TourClaim by Copernican

本地服务
github.com金融数据04 天前更新

关于 TourClaim by Copernican

TourClaim 是用于准备信用卡旅行取消和中断理赔的 Python CLI、SDK 和 MCP 服务。它整理旅客提供的信息与证据;目前仅创建模拟理赔,且须由旅客授权并签署。

主要功能

  1. 01创建并更新理赔申请
  2. 02收集旅客选择分享的证据
  3. 03由旅客授权并签署
  4. 04提交草稿并跟踪状态
  5. 05仅限模拟审核模式

适用场景

  1. 01整理旅行取消理赔证据
  2. 02准备供旅客审核和签署的草稿
  3. 03在模拟审核模式下查看理赔状态

MCP 相关

本地 MCP 服务提供 17 个工具,用于 TourClaim 理赔准备工作流,并要求通过浏览器登录及取得旅客同意和签署。目前服务处于模拟审核模式,不会向保险公司提交理赔。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"tourclaim-tourclaim": {
"command": "uvx",
"args": [
"tourclaim"
]
}
}
}
启动命令uvx tourclaim

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

安装包
pypitourclaim0.2.3

工具

17

收录的工具列表 · 更新于 3 天前

参数类型必填说明
qstring是信用卡产品名称,切勿填写卡号。

详细介绍

tourclaim

Copernican 的 TourClaim 会针对旅客信用卡附带的旅行保险,提交行程取消和中断理赔。它会收集预订信息、商家的取消政策,以及事由证明(例如疾病的医疗服务提供者证明、承运方的航班取消通知、官方天气记录),并为信用卡福利管理员准备理赔材料,由其决定是否承保。只有理赔获赔时,Copernican 才会收取 10%。

本仓库包含 TourClaim by Copernican 的 Python CLI、SDK 和 MCP 服务,并附带 Node CLI。为你的应用、助手或终端提供旅行理赔工作流:保存旅客的回答,收集他们选择分享的证据,让他们签署授权书,并跟进理赔进度。适用于任何能够运行 shell 命令或调用 API 的助手;无需与已加入计划的旅行社或预订平台集成。

审核模式(截至 2026 年 10 月)。 开发者 API、两个 CLI 版本和 MCP 服务都会创建模拟理赔,不会向保险公司提交任何材料。请只使用虚构的预订和医疗数据。旅客可通过在线理赔表单发起真实理赔。tourclaim status 会显示当前模式,并且 API 返回的每份受理记录和理赔都会标明其所属模式。

面向开发者、Agent 和平台

TourClaim 的服务会审核信用卡旅行福利、整理收据和取消行程的证据、在需要时协调医疗服务提供者进行评估,并处理理赔材料准备、提交和跟进。旅客可以直接提供航班、酒店或旅行团预订信息。承保范围、赔付和临床文档要求取决于相关福利管理员或服务提供者。

该软件包提供已保存的受理记录、经选择的电子邮件和文件证据、旅客授权、向 Copernican 提交材料以及状态查询功能。**API 和两个 CLI 版本目前均使用模拟审核模式:**不会触发向保险公司提交材料、付款或临床服务。若要立即发起真实理赔,旅客需使用在线理赔表单,在其中安全地提供文件和付款详情。

  • **终端 Agent:**使用任一 CLI 并添加 --json;旅客批准登录后,会在自己的浏览器中登录。
  • **Python 应用:**使用Python 版本中的 tourclaim.Client。
  • **平台和调用工具的助手:**使用开发者指南和 OpenAPI 架构。

现有的 /muse URL 和密钥格式属于兼容性细节,仍可继续使用。每个连接都代表一名旅客,而非旅行社或覆盖整个平台注册账户。

功能介绍

TourClaim 会根据旅行者信用卡提供的旅行保障,提交行程取消和中断理赔申请。此工具代表一位旅行者调用 TourClaim 的连接器 API:

  1. 登录。 旅行者在自己的浏览器中打开登录页面,输入终端中显示的代码并确认。此工具会保存属于该旅行者的密钥。
  2. 根据旅行者提供的信息创建草稿,然后回答 API 提示的未完成问题。
  3. 添加证据,由旅行者选择是否分享:收据、行程单、已有的医生证明,以及预订或取消邮件。
  4. 由旅行者签署。 旅行者在自己的浏览器中审核草稿并签署授权。此工具无法代替他们签署。
  5. 提交已签署的草稿,然后查询理赔状态。

此工具和 API 均不会判断损失是否在保障范围内,也不会承诺报销或提供医生证明。只有理赔获赔后,Copernican 才会收取 10% 的费用;此工具不会收取任何款项。仅支持以美元支付的预订。

AI Agent 在使用此工具前,请先阅读 AGENTS.md。

安装

已发布的 Python CLI 和 SDK 需要 Python 3.9+。常规 CLI 没有运行时依赖。

pip install tourclaim
tourclaim --help
# Or: uvx tourclaim --help

有关库的信息,请参阅 python/README.md;有关从源代码构建 Node 版本的信息,请参阅 CONTRIBUTING.md。Node 版本需要 Node.js 18.3+;其软件包由发布工作流单独发布到 npm。

申请生产环境访问权限

测试可自助完成。安装 CLI 并运行 tourclaim login,即可创建旅行者连接。在合成审核模式下使用虚构数据进行测试,无需审批。

实时访问需要获得 Copernican 批准。 请填写集成申请表。请提供你的公司或产品、网站、使用场景、预期用量和计划上线日期。我们的团队会审核申请并通过电子邮件回复。

提交申请或创建测试密钥不会启用实时访问。每位旅行者仍必须授权自己的连接并签署理赔申请。

面向 AI 助手的 MCP

TourClaim 包含一个本地 MCP 服务,提供 17 个工具和浏览器登录,其旅行者同意与签署要求和 CLI 相同。请安装 uv,然后将以下内容添加到使用 mcpServers 的客户端:

{
  "mcpServers": {
    "tourclaim": {
      "command": "uvx",
      "args": ["--python", "3.12", "--from", "tourclaim[mcp]==0.2.3", "tourclaim", "mcp"]
    }
  }
}

有关所有工具、VS Code/Copilot 配置、身份验证和限制的信息,请参阅 MCP.md。官方注册表标识为 io.github.tourclaim/tourclaim;server.json 会在 PyPI 发布成功后由发布工作流发布。与 CLI 一样,它使用合成审核模式(参见顶部的说明)。

快速入门

# 1. Connect to the traveler's account. Opens a page; the traveler enters the code shown.
tourclaim login

# 2. Find the card the booking was paid with (by product name, never a card number).
tourclaim cards search sapphire

# 3. Start a draft with what the traveler has said so far.
tourclaim intake start --set merchant_name="Example Air" --set booking_ref=EXA-482913 \
  --set reason_category=airline_cancellation

# 4. Answer what is missing. The draft id comes from step 3.
tourclaim intake set <id> trip_date=2026-03-04 booking_amount=250.00 refunded_amount=50.00 \
  currency=USD card_product_id=412 other_insurance=no \
  narrative="Example Air cancelled flight EX 204 the night before departure."

# 5. Add the evidence the traveler agreed to share.
tourclaim intake attach <id> receipt.pdf --type receipt
tourclaim intake add-email <id> --eml cancellation.eml

# 6. The traveler reviews and signs in their browser. --wait returns once they have.
tourclaim intake sign <id> --wait

# 7. Submit, then follow the claim.
tourclaim intake submit <id>
tourclaim claims list

命令

每条命令均接受以下全局选项:

选项含义
--json机器可读输出。请参阅机器可读输出。
--api-url <url>API 基础 URL。默认值为 https://app.getcopernican.com,也可使用 TOURCLAIM_API_URL。
-h、--help显示命令帮助。也可使用 tourclaim help <command>。
--version打印版本号。

当标准输入不是终端时,命令不会提示输入;它们会报错并说明应改用哪个标志。

tourclaim login
tourclaim login [--no-browser] [--scope <scope>]... [--force]
tourclaim login --with-token [--force] < key.txt

使用设备代码登录。该工具会显示登录页面(https://app.getcopernican.com/connect/cli),并在单独一行显示 Enter this code on that page: WDJB-MJHT。在终端中运行时会打开该页面(使用 --no-browser 时除外)。旅行者在终端中输入显示的代码并批准;代码绝不会放入链接,因此别人发送的链接无法让任何人登录。该工具会按照 API 要求的间隔轮询,收到减慢轮询的指示时会放慢速度,并在代码过期时放弃。随后,它会保存密钥并显示账号和有效期:Signed in as [email protected] (key expires 2026-11-03 18:00 UTC, in 30 days).

  • --scope 用于请求较少的权限:可选 intakes:write、evidence:write、claims:submit、claims:read(重复使用该标志,或用逗号分隔)。默认请求全部四项权限。
  • 如果 API URL 已存有有效密钥,login 会报告该密钥并以状态码 0 退出,不会开始新的登录。--force 会获取新密钥。每当登录替换已存储的密钥时,该工具都会在登录请求中附带旧密钥,服务器签发新密钥时会撤销旧密钥(前提是旧密钥是同一账号的 tourclaim login 密钥;否则该工具会警告旧密钥仍然有效)。草稿不会丢失:请参阅密钥可以访问哪些草稿。
  • 该工具会等待代码过期,然后再检查一次,因此即使在最后几秒批准,也能成功登录。等待期间,短暂的服务器错误(HTTP 502、503 或 504)或连接中断不会导致登录终止:该工具会重试并遵循 Retry-After,只有连续失败 3 次后才会放弃。
  • 一位旅行者最多可以持有 5 个连接。新增 tourclaim login 会超出上限时,服务器会撤销该账号最早的 tourclaim login 密钥;绝不会触碰为其他应用创建的密钥。如果 5 个连接都属于其他应用,登录会失败(退出码 3),并显示服务器给出的原因:请先在 https://app.getcopernican.com/connect/muse 断开一个连接。
  • --with-token 用于保存旅行者已在 https://app.getcopernican.com/connect/muse 创建的密钥。如果通过管道传入,该工具会从标准输入读取密钥;如果在终端中运行,则会通过隐藏式提示读取,并在保存前通过 API 验证密钥。此类密钥不包含账号信息,因此该工具会显示 Signed in (key expires ...),不显示邮箱。密钥不能作为命令行参数传入。
  • 使用 --json 时,第一行是 {"event":"device_code","user_code":...,"verification_uri":...,"expires_in":...,"interval":...},Agent 可以据此向用户展示页面和代码;最后一行是 {"event":"signed_in",...},如果密钥包含账号信息,还会包含 account_email。
tourclaim logout

在服务器上撤销当前使用的密钥,然后删除已存储的副本。即使服务器表示该密钥已失效,也会删除已存储的副本。如果无法连接服务器,则不会删除任何内容,方便你重试。

tourclaim status(别名 whoami)

显示 API URL、连接器是否已启用、模式、登录账号、密钥有效期和权限。在审核模式下,第一行是 REVIEW MODE: CLAIMS ARE SYNTHETIC AND NOTHING IS FILED。已登录时退出码为 0,未登录或密钥被拒绝时为 3,连接器已禁用时为 7。

tourclaim cards search <query...>

按产品名称搜索卡片目录(最多 100 个字符,最多返回 30 条匹配结果)。使用结果中的 id 作为 card_product_id。找到卡片并不意味着它承保了此次损失。该命令会拒绝看起来像卡号的输入。

tourclaim intake start
tourclaim intake start [--set <field>=<value>]... [--fields-file <file>] [--idempotency-key <key>]

创建草稿。此时所有字段均可选;输出会列出缺少的内容,以及最多三个接下来要询问的问题。先运行 tourclaim intake list:旅行者可能已经为同一趟行程创建了草稿。除非你提供 Idempotency-Key,否则命令会发送一个随机值。如果命令失败或超时,请使用相同的 --idempotency-key 和相同的字段重新运行,以获取同一份草稿,而不是再创建一份;错误消息中包含命令使用的密钥。

tourclaim intake list [--offset <n>]

列出旅行者尚未提交的草稿,每次显示 30 份,按最近修改时间从新到旧排序,并显示每份草稿的状态、商家、预订编号和缺少的答案数量。可用此命令找回 ID 已丢失的草稿。已提交的草稿属于理赔申请;请参阅 tourclaim claims list。

tourclaim intake show <id>

显示已保存的答案、证据、状态、修订版本,以及仍缺少的内容。

tourclaim intake set <id> ...
tourclaim intake set <id> [<field>=<value>]... [<field>:=<json>]... [--clear <field>]... [--fields-file <file>] [--revision <n>]

仅保存指定字段;其他内容保持不变。--clear <field> 会清空字段(发送 null)。

  • field=value 会根据架构确定类型:金额如 250.00,日期如 2026-03-04,true/false(或 yes/no),以及任意大小写的枚举值(weather 会变成 WEATHER)。
  • field:=<json> 会原样发送 JSON 值,例如 card_product_id:=412 或 medical:='{"provider_seen":true}'。
  • --fields-file 会读取包含字段的 JSON 对象(- 表示读取标准输入)。命令行中指定的键值对会覆盖文件中的内容。
  • 命令会读取草稿的当前修订版本,并将其作为 expected_revision 发送(或使用 --revision)。如果草稿在此期间发生更改,则不会保存任何内容:命令会以状态码 4 退出,并说明草稿当前的内容。命令不会自动重试。
  • 旅行者签名后,任何更改都会使签名失效,命令会说明这一点。旅行者必须重新签名。
字段类型说明
merchant_name文本旅行者预订的商家,以确认信息上的名称为准。
booking_ref文本确切填写印在文件上的预订编号。每份预订只能提交一份理赔申请。
trip_date日期行程首日,格式为 YYYY-MM-DD。
booking_amount金额已支付的总金额,单位为 USD,例如 250.00。
refunded_amount金额已退款金额;未退款时填写 0.00。
currencyUSD仅支持 USD 预订。
card_product_id整数从 tourclaim cards search 获取。切勿填写卡号。
reason_category枚举ILLNESS、INJURY、DEATH_IN_FAMILY、MILITARY_DEPLOYMENT、WEATHER、AIRLINE_CANCELLATION、OTHER。
narrative文本旅行者用自己的话描述事情经过(10 至 10,000 个字符)。
cancellation_policy文本商家的条款,旅行者如有可提供。可选。
other_insurance枚举YES、NO、UNSURE。
other_insurance_details文本当 other_insurance 为 YES 时必填。
medical.symptom_onset_date日期原因是 ILLNESS 或 INJURY 时询问。
medical.provider_seentrue/false
medical.provider_details文本可选。
medical.prior_conditiontrue/false
medical.prior_condition_details文本可选。
medical.stability_60daytrue/false预订前 60 天内是否因该病症接受过治疗。
medical.stability_60day_details文本可选。
tourclaim intake attach <id> <file> --type <type>
tourclaim intake attach <id> <file> --type receipt|itinerary|medical_note|other [--yes] [--revision <n>]

上传一个不超过 5 MiB 的 PDF、JPEG 或 PNG 文件。文件类型根据文件的首字节检测,而非文件名。共享文件需要旅行者同意:在终端中,命令会询问是否同意;否则必须指定 --yes,若未指定,命令会拒绝操作且不会上传任何内容。没有任何设置可以将共享设为默认行为。这里的 medical_note 指旅行者已有的医疗说明,而非 Copernican 服务提供者出具的说明。

tourclaim intake add-email <id>
tourclaim intake add-email <id> (--eml <file> | --text-file <file> --subject <text> --from <address>)
    [--sent-at <iso>] [--provider user|gmail|outlook] [--message-id <id>] [--yes] [--revision <n>]

将一封电子邮件保存为证据。使用 --eml 时,会从已保存的邮件中读取 Subject、From、Date 和 Message-ID 标头以及第一个 text/plain 部分(标志参数会覆盖这些值)。使用 --text-file 时,请提供 --subject 和 --from。文本会原样发送,最多 30,000 个字符。如果未提供 --message-id,则会根据邮件生成稳定 ID,因此重复添加同一封邮件不会产生任何变化。--provider 默认为 user(由旅行者粘贴或保存)。同意机制与 attach 相同。

tourclaim intake sign <id>
tourclaim intake sign <id> [--wait] [--timeout <seconds>] [--no-browser]

只有旅行者可以在自己的浏览器中签署。草稿完整后,此命令会打印审核链接(review_url),并在终端中运行时打开该链接。--wait 会每隔 5 秒检查一次,直到旅行者完成签署或 --timeout(默认 900 秒)超时;与 login 一样,连续遇到最多 2 次短暂的服务器错误或连接中断时会继续等待。如果草稿已签署或已提交,命令会说明这一点。如果缺少答案,命令会列出缺失项。此工具不会代为签署,也不会自动操作审核页面。如果审核页面显示“您的命令行登录已结束”,请运行 tourclaim login,然后重新加载页面;草稿会保留。

tourclaim intake submit <id>

将已签署的草稿作为理赔提交,并打印理赔信息。可安全重试:重复调用会返回同一条理赔记录。如果草稿自 --revision 指定的版本后发生变化(stale_revision)、旅行者尚未签署当前版本(approval_required)、草稿不完整(intake_incomplete)、签名已超过 7 天或授权已更改(approval_outdated),或者该预订已有理赔记录(duplicate_booking),则退出码为 4。提交不会向保险公司提交任何文件、收取费用或承诺报销;接下来由 Copernican 审核理赔。

tourclaim intake delete <id>

永久删除尚未提交的草稿及其所有已保存内容。命令会要求确认,也可使用 --yes。此处无法删除已提交的草稿;请参阅 https://app.getcopernican.com/muse/data-deletion。

tourclaim claims list [--offset <n>]

按时间倒序列出已提交的理赔记录,每次显示 30 条。不会列出尚未提交的草稿。

tourclaim claims show <id>

显示理赔状态、可转告旅行者的下一步操作说明,以及状态最近一次更改的时间。除非状态明确说明,否则状态并不代表承保决定。

tourclaim schema

从 /api/connectors/v1/openapi-cli.json 打印 CLI 使用的实时 OpenAPI 文档,其中包含每项操作;如果服务器尚未提供该文档,则改为打印 /api/connectors/v1/openapi.json。无需登录。/api/connectors/v1/openapi.json 本身只列出助手会作为工具加载的 11 项操作;它不包含草稿列表和密钥端点,但任何密钥仍可使用这些端点。此版本构建所依据的完整架构副本位于 openapi/connectors-v1.json。

草稿状态

状态含义下一步
collecting缺少答案。tourclaim intake set
needs_approval内容完整;旅行者必须审核并签署。tourclaim intake sign
ready_to_submit已签署。tourclaim intake submit
submitted理赔记录已创建;草稿为只读。tourclaim claims show

机器可读输出

使用 --json:

  • stdout 每行输出一个 JSON 值。对于 cards search、intake start|show|set|attach|add-email|submit 和 claims list|show,输出的是 API 自身的响应对象,不作更改。对于不带 --wait 的 intake sign,输出的是草稿。
  • 等待的命令 会先输出一行事件,最后输出结果:login 先输出 {"event":"device_code",...},然后输出 {"event":"signed_in",...};intake sign --wait 先输出 {"event":"waiting_for_signature","intake_id","review_url","timeout_seconds"},然后输出草稿。最后一行始终是结果。
  • status 输出 {"api_url","mode","enabled","connector":{...},"signed_in","account_email","key":{"id","expires_at","scopes"},"key_source","key_problem","credentials_path"};只有来自 tourclaim login 的密钥才会包含 account_email。logout 输出 {"api_url","revoked","already_invalid","credential_removed","key_source"}。intake delete 输出 {"id","deleted":true}。
  • 错误 以单行形式输出到 stderr,格式为 {"error":{"code","message","exit_code",...}};适用时还会包含 status、detail(API 的验证列表)、retry_after、idempotency_key、review_url、current_revision、state 或 missing_fields。错误代码包括 usage_error、not_signed_in、unauthorized、forbidden、not_found、invalid、too_large、rate_limited、unavailable、access_denied、expired_token、timeout、network_error、unsupported_file、cancelled,以及退出代码为 4 时的某个冲突原因。
  • 进度信息和警告 在两种模式下都会以纯文本输出到 stderr。

退出代码

代码含义
0成功。
1错误:值无效(422)、文件无法读取或不受支持、网络故障、超时、提示被拒绝。
2用法错误:标志或参数错误,或者需要确认但没有终端(只有在旅行者同意的情况下才传入 --yes)。
3未登录,或密钥被拒绝(401)或权限不足(403)。也包括登录被拒绝或登录已过期。运行 tourclaim login。
4冲突(409)。JSON 错误中的 code 会说明原因;参见冲突原因。
5自动重试一次后仍受到速率限制(429)。工具会等待 Retry-After 指定的时间(最多 60 秒),然后自行重试一次。
6未找到(404)。
7连接器已禁用或不可用(503)。

冲突原因

退出代码 4 表示 API 因草稿状态而拒绝了更改。API 会在 X-TourClaim-Error 标头中指出原因,工具会将其用作 JSON 错误 code。工具在调用 API 前拒绝操作时(例如提交未签名的草稿),也会使用这些代码。工具绝不会自行重试冲突。

代码含义操作方法
idempotency_key_reused此 --idempotency-key 已用于不同的字段。不传入该密钥(或使用新的密钥)以开始不同的草稿。
idempotency_key_other_connection该密钥已被另一个连接使用。使用新的密钥。
concurrent_request同一请求同时运行了两次。使用相同的 --idempotency-key 再次运行。
stale_revision草稿在读取后发生了更改。没有保存任何内容。运行 tourclaim intake show,然后再次运行该命令。
intake_submitted草稿已提交,现为只读。运行 tourclaim claims list。
intake_incomplete缺少回答。运行 tourclaim intake set。
approval_required旅行者尚未签署此修订版。旅行者运行 tourclaim intake sign <id> --wait。
approval_outdated签名已超过 7 天,或授权已更改。旅行者再次签署:tourclaim intake sign <id> --wait。
evidence_conflict相同的电子邮件或文件已使用不同详情添加。无需处理,或使用原有详情添加。
duplicate_booking此预订已有一项索赔。运行 tourclaim claims list。

密钥可以访问哪些草稿

  • tourclaim login 获取的密钥可以访问同一账户下所有尚未提交的草稿,包括使用已过期或已撤销的密钥创建的草稿。重新登录、使用 login --force 和 logout 都不会丢失草稿。
  • 与账户关联的其他应用(例如 Muse)创建的草稿对该工具不可见,这些应用也看不到该工具创建的草稿。
  • 使用 login --with-token 保存的密钥(在 /connect/muse 创建)只能访问它自己创建的草稿。
  • 已提交的索赔属于账户:tourclaim claims list 会显示所有索赔,包括通过 Muse 等其他应用提交的索赔。

配置

变量含义
TOURCLAIM_API_URLAPI 基础 URL。--api-url 可覆盖此设置。仅 localhost 接受普通 http://。
TOURCLAIM_API_KEY用于替代已保存密钥的密钥。其优先级高于已保存的密钥。通过 /connect/muse 创建的密钥只能访问它自己创建的草稿。
XDG_CONFIG_HOME凭据存储在 $XDG_CONFIG_HOME/tourclaim/credentials.json 中(默认路径为 ~/.config/tourclaim/credentials.json;Windows 上为 %APPDATA%\tourclaim\credentials.json)。

凭据文件将每个 API 基础 URL 映射到 {"api_key","expires_at","grant_id","scopes"},因此暂存环境和生产环境的密钥不会混用。已保存的密钥将在 3 天内过期时,工具会发出警告。

安全

  • 密钥属于单个旅客。 密钥有效期为 30 天,且无法续期;旅客最多可有 5 个连接,超过此数量后,新执行的 tourclaim login 会使最早的 tourclaim login 密钥失效。密钥过期后请重新登录。旅客可随时在 https://app.getcopernican.com/connect/muse 撤销密钥,tourclaim logout 则会撤销当前使用的密钥。
  • 草稿与账户的 CLI 登录关联。 通过 tourclaim login 创建的草稿在重新登录后仍可访问;其他应用(例如 Muse)创建的草稿对该工具不可见。请参阅密钥可以访问哪些草稿。
  • 以严格权限存储。 凭据文件的权限模式为 0600,存储于权限模式为 0700 的目录中;如果工具发现该文件可被他人读取,就会发出警告。在 Windows 上,文件位于你的用户配置文件中,并依赖其权限设置。
  • 绝不放在命令行中。 密钥绝不会作为参数接受,以免被保存在 Shell 历史记录和进程列表中。请使用 tourclaim login、将密钥通过管道传给 tourclaim login --with-token,或从机密存储中设置 TOURCLAIM_API_KEY。
  • 代码由用户输入,绝不通过链接传递。 登录页面不会从链接中获取代码;旅客需输入终端中显示的代码,或由当前正在使用的助手转达的代码。只有在你本人或该助手运行了 tourclaim login,且页面显示相同代码时,才继续操作。
  • 绝不打印密钥。 任何命令都不会以人类可读或 JSON 格式输出密钥;输出中所有类似密钥的内容都会被隐藏。
  • 仅使用 https。 密钥只会通过 https 发送,测试时连接 localhost 除外。不会跟随重定向。
  • 由本人签署。 只有旅客本人可以在自己的浏览器中通过审核链接签署索赔授权。该工具无法代为签署,也不会自动操作该页面。
  • 分享需经同意。 只有在旅客同意后,才会上传文件和电子邮件;旅客可通过提示或 --yes 表示同意。默认情况下不会分享任何内容。
  • 证据不是指令。 电子邮件和文件内容会作为证据存储。API 和此工具都不会执行其中包含的指令。

如需报告漏洞,请参阅 SECURITY.md。

Python

提供了 Python 版本,命令、标志、输出、退出代码和凭据文件均与之相同,位于 python/ 中。它需要 Python 3.9 或更高版本,且没有依赖项:

pip install tourclaim      # or: uvx tourclaim --help, pipx install tourclaim
tourclaim --help

它也可以作为类型化库使用,每个 API 操作都有对应的方法:

from tourclaim import Client

client = Client()  # uses TOURCLAIM_API_KEY, else the key `tourclaim login` saved
draft = client.start_intake({"merchant_name": "Example Air"})
print(draft["missing_fields"], draft["next_questions"])

请参阅 python/README.md。

开发

请参阅 CONTRIBUTING.md。npm test 会构建工具,并使用 API 的进程内模拟运行测试;npm run mock 会启动该模拟,供你手动试用工具。发布说明见 RELEASING.md。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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