Skip to main content
Glama

Contractor Foreman by Cotlet

Create bill

create_bill
Destructive

Records a vendor bill with its line items, optionally against a project.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemsYesLine items. The total is the sum of quantity times unit cost.
notesNo
numberYesThe vendor's invoice number.
subjectNo
due_dateNoYYYY-MM-DD.
bill_dateNoYYYY-MM-DD. Default: today.
vendor_idYesA vendor's contact_id (list_contacts type vendor).
project_idNoThe project the cost belongs to.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare this is a non-idempotent, destructive write with open-world effects. The description adds nothing beyond that: no mention of permission requirements, whether the invoice number must be unique per vendor, whether posting affects accounting/GL, or whether duplicate submissions create duplicate bills.

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

Conciseness4/5

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

A single tight sentence with the resource and key qualifier front-loaded; nothing is wasted. It is arguably under-specified rather than verbose, but structurally clean.

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

Completeness2/5

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

This is a destructive 8-parameter mutation with no output schema, yet the description says nothing about what is returned (e.g., the new bill ID), how totals are derived, or what preconditions must hold. For a create tool of this complexity it leaves significant gaps.

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 75%, so most parameters (vendor_id, number, bill_date, due_date, unit_cost, items) are already documented in the schema. The description only restates 'line items' and 'optionally against a project', adding no new semantics for nested item fields or the vendor_id lookup path beyond what the schema says.

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?

States a specific verb and resource ('Records a vendor bill with its line items') and notes the optional project association. It does not distinguish this from sibling creation tools like create_invoice, create_purchase_order, or create_expense, which occupy adjacent accounting concepts.

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

Usage Guidelines2/5

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

No guidance on when to use this versus create_invoice, create_purchase_order, or create_expense, which are the closest siblings. The only conditional ('optionally against a project') describes a field, not a usage condition.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.