关于 qontoctl
qontoctl 是用于通过 Qonto 银行 API 自动化操作的开源命令行工具、MCP 服务和库,面向需要脚本化或 AI 辅助管理银行业务、付款与发票的团队和运维人员。
主要功能
- 01管理账户和交易
- 02创建和管理转账
- 03处理发票、报价单和客户
- 04管理卡片、成员和 Webhook
- 05使用组织命名配置档案
适用场景
- 01自动化定期 Qonto 操作
- 02创建并发送客户发票
- 03查看交易和银行对账单
- 04通过脚本运行付款流程
MCP 相关
本地 MCP 服务将 Qonto 操作作为工具提供给 AI 助手,并使用已配置的凭据。它可与命令行工具和库配合运行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
128收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| file_path | string | 是 | 要上传文件的绝对路径 |
详细介绍

适用于 Qonto 银行 API 的 CLI 和 MCP 服务。
本项目由 Alexey Pelykh 为您带来。
非官方项目。 QontoCtl 独立运营,与 Qonto 无关联,未获其认可或支持。请参阅免责声明。
功能介绍
QontoCtl 可让 AI 助手(Claude 等)通过 Model Context Protocol 与 Qonto 交互。它可以:
- 组织 — 获取组织详情和设置
- 账户 — 列出、创建、更新和关闭银行账户;下载 IBAN 证明
- 交易 — 列出、搜索和筛选银行交易;管理交易附件
- 银行对账单 — 列出、查看和下载银行对账单
- 标签 — 管理交易标签和类别
- 成员资格 — 查看团队成员、显示当前成员资格、邀请新成员
- SEPA 受益人 — 列出、添加、更新 SEPA 受益人,以及设置信任或取消信任
- SEPA 转账 — 列出、创建和取消转账;下载凭证;验证收款人
- 内部转账 — 在同一组织的账户之间创建转账
- 批量转账 — 列出、查看和创建 SEPA 批量转账
- 定期转账 — 列出、查看、创建和取消定期转账
- 国际转账(SWIFT) — 创建 SWIFT 转账并管理国际受益人
- 卡片 — 列出、创建、更新、锁定或解锁卡片,报告卡片丢失或被盗,以及销毁卡片
- 团队 — 列出和创建团队
- Webhook — 创建和管理 Webhook 订阅
- 付款链接 — 创建、停用和管理由 Stripe 提供支持的付款链接
- 保险 — 查看、创建和更新保险合同,以及管理相关文档
- 终端(POS) — 列出 Qonto 终端并发起终端付款
- 产品 — 列出目录产品
- 客户 — 列出、创建、更新和删除客户
- 客户发票 — 完整生命周期:创建、更新、定稿、发送、标记为已付款、取消和上传文件
- 报价 — 创建、更新、删除和发送报价
- 贷项通知单 — 列出和查看贷项通知单
- 供应商发票 — 列出、查看和批量创建供应商发票
- 请求 — 列出组织请求
- 附件 — 上传和查看附件
- 电子发票 — 获取电子发票设置
QontoCtl 与 Qonto 官方 MCP
QontoCtl 是一个独立的非官方项目,与 Qonto 无关联,也未获其认可。
Qonto 提供了自己的官方 MCP 服务——托管式服务,所有套餐均可免费使用,并且可以从 Claude、ChatGPT、Cursor 等产品中一键安装。如果你想通过对话_查询_财务信息,例如“显示我的余额”“绘制上个月的支出图表”或“起草一张发票”,这是一个出色且制作精良的选择。
QontoCtl 则为另一种任务而打造:自动化操作 Qonto,而不只是与它对话。
官方 MCP 是一个托管式助手,你需要以用户身份登录。QontoCtl 是一套本地开源工具包,包含命令行工具、MCP 服务和库,可使用你自己的凭据在自己的计算机上运行,也可作为无头服务账户运行。
| 官方 MCP | QontoCtl | |
|---|---|---|
| 无头运行——CI、cron、脚本,无需聊天 | 仅限交互式 | ✅ 命令行工具 + MCP + 库 |
| 身份验证 | OAuth,按用户 | ✅ API 密钥(服务账户)或 OAuth |
| 执行 SEPA / 内部 / 定期转账 | 准备审批请求 | ✅ 可以,并处理 SCA* |
| API 覆盖范围 | 精选子集 | ✅ 全面 |
| 自托管 · 使用自己的凭据 · 开源 | 由 Qonto 托管 | ✅ AGPL-3.0,以本地为先 |
此比较基于截至 2026 年 7 月的 Qonto 公开 MCP 文档。
* 向不受信任的收款人转账仍需你通过强客户身份验证审批,这是必要的。QontoCtl 会处理 SCA 后续流程,因此脚本化工作流——向受信任的受益人转账,以及在你自己的账户之间转账——无需有人守在终端前即可完成。
QontoCtl 还支持通过命名配置文件在一个设置中使用多个 Qonto 组织——这对会计师、控股公司以及任何负责多个实体账目的用户都很方便。
官方 MCP 能与 Qonto 对话。QontoCtl 能自动化操作 Qonto。 许多人会同时使用两者——在聊天窗口中使用官方 MCP,在流水线中使用 QontoCtl。
前提条件
- Node.js >= 24
- 一个可使用 API 的 Qonto 企业账户
安装
npm install -g qontoctl
也可以通过 npx 直接运行:
npx qontoctl --help
或者通过 Homebrew 安装:
brew install qontoctl/tap/qontoctl
快速开始
# 1. Install
npm install -g qontoctl
# 2. Create a profile with your Qonto API credentials
qontoctl profile add mycompany
# 3. Test the connection
qontoctl profile test --profile mycompany
# 4. List your accounts
qontoctl account list --profile mycompany
MCP 集成
QontoCtl 实现了 Model Context Protocol(MCP),让 AI 助手能够通过自然语言与你的 Qonto 账户交互。
MCP 客户端配置
Claude Desktop
将以下内容添加到 Claude Desktop 配置文件(claude_desktop_config.json)中:
{
"mcpServers": {
"qontoctl": {
"command": "npx",
"args": ["qontoctl", "mcp"]
}
}
}
Claude Code
claude mcp add qontoctl -- npx qontoctl mcp
Cursor
将以下内容添加到项目根目录下的 .cursor/mcp.json:
{
"mcpServers": {
"qontoctl": {
"command": "npx",
"args": ["qontoctl", "mcp"]
}
}
}
Windsurf
将以下内容添加到 ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"qontoctl": {
"command": "npx",
"args": ["qontoctl", "mcp"]
}
}
}
指定非默认配置文件供 MCP 使用
MCP 服务没有 CLI 标志。若要从 ~/.qontoctl.yaml 以外的配置文件加载凭据,请在宿主的 env 块中设置 QONTOCTL_CONFIG_FILE:
{
"mcpServers": {
"qontoctl": {
"command": "npx",
"args": ["qontoctl", "mcp"],
"env": {
"QONTOCTL_CONFIG_FILE": "/abs/path/to/qontoctl.yaml",
},
},
},
}
路径会在服务启动时读取。完整的查找顺序请参阅 docs/configuration.md。
可用的 MCP 工具
| 工具 | 说明 |
|---|---|
| 组织 | |
org_show | 显示组织详情,包括名称、slug 和银行账户 |
| 账户 | |
account_list | 列出组织的所有银行账户 |
account_show | 显示特定银行账户的详情 |
account_iban_certificate | 下载银行账户的 IBAN 证明 PDF |
account_create | 创建新的银行账户 |
account_update | 更新现有银行账户 |
account_close | 关闭银行账户 |
| 交易 | |
transaction_list | 列出银行账户的交易,可选添加筛选条件 |
transaction_show | 显示特定交易的详情 |
transaction_attachment_list | 列出交易的附件 |
transaction_attachment_add | 为交易添加文件 |
transaction_attachment_remove | 从交易中移除附件 |
| 对账单 | |
statement_list | 列出银行对账单,可选添加筛选条件 |
statement_show | 显示特定银行对账单的详情 |
| 标签 | |
label_list | 列出组织中的所有标签 |
label_show | 显示特定标签的详情 |
| 成员资格 | |
membership_list | 列出组织中的所有成员资格 |
membership_show | 显示当前已认证用户的成员资格 |
membership_invite | 邀请新成员加入组织 |
| SEPA 受益人 | |
beneficiary_list | 列出组织中的 SEPA 受益人 |
beneficiary_show | 显示特定 SEPA 受益人的详情 |
beneficiary_add | 创建新的 SEPA 受益人 |
beneficiary_update | 更新现有 SEPA 受益人 |
beneficiary_trust | 信任一个或多个 SEPA 受益人 |
beneficiary_untrust | 取消对一个或多个 SEPA 受益人的信任 |
| SEPA 转账 | |
transfer_list | 列出 SEPA 转账,可选添加筛选条件 |
transfer_show | 显示特定 SEPA 转账的详情 |
transfer_create | 创建 SEPA 转账 |
transfer_cancel | 取消待处理的 SEPA 转账 |
transfer_proof | 下载 SEPA 转账凭证 PDF |
transfer_verify_payee | 验证收款人(Verification of Payee / VoP) |
transfer_bulk_verify_payee | 批量验证收款人(VoP) |
| 内部转账 | |
internal_transfer_create | 在两个银行账户之间创建内部转账 |
| 批量转账 | |
bulk_transfer_list | 列出批量转账 |
bulk_transfer_show | 显示特定批量转账的详情 |
bulk_transfer_create | 创建批量 SEPA 转账(通过 bulk_verify_payee 自动解析 VoP) |
| 定期转账 | |
recurring_transfer_list | 列出定期转账 |
recurring_transfer_show | 显示特定定期转账的详情 |
| 终端(POS) | |
terminal_list | 列出关联到组织的 Qonto 终端 |
terminal_payment_create | 在终端上发起付款(返回 202 Accepted) |
| 产品 | |
product_list | 列出商品目录中的产品,可选分页和排序 |
| 客户 | |
client_list | 列出客户,可选分页 |
client_show | 显示特定客户的详情 |
client_create | 创建新客户 |
client_update | 更新现有客户 |
client_delete | 删除客户 |
| 客户发票 | |
client_invoice_list | 列出客户发票,可选添加筛选条件 |
client_invoice_show | 显示特定客户发票的详情 |
client_invoice_create | 使用客户和行项目创建客户发票草稿 |
client_invoice_update | 更新客户发票草稿 |
client_invoice_delete | 删除客户发票草稿 |
client_invoice_finalize | 定稿客户发票(分配编号) |
client_invoice_send | 通过电子邮件向客户发送客户发票 |
client_invoice_mark_paid | 将客户发票标记为已付款 |
client_invoice_unmark_paid | 取消客户发票的已付款状态 |
client_invoice_cancel | 取消已定稿的客户发票 |
client_invoice_upload | 向客户发票上传文件 |
client_invoice_upload_show | 显示客户发票的上传详情 |
| 报价单 | |
quote_list | 列出报价单,可选添加筛选条件 |
quote_show | 显示特定报价单的详情 |
quote_create | 使用客户和行项目创建新报价单 |
quote_update | 更新现有报价单 |
quote_delete | 删除报价单 |
quote_send | 通过电子邮件向客户发送报价单 |
| 贷项通知单 | |
credit_note_list | 列出组织中的贷项通知单 |
credit_note_show | 显示特定贷项通知单的详情 |
| 供应商发票 | |
supplier_invoice_list | 列出供应商发票,可选添加筛选条件 |
supplier_invoice_show | 显示特定供应商发票的详情 |
supplier_invoice_bulk_create | 通过上传文件创建供应商发票 |
| 请求 | |
request_list | 列出组织中的所有请求 |
| SCA 会话 | |
sca_session_show | 显示 SCA 会话状态(waiting / allow / deny) |
sca_session_mock_decision | 在 Qonto 沙盒中模拟 SCA 决策(仅限沙盒环境) |
| 附件 | |
attachment_upload | 上传附件文件(PDF、JPEG、PNG) |
attachment_show | 显示特定附件的详情 |
| 电子发票 | |
einvoicing_settings | 获取组织的电子发票设置 |
示例提示词
配置完成后,你可以向 AI 助手提出以下请求:
- “显示我的 Qonto 账户余额”
- “列出金额超过 1000 EUR 的近期交易”
- “上个月有哪些银行卡付款?”
- “显示我所在组织的所有团队成员”
- “列出 2026 年 1 月的银行对账单”
- “汇总本周的借记交易”
SCA 续办
某些 Qonto 写入操作——创建转账、修改银行卡、批准请求——需要 Strong Customer Authentication(SCA):用户必须先在 Qonto 移动应用中批准请求,操作才会执行。QontoCtl 会为每个受 SCA 限制的 MCP 写入工具封装续办流程,因此 LLM 客户端无需重新实现轮询逻辑。
封装后的写入工具如何运行
当受 SCA 限制的工具(例如 transfer_create、card_create、beneficiary_trust、request_approve)遇到 428 SCA 挑战时,封装器会在内部轮询 SCA 会话。如果用户在轮询时限内批准请求,工具会直接返回操作成功结果,LLM 不会看到 SCA 往返流程。如果轮询超时(或已禁用轮询),工具会返回结构化的 SCA 待处理响应,其中包含会话令牌和后续操作说明。
每个封装后的工具都会提供两个用于此流程的可选输入字段:
wait— 内部轮询的最长秒数,超时后返回待处理响应。sca_session_token— 将先前已批准的 SCA 挑战绑定到重试请求。
wait 参数
| 值 | 行为 |
|---|---|
30 (默认值) | 轮询最多 30 秒,然后回退到结构化的待处理响应。 |
1–120 | 按指定秒数轮询(上限为 120 秒)。 |
0 或 false | 完全跳过轮询。首次遇到 428 时立即返回 SCA 待处理响应。 |
120 的上限是通过输入边界上的 Zod 强制执行的硬性上限。实际可用时限取决于 MCP 主机的请求超时设置——Claude Desktop 将其硬编码为约 60 秒,Cursor 的实际限制约为 30 秒,因此超过这些时限的值会在封装器完成处理前触发主机侧超时。如果 LLM 预计用户会在场并立即批准,请使用较小的 wait 值(例如 5–10)。如果需要 纯两步流程,即 LLM 与用户在 SCA 挑战和重试之间通过带外方式交互,请使用 wait: false(或 wait: 0)。
两步回退(带外续办)
轮询未完成时,SCA 待处理响应会包含:
- 面向用户的消息:
"SCA required. The user must approve this operation on their Qonto mobile app." - 一行
Session token: <token>(令牌自签发起有效期为 15 分钟)。 - 继续操作的分步说明。
随后,LLM(或用户)可以:
- 使用
sca_session_show工具并传入捕获的令牌,轮询会话状态。返回值为waiting、allow或deny。 - 状态为
allow后,重试原始工具,传入 相同参数,并附加sca_session_token: "<token>"。封装器会使用已绑定的令牌恰好调用一次操作,不会再次轮询。
PSD2 动态关联。 SCA 会话令牌与 原始 请求参数(金额、收款人)绑定。将令牌用于不同操作会被 Qonto 拒绝。如果需要更改参数,请再次调用原始工具以重新发起 SCA 挑战。
调用方提供的重试(sca_session_token)
在封装的写入工具上设置 sca_session_token 后,封装器会:
- 恰好调用一次操作。
- 完全跳过轮询。
- 通过
X-Qonto-Sca-Session-Token标头转发令牌。
这是两步回退流程中第 (2) 步使用的路径。如果 LLM 客户端自行实现轮询节奏,只需要封装器使用已捕获的批准进行重试,这种方式也很有用。
沙箱测试
沙箱账户无法注册真实的配对设备,因此沙箱中的 SCA 挑战使用 mock 流程。收到待处理响应后,使用 sca_session_mock_decision 工具模拟用户的决定(仅限沙箱——未配置预发布令牌时会拒绝运行)。完整的沙箱设置请参见 docs/sandbox-testing.md。
迁移说明
早期版本的 QontoCtl(在 @qontoctl/mcp 支持 SCA 续接之前)遇到 428 时会返回自由格式文本响应,且没有续接钩子。解析此响应的调用方应采用结构化流程:
| 之前 | 之后 |
|---|---|
| 自由格式文本提到了 SCA 端点,但没有提供 MCP 暴露的续接方式。 | SCA 待处理响应仍为文本内容,但格式稳定:Session token: <token> 是规范行;sca_session_show 是轮询 API。 |
| 轮询需要直接调用 Qonto HTTP API。 | 使用 sca_session_show MCP 工具。 |
| 重新运行操作会使之前的批准失效。 | 使用捕获的 sca_session_token 参数重试原始工具——之前的批准会绑定到此次重试。 |
| 无法选择启用内联轮询——每个 428 都会陷入死路。 | 传入 wait: <seconds>(1-120)进行内联轮询;工具默认等待 30s。传入 wait: false 使用显式的两步流程。 |
待处理响应的文本格式稳定,因此需要以编程方式提取令牌的调用方可以匹配 Session token: 行——但直接使用 sca_session_show 可避免依赖响应文本。
CLI 用法
遇到问题时首先尝试的命令:
qontoctl diagnose——对配置、凭据、作用域、组织元数据和主机路由进行只读健康检查。
命令
| Command | 描述 |
|---|---|
diagnose | 只读健康检查(参见故障排除) |
org show | 显示组织详情 |
account list | 列出银行账户 |
account show <id> | 显示银行账户详情 |
account iban-certificate <id> | 下载 IBAN 证明 PDF |
account create | 创建新的银行账户 |
account update <id> | 更新银行账户 |
account close <id> | 关闭银行账户 |
transaction list | 根据筛选条件列出交易 |
transaction show <id> | 显示交易详情 |
transaction attachment list <id> | 列出交易的附件 |
transaction attachment add <id> <file> | 为交易添加文件 |
transaction attachment remove <id> [att-id] | 从交易中移除附件 |
statement list | 列出银行对账单 |
statement show <id> | 显示对账单详情 |
statement download <id> | 下载对账单 PDF |
label list | 列出所有标签 |
label show <id> | 显示标签详情 |
membership list | 列出组织成员资格 |
membership show | 显示当前用户的成员资格 |
membership invite | 邀请新成员 |
beneficiary list | 列出 SEPA 受益人 |
beneficiary show <id> | 显示受益人详情 |
beneficiary add | 创建新的受益人 |
beneficiary update <id> | 更新受益人 |
beneficiary trust <id...> | 信任一个或多个受益人 |
beneficiary untrust <id...> | 取消信任一个或多个受益人 |
transfer list | 列出 SEPA 转账 |
transfer show <id> | 显示 SEPA 转账详情 |
transfer create | 创建 SEPA 转账 |
transfer cancel <id> | 取消待处理的 SEPA 转账 |
transfer proof <id> | 下载 SEPA 转账凭证 PDF |
transfer verify-payee | 验证收款人(VoP) |
transfer bulk-verify-payee | 从 CSV 批量验证收款人 |
internal-transfer create | 创建内部转账 |
bulk-transfer list | 列出批量转账 |
bulk-transfer show <id> | 显示批量转账详情 |
bulk-transfer create | 根据 JSON 创建 SEPA 批量转账 |
recurring-transfer list | 列出定期转账 |
recurring-transfer show <id> | 显示定期转账详情 |
terminal list | 列出 Qonto 终端(POS) |
terminal payment create <id> | 在终端上发起付款 |
product list | 列出目录中的产品 |
client list | 列出客户 |
client show <id> | 显示客户详情 |
client create | 创建新客户 |
client update <id> | 更新客户 |
client delete <id> | 删除客户 |
client-invoice list | 列出客户发票 |
client-invoice show <id> | 显示客户发票详情 |
client-invoice create | 创建客户发票草稿 |
client-invoice update <id> | 更新客户发票草稿 |
client-invoice delete <id> | 删除客户发票草稿 |
client-invoice finalize <id> | 定稿客户发票并分配编号 |
client-invoice send <id> | 通过电子邮件向客户发送客户发票 |
client-invoice mark-paid <id> | 将客户发票标记为已付款 |
client-invoice unmark-paid <id> | 取消客户发票的已付款状态标记 |
client-invoice cancel <id> | 取消已定稿的客户发票 |
client-invoice upload <id> <file> | 向客户发票上传文件 |
client-invoice upload-show <id> <upload-id> | 显示客户发票的上传详情 |
quote list | 列出报价 |
quote show <id> | 显示报价详情 |
quote create | 创建新报价 |
quote update <id> | 更新报价 |
quote delete <id> | 删除报价 |
quote send <id> | 通过电子邮件向客户发送报价 |
credit-note list | 列出贷项通知单 |
credit-note show <id> | 显示贷项通知单详情 |
supplier-invoice list | 列出供应商发票 |
supplier-invoice show <id> | 显示供应商发票详情 |
supplier-invoice bulk-create | 根据文件创建供应商发票 |
einvoicing settings | 显示电子发票设置 |
request list | 列出所有请求 |
attachment upload <file> | 上传附件文件 |
attachment show <id> | 显示附件详情 |
auth setup | 配置 OAuth 客户端凭据 |
auth login | 启动 OAuth 登录流程 |
auth status | 显示 OAuth 令牌状态(仅针对该项;如需检查整个集成的运行状况,请使用 diagnose) |
auth refresh | 刷新 OAuth 访问令牌 |
auth revoke | 撤销 OAuth 授权并清除令牌 |
profile add <name> | 创建具名配置 |
profile list | 列出所有配置 |
profile show <name> | 显示配置详情(已隐藏机密信息) |
profile remove <name> | 移除具名配置 |
profile test | 测试凭据 |
completion bash | 生成 bash 命令补全 |
completion zsh | 生成 zsh 命令补全 |
completion fish | 生成 fish 命令补全 |
mcp | 在标准输入输出上启动 MCP 服务 |
全局选项
| 选项 | 描述 |
|---|---|
--config <path> | 配置文件的显式路径(优先于 --profile 和 QONTOCTL_CONFIG_FILE) |
-p, --profile <name> | 要使用的配置配置文件 |
-o, --output <format> | 输出格式:table(默认)、json、yaml、csv |
--page <number> | 获取指定页的结果 |
--per-page <number> | 每页的结果数量 |
--no-paginate | 禁用自动分页 |
--verbose | 启用详细输出 |
--debug | 启用调试输出(同时启用 --verbose) |
配置
QontoCtl 支持两种身份验证方式:
- API Key — 仅限生产环境访问,使用组织 slug 和密钥。支持 Qonto 身份验证表中标记为“API key ✔”的端点(大多数读取操作以及许多写入操作——内部转账、客户、附件等)。无法用于 Qonto 沙盒。
- OAuth 2.0 — 完整访问权限,包括仅限 OAuth 的端点(卡片、团队、webhook、电子发票、付款链接、保险、国际转账、定期转账、SCA 流程),并可通过 staging-token 访问 Qonto 沙盒;请参阅 OAuth 应用设置指南。
配置文件格式
所有配置文件使用相同的 YAML 格式:
# API Key authentication
api-key:
organization-slug: acme-corp-4821
secret-key: your-secret-key
# OAuth 2.0 authentication (see docs/oauth-setup.md)
oauth:
client-id: your-client-id
client-secret: your-client-secret
解析顺序
CLI 按以下顺序解析配置文件(优先级从高到低):
--config <path>标志QONTOCTL_CONFIG_FILE环境变量~/.qontoctl/{name}.yaml(提供--profile <name>时)~/.qontoctl.yaml(主目录默认配置)
当 --config 与 QONTOCTL_CONFIG_FILE 或 --profile 同时提供,且解析出的路径不一致时,以 --config 为准,并在 stderr 中发出警告,以便清楚显示覆盖情况。
不会搜索当前目录。 CLI 不会扫描工作目录中的
.qontoctl.yaml。如需使用仓库本地配置,请使用direnvshim 导出QONTOCTL_CONFIG_FILE="$PWD/.qontoctl.yaml",或在每次调用时显式传入--config ./.qontoctl.yaml。
按字段覆盖会在已加载的文件配置之上生效:
- 不使用
--profile:QONTOCTL_*环境变量覆盖文件中的值 - 使用
--profile acme:QONTOCTL_ACME_*环境变量覆盖文件中的值
完整参考(各入口点的优先级规则、配置文件配置语义、从 CWD 搜索迁移的说明),请参阅 docs/configuration.md。
环境变量
环境变量会覆盖文件中的值。它们承载的是工具读取但不会写回的输入(静态配置);运行时可变状态(刷新令牌、令牌到期时间、已授予的范围)仅保存在文件中。请参阅下文关于 QONTOCTL_ACCESS_TOKEN 的说明。
不带 --profile 时:
| 变量 | 描述 |
|---|---|
QONTOCTL_ORGANIZATION_SLUG | 组织 slug |
QONTOCTL_SECRET_KEY | API 密钥 |
QONTOCTL_CLIENT_ID | OAuth 客户端 ID |
QONTOCTL_CLIENT_SECRET | OAuth 客户端密钥 |
QONTOCTL_ACCESS_TOKEN | OAuth 访问令牌(只读——见下文) |
QONTOCTL_ENDPOINT | 自定义 API 端点 |
QONTOCTL_STAGING_TOKEN | 预发布令牌(启用沙盒 URL) |
使用 --profile <name> 时,前缀变为 QONTOCTL_{NAME}_(转换为大写,并将连字符替换为下划线)。例如,--profile acme 会读取 QONTOCTL_ACME_ORGANIZATION_SLUG。
QONTOCTL_ACCESS_TOKEN的语义:设置后,环境变量提供的 bearer 令牌仅用于当前调用。不会尝试主动刷新令牌,也不会将刷新后的令牌持久化到磁盘(与AWS_SESSION_TOKEN的行为一致)。如果令牌已过期,API 会返回401;请在外部重新签发令牌。有意不支持
QONTOCTL_REFRESH_TOKEN。 刷新令牌属于运行时可变状态——每次刷新都会生成一个新值,工具必须将其写回某处——而环境变量承载的是输入,而非状态。对于需要刷新的 OAuth 流程,请使用基于文件的凭据(~/.qontoctl.yaml或配置档案);在 CI 中则可继续使用 API 密钥环境变量。
调试模式
--verbose 和 --debug 标志会将网络级日志输出到 stderr:
qontoctl --verbose transaction list # request/response summaries
qontoctl --debug transaction list # full headers and response bodies
安全说明:
--debug会记录完整的 API 响应正文。已知的敏感字段 (IBAN、BIC、余额)会自动脱敏,但响应中仍可能包含 其他财务数据。请勿在共享环境中使用--debug,也不要将调试 输出写入他人可访问的文件。
免责声明
qontoctl 是一个独立项目,与 Qonto 没有附属、背书或官方关联。它在你自己的计算机上使用你自己的凭据运行。
“Qonto”及 Qonto 徽标是 Olinda SAS(运营 Qonto 的公司)的商标;qontoctl 仅使用该名称来描述它所交互的服务。
许可证
AGPL 对你的意义
- 将 qontoctl 用作命令行工具或 MCP 服务,不会使你的代码受 AGPL 许可。 运行该工具、围绕它编写脚本,或将其连接到你的应用程序,均属正常 使用——不会产生许可义务。
- 将
@qontoctl/core用作库(在代码中导入它),意味着你的组合 作品受 AGPL-3.0 许可约束。如果你分发该组合作品,必须以兼容 AGPL 的条款 提供其源代码。 - 修改并分发 qontoctl 本身,要求你依据 AGPL-3.0 分享所做的更改。
- 可申请商业许可,如果 AGPL 不适合你的使用场景,请联系 维护者。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。