Koskamo

theluckystrike MCP Change Order

Manages change orders against quotes or work orders, tracking added, removed, and changed lines with quantities, unit prices, reasons, and dates. It maintains a status workflow from draft to approved or rejected, calculates the running contract value based on approved deltas, and generates invoice-ready items.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

theluckystrike MCP Change Order logo, by theluckystrikeCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-06Published by theluckystrike
MCP endpoint (Streamable HTTP)
https://mcp.zovo.one/mcp/change-order
Vendor documentation

What its tools do

11 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

Read-only (1)

11 of 11 have a description · 11 of 11 declare behavior hints · 8 of 10 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Add or remove line items to a draft change order with quantities and prices
  • Track approval status and calculate the running contract value
  • Generate a plain-text document for client approval
  • Create invoice-ready delta lines from approved changes

Source and maintenance

Community listingRegistry 0.23.0
Maintenance checked

Protocol and capabilities

Server
mcp-change-order 0.22.6
MCP protocol negotiated in check
2025-11-25
Tools
11 advertised
Resources
2 advertised
Resource templates
0 advertised
Prompts
2 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  },
  "prompts": {
    "listChanged": true
  },
  "resources": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Change orders against quotes and work orders. It covers change orders with added, removed or changed lines and reasons, the steps draft, sent, approved, rejected or void, the running contract value with approved and pending changes kept apart, client approval documents, and invoice or quote line items for approved changes with VAT at the shared business profile rate. Records are stored per user account on McpStamp's hosted service. The free tier allows 5 open change orders; approval documents and invoice items need Pro. One lifetime key unlocks this server and all 58 others: https://mcp.zovo.one/buy/bundle?src=instr.change-order

Tools

11 advertised

change_order_create — Raise a change order
Advertised by the server during the last successful anonymous check.

Raise a change order against a quote or work order and return its CO-YYYY-NNNN number: the reference, the client, a title, the date, and the original contract value in minor units. Free tier: 5 open.

change_order_create input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "reference",
    "client",
    "title"
  ],
  "properties": {
    "date": {
      "type": "string",
      "maxLength": 10,
      "description": "The day the change was raised, YYYY-MM-DD. Default today"
    },
    "note": {
      "type": "string",
      "maxLength": 2000
    },
    "title": {
      "type": "string",
      "maxLength": 2000,
      "description": "What the change is, in one line, e.g. Add a second landing page and drop hosting"
    },
    "client": {
      "type": "string",
      "maxLength": 200,
      "description": "The client the change is agreed with, as named on the quote or work order"
    },
    "currency": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$",
      "description": "ISO code the contract is priced in. Defaults to the shared business profile's currency"
    },
    "reference": {
      "type": "string",
      "maxLength": 64,
      "description": "The quote or work order this change order is against, by its id, e.g. Q-2026-0003 or WO-2026-0001"
    },
    "duplicate_ok": {
      "type": "boolean",
      "description": "Raise it even though an identical change order exists on this reference. Default false"
    },
    "reference_kind": {
      "enum": [
        "quote",
        "work_order"
      ],
      "type": "string",
      "description": "What the reference is. Inferred from the id when omitted: WO-... is a work order, anything else a quote"
    },
    "original_value_minor": {
      "type": "integer",
      "maximum": 1000000000000,
      "minimum": 0,
      "description": "The contract value BEFORE any change order, net of VAT, in whole minor units. Required on the first change order against a reference; inherited by every later one"
    }
  },
  "additionalProperties": false
}
change_order_create annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
change_order_add_line — Add a changed line
Advertised by the server during the last successful anonymous check.

Add one line to a draft change order: added or removed with a quantity and a unit price in minor units, or changed with the old and the new quantity and price, each with a reason and a date. Free.

change_order_add_line input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "change_order",
    "kind",
    "description",
    "quantity",
    "unit_price_minor",
    "reason"
  ],
  "properties": {
    "date": {
      "type": "string",
      "maxLength": 10,
      "description": "The day the change was asked for, YYYY-MM-DD. Default the change order's date"
    },
    "kind": {
      "enum": [
        "added",
        "removed",
        "changed"
      ],
      "type": "string",
      "description": "added for new work, removed for work taken out, changed for a line whose quantity or price moves"
    },
    "note": {
      "type": "string",
      "maxLength": 2000
    },
    "reason": {
      "type": "string",
      "maxLength": 2000,
      "description": "Why, in the client's words if you have them, e.g. Client asked for a second page after the kickoff"
    },
    "quantity": {
      "type": "number",
      "maximum": 1000000,
      "description": "added or removed: how many. changed: the NEW quantity",
      "exclusiveMinimum": 0
    },
    "tax_rate": {
      "type": "number",
      "maximum": 1000,
      "minimum": 0,
      "description": "VAT percent for this line, overriding the shared profile's default"
    },
    "description": {
      "type": "string",
      "maxLength": 2000,
      "description": "The line as it reads on the quote or work order, e.g. Website audit"
    },
    "change_order": {
      "type": "string",
      "maxLength": 200,
      "description": "The change order id, e.g. CO-2026-0001, or its title when only one carries it"
    },
    "was_quantity": {
      "type": "number",
      "maximum": 1000000,
      "description": "changed only: the quantity before the change",
      "exclusiveMinimum": 0
    },
    "unit_price_minor": {
      "type": "integer",
      "maximum": 1000000000000,
      "minimum": 0,
      "description": "added or removed: the unit price in whole minor units. changed: the NEW unit price. 45000 is EUR 450.00"
    },
    "was_unit_price_minor": {
      "type": "integer",
      "maximum": 1000000000000,
      "minimum": 0,
      "description": "changed only: the unit price before the change, in whole minor units"
    }
  },
  "additionalProperties": false
}
change_order_add_line annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
change_order_status — Move a change order along
Advertised by the server during the last successful anonymous check.

Move one change order along and stamp the date and note: draft to sent, sent to approved or rejected, either to void. Backwards steps, an unsent approval and a backdated move are all refused.

change_order_status input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "change_order",
    "status"
  ],
  "properties": {
    "date": {
      "type": "string",
      "maxLength": 10,
      "description": "The day it happened, YYYY-MM-DD. Default today"
    },
    "note": {
      "type": "string",
      "maxLength": 2000,
      "description": "What happened, e.g. Emailed to the client, or Approved by phone, confirmed in writing"
    },
    "status": {
      "enum": [
        "draft",
        "sent",
        "approved",
        "rejected",
        "void"
      ],
      "type": "string",
      "description": "The status to move to"
    },
    "change_order": {
      "type": "string",
      "maxLength": 200,
      "description": "The change order id, e.g. CO-2026-0001, or its title when only one carries it"
    }
  },
  "additionalProperties": false
}
change_order_status annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
change_order_get — Show one change order
Advertised by the server during the last successful anonymous check.

Return one change order in full by CO number or client: every added, removed and changed line with its reason and delta, VAT, delta gross, the status history and the running value. change_order_list finds the id.

change_order_get input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "change_order"
  ],
  "properties": {
    "change_order": {
      "type": "string",
      "maxLength": 200,
      "description": "The change order id, e.g. CO-2026-0001, or its title when only one carries it"
    }
  },
  "additionalProperties": false
}
change_order_get annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
change_order_list — List change orders
Advertised by the server during the last successful anonymous check.

List change orders newest first with status, reference, client, currency and net delta, and above them the APPROVED and the pending delta per currency, kept apart. Filter by reference, status, client, date.

change_order_list input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "to": {
      "type": "string",
      "maxLength": 10,
      "description": "Latest date, YYYY-MM-DD"
    },
    "from": {
      "type": "string",
      "maxLength": 10,
      "description": "Earliest date, YYYY-MM-DD"
    },
    "limit": {
      "type": "integer",
      "maximum": 500,
      "minimum": 1,
      "description": "Maximum rows returned, default and ceiling 500"
    },
    "client": {
      "type": "string",
      "maxLength": 200,
      "description": "Only change orders whose client name contains this text"
    },
    "status": {
      "enum": [
        "draft",
        "sent",
        "approved",
        "rejected",
        "void",
        "open"
      ],
      "type": "string",
      "description": "One status, or open for draft and sent together"
    },
    "reference": {
      "type": "string",
      "maxLength": 64,
      "description": "Only change orders against this quote or work order"
    }
  },
  "additionalProperties": false
}
change_order_list annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
change_order_delete — Delete an empty draft
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete a DRAFT change order with no lines, freeing an open slot. One sent, approved, rejected or voided is refused, and so is one carrying lines: void it with change_order_status instead. The number is not reissued.

change_order_delete input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "change_order"
  ],
  "properties": {
    "change_order": {
      "type": "string",
      "maxLength": 200,
      "description": "The change order id, e.g. CO-2026-0001, or its title when only one carries it"
    }
  },
  "additionalProperties": false
}
change_order_delete annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
contract_value — Running contract value
Advertised by the server during the last successful anonymous check.

The running value of one quote or work order: original, approved deltas and current value, with pending draft and sent deltas kept apart. Net of VAT. A reference with no change order is refused.

contract_value input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "reference"
  ],
  "properties": {
    "reference": {
      "type": "string",
      "maxLength": 64,
      "description": "The quote or work order this change order is against, by its id, e.g. Q-2026-0003 or WO-2026-0001"
    }
  },
  "additionalProperties": false
}
contract_value annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
change_order_document — Change order document
Advertised by the server during the last successful anonymous check.

Render one change order as a plain-text document for the client to approve: every line with its reason, the delta net and gross, the contract value before and after, and an approval block. The same text also comes back as a .txt download link valid for one hour. Pro.

change_order_document input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "change_order"
  ],
  "properties": {
    "change_order": {
      "type": "string",
      "maxLength": 200,
      "description": "The change order id, e.g. CO-2026-0001, or its title when only one carries it"
    }
  },
  "additionalProperties": false
}
change_order_document annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
change_order_invoice_payload — Invoice payload for an approved delta
Advertised by the server during the last successful anonymous check.

Build the approved delta as invoice_create-ready items in MAJOR units and quote_create-ready items in MINOR units, with VAT at the shared profile rate. Writes nothing and creates nothing. Pro.

change_order_invoice_payload input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "change_order"
  ],
  "properties": {
    "tax_rate": {
      "type": "number",
      "maximum": 1000,
      "minimum": 0,
      "description": "VAT percent for lines with no rate of their own, overriding the shared business profile's default"
    },
    "issue_date": {
      "type": "string",
      "maxLength": 10,
      "description": "The invoice issue date, YYYY-MM-DD. Default today"
    },
    "change_order": {
      "type": "string",
      "maxLength": 200,
      "description": "The change order id, e.g. CO-2026-0001, or its title when only one carries it"
    }
  },
  "additionalProperties": false
}
change_order_invoice_payload annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
license_status — License status
Advertised by the server during the last successful anonymous check.
Advertised read-only

Report this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.

license_status input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
license_status annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
license_activate — Activate license
Advertised by the server during the last successful anonymous check.

Turn Pro on for this connection with key, an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.

license_activate input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "key"
  ],
  "properties": {
    "key": {
      "type": "string",
      "description": "License key from checkout, MCPL1.<payload>.<signature>"
    }
  },
  "additionalProperties": false
}
license_activate annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}

Prompts

2 advertised

upgrade_to_pro — Explain the upgrade

Advertised by the server during the last successful anonymous check.

Explain what Pro on the change-order server costs and exactly what the user has to do, without leaving the conversation.

feature
The capped feature that prompted this, if there was one
agree_the_change — Raise a change order and get it approved

Advertised by the server during the last successful anonymous check.

Record what changed against a quote or work order, send it, record the client's answer, and build the invoice payload for the approved delta.

reference
The quote or work order id, e.g. Q-2026-0003 or WO-2026-0001 (required)

Resources

2 advertised

pricing — Pricing and upgrade

Advertised by the server during the last successful anonymous check.

What change-order costs, what Pro unlocks, the checkout link that carries this connection's token, and the one step a person has to take. Machine-readable; read it before telling a user how to lift a free-tier cap.

pricing URI
pricing://change-order

MIME type: application/json

contract — The status machine, the two scales, the free tier and where this server writes

Advertised by the server during the last successful anonymous check.

The five statuses and the legal moves, how the running value is built, the two payload scales, the free-tier limits and the one document this server writes.

contract URI
changeorder://contract

MIME type: application/json

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (2 of 2 answered).

  1. 2026-11-07: 1 of 1 checks answered
  2. 2026-11-09: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1239 ms
95th percentile latency
1239 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1239 ms · metadata changed · 11 tool(s), 2 resource(s), 0 resource template(s), 2 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http mcp-change-order https://mcp.zovo.one/mcp/change-order

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add mcp-change-order --url https://mcp.zovo.one/mcp/change-order

Cursor

Merge this server into .cursor/mcp.json in your project, then enable mcp-change-order in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "mcp-change-order": {
      "url": "https://mcp.zovo.one/mcp/change-order"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "mcp-change-order": {
      "type": "streamableHttp",
      "url": "https://mcp.zovo.one/mcp/change-order",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start mcp-change-order and inspect its tools.
VS Code configuration
{
  "servers": {
    "mcp-change-order": {
      "type": "http",
      "url": "https://mcp.zovo.one/mcp/change-order"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http mcp-change-order https://mcp.zovo.one/mcp/change-order

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://mcp.zovo.one/mcp/change-order

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "mcp-change-order": {
      "serverUrl": "https://mcp.zovo.one/mcp/change-order"
    }
  }
}

Let your agent find its tools

Find servers like theluckystrike MCP Change Order from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.