Skip to main content
Glama

Server Details

Freelance invoice line items, rates, due dates, and late terms for AI assistants

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over the last 24 hours
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
LAHutchins91/invoice-mcp
GitHub Stars
0
Server Listing
Invoice by Ouroboros Apps
ChatGPT
–
Claude
–

TDQS

A3.9/5.0

Scored across 13 tools

Disambiguation4/5

Tools are largely distinct, with clear separation between draft-editing tools and the suggest/accept change mechanism. The main overlap is that suggest_invoice_change can mirror direct mutations (add_line, change_rate, etc.), but descriptions clarify the draft vs sealed workflow.

Naming Consistency4/5

All tool names are snake_case and verb-first, following a predictable verb_noun pattern. However, some names are three-part (accept_invoice_change, quote_line_rate) and the verbs vary widely, so it's not perfectly uniform.

Tool Count5/5

13 tools are well-suited for an invoice system with draft, line items, discounts, late terms, and an approval workflow. Each tool covers a distinct operation, and the count is within the ideal range.

Completeness4/5

The tool set covers the core invoice lifecycle from draft creation through sealing and post-approval suggestions. Notable gaps include no way to delete a line or change a line's unit after creation, which could force workarounds.

Available Tools

13 tools
accept_invoice_changeaccept invoice changeA
DestructiveIdempotent
Inspect

Apply one suggested invoice change after the freelancer explicitly approves that change. Pass confirmed true only then. This is the path that may add a line, change a rate, apply a discount, or move the due date. Calling it is not a substitute for the freelancer's approval.

Inputs: changeId (required), confirmed (required), invoiceId (required). Returns: data

begin_invoicebegin invoiceAInspect

Start a draft invoice. Draft figures are not an approved commitment until seal_invoice. Currency is a three-letter code. Amounts later are minor units of that currency and are the freelancer's figures.

Inputs: title (required), number (required), currency (required), clientName (required). Returns: data

describe_linedescribe lineA
Destructive
Inspect

Correct a line description while the invoice is still a draft. After approval, a different description is refused. Use suggest_invoice_change with add_line for a different line.

Inputs: lineId (required), invoiceId (required), description (required). Returns: data

list_invoiceslist invoicesA
Read-onlyIdempotent
Inspect

List the signed-in freelancer's invoices. Use a returned id with read_invoice. Do not guess an invoice.

Inputs: offset. Returns: data

offer_discountoffer discountA
Destructive
Inspect

Record a discount the freelancer is putting on the invoice. kind none uses value 0. kind percent takes a whole number from 1 to 100. kind fixed takes a whole number of minor units. After the invoice is sealed, a different discount is refused until accept_invoice_change applies an apply_discount suggestion. Do not invent a discount.

Inputs: kind (required), note (required), value (required), invoiceId (required). Returns: data

place_lineplace lineA
Destructive
Inspect

Add one line: description, quantity, rate in whole minor units, and unit hour, each, or day. After the invoice is sealed, a new line is refused until accept_invoice_change applies an add_line suggestion.

Inputs: unit (required), quantity (required), invoiceId (required), rateMinor (required), +1 more. Returns: data

quote_line_ratequote line rateA
Destructive
Inspect

Set the rate already chosen for one line, as a whole number of minor units in the invoice currency. After the invoice is sealed, a different rate is refused until accept_invoice_change applies a change_rate suggestion.

Inputs: lineId (required), invoiceId (required), rateMinor (required). Returns: data

read_invoiceread invoiceA
Read-onlyIdempotent
Inspect

Read the invoice before answering. Quote only this record. Draft status is not an approved commitment. Proposed changes do not authorize a new line, a different rate, a discount, or a new due date.

Inputs: invoiceId (required). Returns: data

seal_invoiceseal invoiceA
DestructiveIdempotent
Inspect

Mark the current draft as the approved invoice. Pass confirmed true only after the freelancer explicitly approves the lines, quantities, rates, due date, late terms, and any discount already on the draft.

Inputs: confirmed (required), invoiceId (required). Returns: data

set_invoice_dueset invoice dueA
Destructive
Inspect

Set the due date as a calendar day in YYYY-MM-DD form. After the invoice is sealed, a different date is refused until accept_invoice_change applies a move_due_date suggestion.

Inputs: dueOn (required), invoiceId (required). Returns: data

set_line_quantityset line quantityA
Destructive
Inspect

Set the quantity on one line. After the invoice is sealed, a different quantity is refused until accept_invoice_change applies an adjust_quantity suggestion.

Inputs: lineId (required), quantity (required), invoiceId (required). Returns: data

suggest_invoice_changesuggest invoice changeAInspect

Record a suggested change. This does not change the invoice. kind add_line requires description, quantity, rateMinor, and unit. kind change_rate requires lineId and rateMinor. kind apply_discount requires discountKind, discountValue, and discountNote. kind move_due_date requires dueOn. kind adjust_quantity requires lineId and quantity. kind revise_late_terms requires graceDays, lateBasis, feeMinor, latePercent, and lateNote.

Inputs: kind (required), summary (required), invoiceId (required), unit, +13 more. Returns: data

write_late_termswrite late termsA
Destructive
Inspect

Record late terms: grace days, and a basis of none, flat_fee, or percent_per_period. flat_fee uses feeMinor and a percent of 0. percent_per_period uses percent and a fee of 0. After approval, a different basis, grace, fee, or percent is refused until an accepted revise_late_terms suggestion.

Inputs: note (required), basis (required), percent (required), feeMinor (required), +2 more. Returns: data

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI assistants to serve as the only interface for consultant and small-agency billing, recording clients, billable work, expenses and payments, and drafting and issuing invoices. It enforces billing rules server-side, numbering invoices, calculating totals, requiring exact-total approval before issue, and never rewriting an issued invoice.
      12 npm
      1
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables merchants to preview, create, list, and track invoices with line items, VAT, payment links, due dates, and PDFs using an assistant secret key, while ensuring payments go to the merchant's wallet and never spend funds.
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Create free, no-signup invoices from your AI assistant — the create_invoice tool returns a link that opens blankinvoicemaker.com pre-filled, ready to download as a watermark-free PDF.
      2
      69 npm
      1
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Deposit by Ouroboros Apps (https://ouroborosapps.com). Freelance deposit and payment schedule: approved deposits, payment dates, and client wording; deposit waivers and date changes need approval. Connect by pasting https://deposit-continuity2.vercel.app/mcp into Claude, Cursor, Grok, or ChatGPT developer mode (OAuth). Docs: https://ouroborosapps.com/docs/deposit
      5 npm
      MIT
    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.