关于 TourClaim by Copernican
TourClaim 是用于准备信用卡旅行取消和中断理赔的 Python CLI、SDK 和 MCP 服务。它整理旅客提供的信息与证据;目前仅创建模拟理赔,且须由旅客授权并签署。
主要功能
- 01创建并更新理赔申请
- 02收集旅客选择分享的证据
- 03由旅客授权并签署
- 04提交草稿并跟踪状态
- 05仅限模拟审核模式
适用场景
- 01整理旅行取消理赔证据
- 02准备供旅客审核和签署的草稿
- 03在模拟审核模式下查看理赔状态
MCP 相关
本地 MCP 服务提供 17 个工具,用于 TourClaim 理赔准备工作流,并要求通过浏览器登录及取得旅客同意和签署。目前服务处于模拟审核模式,不会向保险公司提交理赔。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
17收录的工具列表 · 更新于 3 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| q | string | 是 | 信用卡产品名称,切勿填写卡号。 |
详细介绍
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:
- 登录。 旅行者在自己的浏览器中打开登录页面,输入终端中显示的代码并确认。此工具会保存属于该旅行者的密钥。
- 根据旅行者提供的信息创建草稿,然后回答 API 提示的未完成问题。
- 添加证据,由旅行者选择是否分享:收据、行程单、已有的医生证明,以及预订或取消邮件。
- 由旅行者签署。 旅行者在自己的浏览器中审核草稿并签署授权。此工具无法代替他们签署。
- 提交已签署的草稿,然后查询理赔状态。
此工具和 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。 |
currency | USD | 仅支持 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_seen | true/false | |
medical.provider_details | 文本 | 可选。 |
medical.prior_condition | true/false | |
medical.prior_condition_details | 文本 | 可选。 |
medical.stability_60day | true/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_URL | API 基础 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。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。