Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "create_billing_entity" and "update_billing_entity"
⟨105 unchanged words⟩ {"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.?:[A-Za-z0-9_'+\\-]+\\.)(*[A-Za-z0-9_'+\\-\\.A-Za-z0-9_'+\\-]*)[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,} ⟨101 unchanged words⟩
⟨108 unchanged words⟩ {"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.?:[A-Za-z0-9_'+\\-]+\\.)(*[A-Za-z0-9_'+\\-\\.A-Za-z0-9_'+\\-]*)[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,} ⟨101 unchanged words⟩
Certificate recorded, valid to 2027-01-30
Authorization not required, issuer https://mcp.workloadzero.de
Added "create_billing_entity" and "update_billing_entity"; changed the definition of "create_invoice", "create_quote", "update_invoice" and 1 more (149 tools before, 151 now)
⟨9 unchanged words⟩ draft: finalizing and sending happen in theapp.app, and finalizing needs a real sender address with a tax number or VAT ID (billingEntityId from list_billing_entities, or create_billing_entity with data the user gives you, never invented). Example: invoiceDate "2026-11-04", billingClientId from list_billing_clients ⟨14 unchanged words⟩
⟨10 unchanged words⟩ ,"billingEntityId":{"description":"Sender, fromlist_billing_entities;list_billing_entities.defaultLeftentity
Unknown → Live
First tool surface recorded: 149 tools (server version 2.1.0)
https://mcp.workloadzero.de/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 7 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
Create a quote as a DRAFT. Needs a real sender: billingEntityId from list_billing_entities, or create_billing_entity first with data the user gives you, never invented. Example: date "2026-11-04", billingClientId from list_billing_clients, ⟨43 unchanged words⟩
⟨10 unchanged words⟩ ,"billingEntityId":{"description":"Sender, fromlist_billing_entitieslist_billing_entities. Left out, the company settings are the sender, not the default entity","type":"string"},"closing":{ ⟨113 unchanged words⟩
⟨6 unchanged words⟩ the fields to change; lineItems replaces the wholelist.list; billingEntityId changes the sender and may renumber the draft. Finalized invoices cannot be changed.
⟨10 unchanged words⟩ ,"billingEntityId":{"description":"Sender, fromlist_billing_entities;list_billing_entities.defaultLeftentityout,whentheleftcompanyoutsettings are the sender, not the default entity","type":"string"},"currency":{ ⟨83 unchanged words⟩
⟨6 unchanged words⟩ the fields to change; positions replaces the wholelist.list; billingEntityId changes the sender.
⟨10 unchanged words⟩ ,"billingEntityId":{"description":"Sender, fromlist_billing_entitieslist_billing_entities. Left out, the company settings are the sender, not the default entity","type":"string"},"closing":{ ⟨105 unchanged words⟩
Create billing entity — Create a sender for quotes and invoices. This data is printed on legal documents such as quotes and invoices, so use only what the user gives you and never invent or guess a value. An invoice cannot be finalized without the company name, full address, and a tax number or VAT ID; bank details belong on it if the customer pays by transfer. The result names what is still missing.
Update billing entity — Update a sender from list_billing_entities. Give only the fields to change. This data is printed on legal documents such as quotes and invoices, so use only what the user gives you and never invent or guess a value. An invoice cannot be finalized without the company name, full address, and a tax number or VAT ID; bank details belong on it if the customer pays by transfer.