theluckystrike

mcp-change-order

Community theluckystrike
Updated

42 local-first MCP servers for back-office work: invoices, VAT, PDFs, spreadsheets, time tracking, expenses. Free tier, one-time Pro (no subscription, no account). Hosted, no-install endpoints: https://mcp.zovo.one

mcp-change-order

Change orders against a quote or a work order, kept the way a variation is kept on site:what was added, what was taken out and what changed, each with a reason and a date, sent tothe client, and answered. The running contract value is the original plus the deltas theclient has APPROVED; what they have not answered yet is shown as pending and never added in.Once a change order is approved, the delta comes back as invoice_create-ready items inMAJOR units and quote_create-ready items in MINOR units, in one call, with the scaleprinted against each.

No delta is stored. A change order holds its lines and its status history; the delta, therunning value and the VAT are derived on every call, with the invoice server's ownarithmetic. Nothing is invented: the first change order against a reference states theoriginal contract value once, every later one inherits it, and a different figure isrefused by name.

Install

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or%APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "change-order": {
      "command": "npx",
      "args": ["-y", "@theluckystrike/mcp-change-order"]
    }
  }
}

Claude Code

claude mcp add change-order -- npx -y @theluckystrike/mcp-change-order

Cursor

~/.cursor/mcp.json (global) or .cursor/mcp.json (project), same entry as Claude Desktop.

Tools

Tool What it does
change_order_create Raise a change order against a quote or work order: reference, client, title, date, and the original contract value on the first one
change_order_add_line Add an added, removed or changed line to a draft, with its quantity, unit price in minor units, reason and date
change_order_status Move it along: draft to sent, sent to approved or rejected, draft or sent to void, each step dated
change_order_get One change order in full: every line with its delta, the VAT, the history and the running value of the reference
change_order_list Change orders by reference, status, client and date range, with approved and pending deltas per currency
change_order_delete Delete an empty draft raised by mistake. Free on every tier
contract_value The running value of one reference: original, approved delta, current value, pending delta held apart
change_order_document The change order as a plain-text document for the client to approve
change_order_invoice_payload The approved delta as invoice_create items (MAJOR units) and quote_create items (MINOR units)
license_status / license_activate Free or Pro, and where to upgrade

Free vs Pro

Free Pro
Open change orders (draft and sent) 5 unlimited
Lines per change order 200 200
Raise, line, move, get, list, delete yes yes
Running contract value yes yes
Change order document no yes
Invoice-ready delta payload, both scales no yes

The cap counts OPEN change orders, the ones the client has not answered, not the ones youhave ever raised. Approving, rejecting or voiding one frees its slot, and so doeschange_order_delete on a draft with no lines; all of those are free on every tier, becausea way back that only a Pro key can reach is not a way back.

Get Pro: https://mcp.zovo.one/buy/change-order (one-time $19, lifetime), or all servers for$39: https://mcp.zovo.one/buy/bundle

The status machine

draft to sent; sent to approved or rejected; draft or sent to void.Approved, rejected and void are final. A draft cannot be approved directly: approval is theclient's answer to something they were sent. Lines are added only while a change order is adraft; a sent one that needs another line is voided and raised again, so the client'sapproval always refers to what they were sent. Every step carries its own date, and a stepdated before the last one is refused.

Where the money comes from

This server keeps no arithmetic of its own. computeTotals, currencyDecimals,formatMoney and roundHalfUp are imported from @theluckystrike/mcp-invoice/lib, thecorrupt-store quarantine from @theluckystrike/mcp-timezone/lib, the timezone-aware"today" from @theluckystrike/mcp-quotes/lib. The VAT rate, the currency and the businessname come from the shared business profile that business_set in the invoice server writes.Nothing is written outside this server's own directory, and no sibling store is opened.

The measured insight

A changed line is two items, not one, because one net item shows the customer nothingthey can check. A line that goes from 3 x EUR 450.00 to 5 x EUR 420.00 is worth +EUR750.00, and the tempting payload is one item of quantity 1 at EUR 750.00. The customercannot reproduce that figure from anything on the change order they signed. The payloadthis server emits is a reversal, -3 x EUR 450.00, and the revised line, 5 x EUR 420.00;each reproduces on a calculator, and computeTotals over both is the same +EUR 750.00,because the invoice server's roundHalfUp is symmetric in sign. The same rule carries aremoval as a negative quantity at the unit price it was booked at, which invoice_createaccepts. The unit suite re-runs the invoice server's own computeTotals over the payloadas returned and asserts the four item values and the three totals, then feeds thequote_create items into the same engine as though their MINOR figure were MAJOR andasserts the net is exactly 100x, so the day someone "simplifies" the payload to one netitem, or moves a field between the two scales, the build says so instead of the customer.

Privacy

All data stays on your machine, in ${XDG_DATA_HOME:-~/.local/share}/mcp-servers/change-order/.Nothing is sent anywhere. There is no account and no API key. License keys are verifiedoffline. This server reads one file it does not own, the shared business profile, andwrites into no store but its own.

Built by theluckystrike. https://github.com/theluckystrike

MCP Server ยท Populars

MCP Server ยท New

    n24q02m

    email

    IMAP/SMTP email for AI agents -- read, send, organize folders, and manage attachments across multiple accounts, with auto-discovery.

    Community n24q02m
    reticlehq

    reticle

    AI agents can generate code, but still struggle to understand what they build. Reticle brings Jev-style machine-native runtime perception to web & desktop applications.

    Community reticlehq
    tubeagentkit

    YouTube MCP Server: Transcripts, Search, Channels & Playlists

    YouTube MCP server: get YouTube video transcripts, search YouTube, browse channels and playlists from Claude, ChatGPT, Cursor and VS Code. Remote, free tier.

    Community tubeagentkit
    lrvx

    lrvx

    Framework for building trading systems

    Community lrvx
    koda-ai-studio

    agent-bom

    Open security scanner and self-hosted control plane for AI, MCP, and cloud. One evidence model โ€” run scans in your environment, centralize findings, govern in your VPC.

    Community koda-ai-studio