Skip to main content
Glama
knorq-ai

moneyforward-connector

by knorq-ai

mf_update_billing

Update an existing MoneyForward invoice's fields such as due date, billing number, and memo; pass items to replace all line items.

Instructions

請求書を更新します。items を指定すると明細を全置換します(既存明細を削除してから追加するため、途中で失敗すると明細が欠けた状態になり得ます)。取引先の変更は API 非対応です。

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
memoNoメモ
noteNo備考
itemsNo明細行(指定時は全置換。空配列は不可)
titleNo請求書タイトル
due_dateNo支払期限(YYYY-MM-DD)
tag_namesNoタグ
billing_idYes請求書ID
sales_dateNo売上日(YYYY-MM-DD)
billing_dateNo請求日(YYYY-MM-DD)
department_idNo取引先の部署ID
document_nameNo書類名
billing_numberNo請求書番号
payment_conditionNo支払条件

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses a critical destructive behavior: specifying items replaces all existing line items by deleting then adding, with a risk of incomplete state on failure. It also notes that changing the partner is unsupported. Other behavioral aspects like permissions or partial-update semantics are omitted, but the key side-effect is clearly surfaced.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core action, followed by a critical caveat and a limitation. Every sentence earns its place; no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter mutation tool with no annotations and no output schema, the description covers the main purpose and one critical side effect, but leaves significant gaps: it does not clarify whether omitted fields are left unchanged or cleared (partial vs full update), nor does it mention authentication or rate-limit considerations. Adequate as a minimum, but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds meaningful nuance beyond the schema for the items parameter by explaining the delete-then-add mechanism and its failure risk, which is not present in the schema's brief '全置換' note. It does not add semantics for the other 12 parameters, but the added detail for the most complex parameter justifies a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: '請求書を更新します' (updates an invoice). It clearly identifies the tool's purpose, though it does not explicitly differentiate from the similarly named sibling mf_update_payment_status or other update tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (updating an invoice) and provides some context with the items replacement caveat and the note that partner changes are unsupported. However, it offers no explicit guidance on when to choose this tool over alternatives like mf_update_payment_status or mf_create_billing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.