Skip to main content
Glama
AccountantInc

KikoBooks MCP Server

generate_invoice_from_job

Create a draft AR invoice from a job's approved timesheets and billable expenses without posting to the general ledger.

Instructions

Generate a DRAFT AR invoice from a job's approved timesheets and billable expenses — the Job → invoice bridge. Creates a draft invoice (does not post to GL). Requires the Workflow module and the write scope. Confirm the job and date with the user before calling, then verify the created invoice with get_invoice.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
job_idYesThe job ID to invoice
due_dateNoDue date (YYYY-MM-DD)
customer_idNoOverride customer ID for the invoice
invoice_dateYesInvoice date (YYYY-MM-DD) — required
gl_ar_account_idNoAR GL account ID for the invoice header
include_expensesNoInclude billable expenses (default: true)
include_timesheetsNoInclude approved timesheet lines (default: true)
revenue_gl_account_idNoDefault revenue GL account ID for lines

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.9

TDQS

A4.2/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 behavioral burden and does well: it discloses that the result is a DRAFT, that nothing is posted to GL, that Workflow module and write scope are required, where the line data comes from, and that the result should be checked with get_invoice. It lacks failure/error or idempotency behavior, but the state-change and authorization profile is unusually well covered.

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?

A single tight paragraph that front-loads the core action and scope, then layers prerequisites and a follow-up step in short clauses. Every sentence carries distinct information (draft status, no GL post, module/scope, confirmation, verification); nothing is padding.

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

Completeness4/5

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

For an 8-parameter mutation tool with no output schema and no annotations, this description covers the essential gaps: what is created (draft), what is not done (no GL post), prerequisites (Workflow module, write scope), and how to verify (get_invoice). It does not describe error cases or what the returned draft contains, but the get_invoice pointer largely compensates for the missing output schema.

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

Parameters3/5

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

Schema description coverage is 100%, so all 8 parameters are already documented (job_id, invoice_date required; due_date, customer_id, GL account overrides, include_expenses/include_timesheets, etc.). The description's mention of 'approved timesheets and billable expenses' only echoes what include_timesheets/include_expenses already say, so it adds no new parameter meaning beyond the schema baseline.

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

Purpose5/5

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

States a specific verb and resource ('Generate a DRAFT AR invoice from a job's approved timesheets and billable expenses') and explicitly frames itself as 'the Job → invoice bridge.' This cleanly distinguishes it from create_invoice (manual creation) and generate_invoice_from_proposal (proposal-based), so an agent can route correctly without opening sibling schemas.

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

Usage Guidelines4/5

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

Gives clear operational guidance: require the Workflow module and write scope, confirm job and date with the user before calling, then verify with get_invoice. It implies the from-job context but never explicitly contrasts with create_invoice or generate_invoice_from_proposal, so the when-not/alternative guidance is incomplete.

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

Deploy Server

Other Tools