Builds fixed-price service packages from costs and capacity, with margin and capacity math.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Turn the work a service business does into three fixed-price packages (smallest, middle, largest). Takes the cost base (fixed costs, owner pay, staff, delivery capacity) and the deliverables the business offers, each marked core (every client needs it), common (most clients want it) or premium (some clients want it), with its typical effort and direct cost. Returns each tier with what it includes and leaves out, its cost, break-even price, target price, a recommended price rounded up to a clean number, margin and profit per sale, how far the work can overrun before the margin hits zero, and a capacity check: hours needed, break-even clients a month, and the month profit after owner pay. All results are deterministic arithmetic with the method explained. Adjustments to what was built are treated as included, so effort carries a variance buffer.
The business cost base.
What the packages sell, for example "Brand identity" or "Bathroom remodel design".
Expected share of clients choosing each tier, smallest first, adding to 100. Default 30, 50, 20.
Names for the three tiers, smallest first. Default Essential, Standard, Complete.
What the result is worth to a typical client, for a value check on each price.
Clients expected per month. When given, the capacity check shows hours needed and the month profit.
Profit as a share of price, after owner pay and every cost. Default 30.
Extra effort added to each tier because a fixed price absorbs jobs that run long. Default 15.
Turn the work a service business does into three fixed-price packages (smallest, middle, largest). Takes the cost base (fixed costs, owner pay, staff, delivery capacity) and the deliverables the business offers, each marked core (every client needs it), common (most clients want it) or premium (some clients want it), with its typical effort and direct cost. Returns each tier with what it includes and leaves out, its cost, break-even price, target price, a recommended price rounded up to a clean number, margin and profit per sale, how far the work can overrun before the margin hits zero, and a capacity check: hours needed, break-even clients a month, and the month profit after owner pay. All results are deterministic arithmetic with the method explained. Adjustments to what was built are treated as included, so effort carries a variance buffer.
| Argument | Type | Description |
|---|---|---|
| items* | array | |
| mix_pct | array | Expected share of clients choosing each tier, smallest first, adding to 100. Default 30, 50, 20. |
| business* | object | The business cost base. |
| offer_name* | string | What the packages sell, for example "Brand identity" or "Bathroom remodel design". |
| tier_names | array | Names for the three tiers, smallest first. Default Essential, Standard, Complete. |
| outcome_value | number | What the result is worth to a typical client, for a value check on each price. |
| clients_per_month | number | Clients expected per month. When given, the capacity check shows hours needed and the month profit. |
| target_margin_pct | number | Profit as a share of price, after owner pay and every cost. Default 30. |
| variance_buffer_pct | number | Extra effort added to each tier because a fixed price absorbs jobs that run long. Default 15. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"business",
"offer_name",
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"effort_hours",
"level"
],
"properties": {
"name": {
"type": "string",
"maxLength": 160,
"minLength": 1,
"description": "A deliverable, for example \"Logo suite in three formats\" or \"Site visit and measurements\"."
},
"level": {
"enum": [
"core",
"common",
"premium"
],
"type": "string",
"description": "core: every client needs it (in all three tiers). common: most clients want it (middle and largest tiers). premium: some clients want it (largest tier only)."
},
"direct_cost": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Cost paid out for this deliverable: materials, licenses, printing, subcontracted parts. Default 0."
},
"effort_hours": {
"type": "number",
"maximum": 10000,
"description": "Typical delivery effort for this deliverable, used for cost and capacity only.",
"exclusiveMinimum": 0
}
}
},
"maxItems": 40,
"minItems": 3
},
"mix_pct": {
"type": "array",
"items": {
"type": "number",
"maximum": 100,
"minimum": 0
},
"maxItems": 3,
"minItems": 3,
"description": "Expected share of clients choosing each tier, smallest first, adding to 100. Default 30, 50, 20."
},
"business": {
"type": "object",
"required": [
"monthly_fixed_costs",
"monthly_owner_pay",
"delivery_hours_per_month"
],
"properties": {
"currency": {
"type": "string",
"maxLength": 3,
"minLength": 3,
"description": "Three-letter currency code. Default USD."
},
"monthly_owner_pay": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "What the owner needs to take home each month. It is treated as a cost, so profit is what is left after the owner is paid."
},
"monthly_staff_cost": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Salaried team cost per month, including payroll taxes. Default 0."
},
"monthly_fixed_costs": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Overhead every month regardless of work: rent, software, insurance, vehicles, accounting."
},
"variable_cost_per_hour": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Cost that rises with each delivery hour, such as subcontractor or crew wages. Default 0."
},
"planned_utilization_pct": {
"type": "number",
"maximum": 100,
"minimum": 10,
"description": "Share of delivery hours expected to be filled in a normal month. Default 80."
},
"delivery_hours_per_month": {
"type": "number",
"maximum": 20000,
"description": "Hours the whole team can put into client work in a month, not counting sales and admin. Used to measure capacity and cost, never shown to clients.",
"exclusiveMinimum": 0
}
},
"description": "The business cost base."
},
"offer_name": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "What the packages sell, for example \"Brand identity\" or \"Bathroom remodel design\"."
},
"tier_names": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40,
"minLength": 1
},
"maxItems": 3,
"minItems": 3,
"description": "Names for the three tiers, smallest first. Default Essential, Standard, Complete."
},
"outcome_value": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "What the result is worth to a typical client, for a value check on each price."
},
"clients_per_month": {
"type": "number",
"maximum": 10000,
"minimum": 0,
"description": "Clients expected per month. When given, the capacity check shows hours needed and the month profit."
},
"target_margin_pct": {
"type": "number",
"maximum": 80,
"minimum": 0,
"description": "Profit as a share of price, after owner pay and every cost. Default 30."
},
"variance_buffer_pct": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Extra effort added to each tier because a fixed price absorbs jobs that run long. Default 15."
}
}
}Compare the economics of how a business charges today, by the hour or by the day, with fixed packages for the same work. Takes the cost base, the current rate and unit, the share of hours worked that reach an invoice, one to three packages with price and typical effort, and jobs per month. The current rate always comes from the user and is never assumed. Returns, at several efficiency gains (default 0, 15 and 30 percent less effort as delivery gets repeatable), revenue and profit per job and per month under each model, earnings per hour worked, revenue ceilings at full capacity, the package price that matches what each job collects today, and plain findings. Deterministic arithmetic with the method explained.
| Argument | Type | Description |
|---|---|---|
| current* | object | |
| business* | object | The business cost base. |
| packages* | array | |
| jobs_per_month* | number | |
| efficiency_gains_pct | array | Effort reductions to compare, in percent. Default 0, 15, 30. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"business",
"current",
"packages",
"jobs_per_month"
],
"properties": {
"current": {
"type": "object",
"required": [
"rate",
"unit"
],
"properties": {
"rate": {
"type": "number",
"maximum": 1000000,
"exclusiveMinimum": 0
},
"unit": {
"enum": [
"hour",
"day"
],
"type": "string",
"description": "Whether the current rate is charged per hour or per day."
},
"hours_per_day": {
"type": "number",
"maximum": 24,
"minimum": 1,
"description": "Hours in a charged day, when unit is day. Default 8."
},
"billed_share_pct": {
"type": "number",
"maximum": 100,
"minimum": 1,
"description": "Share of hours actually worked that end up on invoices, after write-downs and unbilled admin. Default 85."
},
"direct_costs_passed_through": {
"type": "boolean",
"description": "True when materials and other direct costs are charged to the client at cost today. Default true."
}
}
},
"business": {
"type": "object",
"required": [
"monthly_fixed_costs",
"monthly_owner_pay",
"delivery_hours_per_month"
],
"properties": {
"currency": {
"type": "string",
"maxLength": 3,
"minLength": 3,
"description": "Three-letter currency code. Default USD."
},
"monthly_owner_pay": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "What the owner needs to take home each month. It is treated as a cost, so profit is what is left after the owner is paid."
},
"monthly_staff_cost": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Salaried team cost per month, including payroll taxes. Default 0."
},
"monthly_fixed_costs": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Overhead every month regardless of work: rent, software, insurance, vehicles, accounting."
},
"variable_cost_per_hour": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Cost that rises with each delivery hour, such as subcontractor or crew wages. Default 0."
},
"planned_utilization_pct": {
"type": "number",
"maximum": 100,
"minimum": 10,
"description": "Share of delivery hours expected to be filled in a normal month. Default 80."
},
"delivery_hours_per_month": {
"type": "number",
"maximum": 20000,
"description": "Hours the whole team can put into client work in a month, not counting sales and admin. Used to measure capacity and cost, never shown to clients.",
"exclusiveMinimum": 0
}
},
"description": "The business cost base."
},
"packages": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"price",
"effort_hours"
],
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"minLength": 1
},
"price": {
"type": "number",
"maximum": 100000000,
"exclusiveMinimum": 0
},
"share_pct": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Share of jobs that would be this package. Give for all or none."
},
"direct_cost": {
"type": "number",
"maximum": 100000000,
"minimum": 0
},
"effort_hours": {
"type": "number",
"maximum": 10000,
"description": "Typical delivery effort for the same job today.",
"exclusiveMinimum": 0
}
}
},
"maxItems": 3,
"minItems": 1
},
"jobs_per_month": {
"type": "number",
"maximum": 10000,
"exclusiveMinimum": 0
},
"efficiency_gains_pct": {
"type": "array",
"items": {
"type": "number",
"maximum": 89,
"minimum": 0
},
"maxItems": 5,
"minItems": 1,
"description": "Effort reductions to compare, in percent. Default 0, 15, 30."
}
}
}Write plain scope language for one to three fixed packages: an included line for each deliverable, an adjustments line (adjustments to anything delivered are included at no added cost), out-of-scope lines (deliverables from larger packages and anything listed as excluded), the rule that a genuinely new deliverable becomes a new package scoped and priced before work starts, worked boundary examples, and a ready-to-paste text block per package. Lines that use time-based or extra-charge wording are left out and named in notes. Written in "we" by default or "I" for a solo business.
| Argument | Type | Description |
|---|---|---|
| voice | string | "we" (default) for a team, "I" for a solo business. |
| packages* | array | |
| ascending | boolean | True when packages are listed smallest first and each includes the one before it. Default true when there is more than one package. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"packages"
],
"properties": {
"voice": {
"enum": [
"we",
"I"
],
"type": "string",
"description": "\"we\" (default) for a team, \"I\" for a solo business."
},
"packages": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"includes"
],
"properties": {
"name": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"excludes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 240
},
"maxItems": 30,
"description": "Things clients often assume are included but are not, for example \"Printing\" or \"Permit fees\"."
},
"includes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 240
},
"maxItems": 40,
"minItems": 1,
"description": "Deliverables with quantities where they matter, for example \"2 logo concepts\" or \"One site visit and measurements\"."
}
}
},
"maxItems": 3,
"minItems": 1
},
"ascending": {
"type": "boolean",
"description": "True when packages are listed smallest first and each includes the one before it. Default true when there is more than one package."
}
}
}Show what scope creep and a slow month do to one fixed-price package. Takes the cost base, the package price, its typical effort and direct cost, and optionally sales per month and a cash reserve. Returns margin and profit per sale at each scope creep level (default 10, 25 and 50 percent more effort on the same deliverables), the overrun at which the package earns nothing, the price that holds the target margin at the worst case, and the month view: a normal month, a slow month (default 40 percent fewer sales), a slow month with creep, break-even sales a month, and how many slow months the reserve covers. Deterministic arithmetic with the method explained.
| Argument | Type | Description |
|---|---|---|
| package* | object | |
| business* | object | The business cost base. |
| cash_reserve | number | Cash set aside for slow months. |
| sales_per_month | number | Normal sales of this package per month. Enables the slow month view. |
| scope_creep_pct | array | Extra effort levels to test, in percent. Default 10, 25, 50. |
| target_margin_pct | number | Default 30. |
| slow_month_drop_pct |
| number |
| How far sales fall in a slow month, in percent. Default 40. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"business",
"package"
],
"properties": {
"package": {
"type": "object",
"required": [
"name",
"price",
"effort_hours"
],
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"minLength": 1
},
"price": {
"type": "number",
"maximum": 100000000,
"exclusiveMinimum": 0
},
"direct_cost": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Direct cost per sale. Default 0."
},
"effort_hours": {
"type": "number",
"maximum": 10000,
"description": "Typical delivery effort for one sale of this package.",
"exclusiveMinimum": 0
}
}
},
"business": {
"type": "object",
"required": [
"monthly_fixed_costs",
"monthly_owner_pay",
"delivery_hours_per_month"
],
"properties": {
"currency": {
"type": "string",
"maxLength": 3,
"minLength": 3,
"description": "Three-letter currency code. Default USD."
},
"monthly_owner_pay": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "What the owner needs to take home each month. It is treated as a cost, so profit is what is left after the owner is paid."
},
"monthly_staff_cost": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Salaried team cost per month, including payroll taxes. Default 0."
},
"monthly_fixed_costs": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Overhead every month regardless of work: rent, software, insurance, vehicles, accounting."
},
"variable_cost_per_hour": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Cost that rises with each delivery hour, such as subcontractor or crew wages. Default 0."
},
"planned_utilization_pct": {
"type": "number",
"maximum": 100,
"minimum": 10,
"description": "Share of delivery hours expected to be filled in a normal month. Default 80."
},
"delivery_hours_per_month": {
"type": "number",
"maximum": 20000,
"description": "Hours the whole team can put into client work in a month, not counting sales and admin. Used to measure capacity and cost, never shown to clients.",
"exclusiveMinimum": 0
}
},
"description": "The business cost base."
},
"cash_reserve": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Cash set aside for slow months."
},
"sales_per_month": {
"type": "number",
"maximum": 10000,
"minimum": 0,
"description": "Normal sales of this package per month. Enables the slow month view."
},
"scope_creep_pct": {
"type": "array",
"items": {
"type": "number",
"maximum": 300,
"minimum": 0
},
"maxItems": 6,
"minItems": 1,
"description": "Extra effort levels to test, in percent. Default 10, 25, 50."
},
"target_margin_pct": {
"type": "number",
"maximum": 80,
"minimum": 0,
"description": "Default 30."
},
"slow_month_drop_pct": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "How far sales fall in a slow month, in percent. Default 40."
}
}
}