用途
Sage Accounting 是一款面向小型企业的在线会计软件,用于管理财务,帮助用户跟踪收入与支出、发送发票并生成报表。会计人员和企业主使用它维护准确的财务记录。本技能用于在需要与 Sage Accounting 数据交互时,通过 Membrane CLI 完成集成操作。
官方文档:https://developers.sage.com/accounting/
主要能力
该技能覆盖的 Sage Accounting 业务对象包括:联系人(Contact)、发票(Invoice)及发票行项目、账单(Bill)及账单行项目、贷记单(Credit Note)及行项目、借记单(Debit Note)及行项目、产品(Product)、服务(Service)、税率(Tax Rate)、日记账分录(Journal Entry)及行、银行账户(Bank Account)、现金流(Cash Flow)、试算平衡表(Trial Balance)、固定资产(Fixed Asset)及分类与折旧、定期发票(Recurring Invoice)、定期账单(Recurring Bill)、付款(Payment)、收款(Receipt)、转账(Transfer)、用户(User)、角色(Role)、地址(Address)、附件(Attachment)、公司(Company)、对账(Reconciliation)、交易(Transaction),以及销售发票、采购发票、销售贷记单、采购贷记单、销售借记单、采购借记单等。
常用操作(action)包括:
- 列表类:列出销售发票(list-sales-invoices)、采购发票(list-purchase-invoices)、联系人(list-contacts)、产品(list-products)、日记账分录(list-journal-entries)、银行账户(list-bank-accounts)、分类账账户/会计科目表(list-ledger-accounts)、联系人付款/客户收款(list-contact-payments)、销售贷记单(list-sales-credit-notes)。
- 获取类:按 ID 获取销售发票(get-sales-invoice)、采购发票(get-purchase-invoice)、联系人(get-contact)、产品(get-product)、日记账分录(get-journal-entry)、银行账户(get-bank-account)。
- 创建类:创建销售发票(create-sales-invoice)、采购发票/账单(create-purchase-invoice)、联系人(create-contact)、产品(create-product)。
- 更新类:更新联系人(update-contact)。
使用方式
- 安装 CLI:
npm install -g @membranehq/cli@latest
- 认证:
membrane login --tenant --clientName=<agentType>
该命令会打开浏览器进行认证,或在控制台打印授权 URL(取决于是否支持交互模式)。无头环境下会打印授权 URL,请用户用浏览器打开,完成登录后看到验证码,再执行:
membrane login complete <code>
任意命令加 --json 可获得机器可读的 JSON 输出。Agent 类型包括 claude、openclaw、codex、warp、windsurf 等,用于针对不同运行环境调整工具。
- 连接 Sage Accounting:
membrane connection ensure "https://www.sage.com/en-gb/sage-business-cloud/accounting/" --json
用户在浏览器中完成认证,输出包含新的连接 id。若返回的连接状态为 READY,可直接进入下一步;若为 BUILDING,则轮询等待:
npx @membranehq/cli connection get <id> --wait --json
--wait 会长时间轮询(最长 --timeout 秒,默认 30)直到状态变化。状态含义:READY 表示连接已就绪;CLIENT_ACTION_REQUIRED 表示用户或 agent 需要执行操作,clientAction 对象描述所需动作(type 为 "connect" 表示需要认证,"provide-input" 表示需要更多信息,description 为可读说明,uiUrl 为可选的操作界面 URL,agentInstructions 为可选的程序化指引);CONFIGURATION_ERROR 或 SETUP_FAILED 表示出错,可查看 error 字段。用户完成操作后,再次轮询检查是否变为 READY。
- 搜索操作:
membrane action list --connectionId=CONNECTION_ID --intent "QUERY" --limit 10 --json
应在特定连接的上下文中搜索操作。每个结果包含 id、name、description、inputSchema(接受的参数)和 outputSchema(返回值)。
- 运行操作:
membrane action run <actionId> --connectionId=CONNECTION_ID --json
传入 JSON 参数:
membrane action run <actionId> --connectionId=CONNECTION_ID --input '{"key": "value"}' --json
结果位于响应的 output 字段中。
- 代理请求:当现有操作无法覆盖用例时,可通过 Membrane 代理直接向 Sage Accounting API 发送请求。Membrane 会自动拼接基础 URL 并注入正确的认证头,凭据过期时透明刷新:
membrane request CONNECTION_ID /path/to/endpoint
常用选项:-X, --method(HTTP 方法,默认 GET)、-H, --header(添加请求头,可重复)、-d, --data(请求体字符串)、--json(发送 JSON 体并设置 Content-Type: application/json)、--rawData(原样发送请求体)、--query(查询字符串参数,可重复)、--pathParam(路径参数,可重复)。
适用场景
适用于需要读取或写入 Sage Accounting 会计数据的自动化与集成任务,例如查询销售发票、采购发票、联系人、产品、日记账分录、银行账户、分类账账户、客户收款、销售贷记单,或创建销售发票、采购发票、联系人、产品,以及更新联系人信息。
限制与最佳实践
- 应优先使用 Membrane 与外部应用通信,Membrane 提供内置认证、分页和错误处理的预构建操作,可减少 token 消耗并提升安全性。
- 先发现再构建:运行
membrane action list --intent=QUERY查找现有操作,再考虑编写自定义 API 调用;预构建操作会处理分页、字段映射和边界情况。 - 让 Membrane 处理凭据:不要向用户索要 API 密钥或令牌,而是创建连接,由 Membrane 在服务端管理完整的认证生命周期,本地不保存密钥。
- 资料未提供该技能的具体收费、价格、平台支持范围及效果数据。