MCP connector for Claude
Package Pricing Lab: price the work, not the clock.
Freelancers, studios, contractors and consultants tell Claude what the business costs to run, how much it can deliver, and what each job includes. Package Pricing Lab turns that into three fixed packages with the margin math shown, tests what scope creep and a slow month do to them, sets them beside the way the business charges today, and writes the scope lines. Adjustments to what was built are included; a genuinely new deliverable becomes a new package. Every number is arithmetic you can check, explained in the result.
Connector URL
https://mcp.modernmustardseed.com/pricing-lab
Streamable HTTP. No sign-in. Every tool is read-only and works offline from the inputs you give it.
Connect it
- In Claude, open Settings, then Connectors.
- Choose Add custom connector, paste
https://mcp.modernmustardseed.com/pricing-lab, and save. No account or key is needed. - In a chat, describe your costs and your work. Claude calls the tools when the question needs them.
In Claude Code: claude mcp add --transport http pricing-lab https://mcp.modernmustardseed.com/pricing-lab
Try these
- “I run a two-person brand design studio. Overhead is $3,200 a month, I need to pay myself $7,000, my partner costs $5,500, and we have about 220 hours a month for client work. Build me three packages from: discovery workshop (6 hours), logo suite (18 hours), brand guidelines (14 hours), social templates (10 hours), website homepage design (24 hours, $300 in fonts and stock), and a launch kit of print files (8 hours, $150 printing proofs).”
- “Stress test my $6,500 kitchen design package. It usually takes 40 hours with $400 in renderings, I sell four a month, fixed costs are $4,000, I pay myself $6,000, I have 150 delivery hours a month and $15,000 in reserve. What happens if jobs run 25 percent long and a month comes in slow?”
- “I bill by the hour today and only about 80 percent of my time gets invoiced. Compare that with two packages for the same work: a $2,400 website refresh that takes about 24 hours and a $4,800 rebuild that takes about 48. I do 5 jobs a month, my costs are $2,500 a month plus $5,000 owner pay, and I have 140 hours for client work.”
The tools
build_packages
Build three fixed packages
Turns the cost base and a list of deliverables into three tiers. Each tier shows 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, and how far the work can overrun before it earns nothing. A capacity check shows hours needed, break-even clients a month and the month profit after owner pay.
Inputs: business (fixed costs, owner pay, staff cost, delivery hours, planned utilization, variable cost); offer_name; items (name, effort, direct cost, level: core, common or premium); target_margin_pct, variance_buffer_pct, tier_names, mix_pct, clients_per_month, outcome_value (optional).
stress_test_package
Stress test a package
Shows margin and profit per sale when the same deliverables take 10, 25 or 50 percent more effort, the overrun where the package earns nothing, the price that holds the target margin, and a slow month: revenue, the gap after owner pay, break-even sales and how many slow months the reserve covers.
Inputs: business; package (name, price, effort, direct cost); target_margin_pct, scope_creep_pct, sales_per_month, slow_month_drop_pct, cash_reserve (optional).
compare_models
Compare time-based billing with packages
Sets the current approach (a rate per hour or per day, and the share of hours that reach an invoice) beside fixed packages for the same jobs. Shows revenue and profit per job and per month, earnings per hour worked, revenue ceilings at full capacity, and the package price that matches what each job collects today, at several efficiency gains.
Inputs: business; current (rate, unit, hours_per_day, billed_share_pct, direct_costs_passed_through); packages (one to three, with price, effort, direct cost, share); jobs_per_month; efficiency_gains_pct (optional).
package_scope_language
Write package scope language
Writes the included lines, the adjustments line (adjustments to anything delivered are included), the not-included lines, the rule that a new deliverable becomes a new package, boundary examples, and a ready-to-paste block for each package.
Inputs: packages (one to three, each with name, includes, excludes); voice ("we" or "I"); ascending (optional).
How the math works
- Cost per delivery hour. Fixed costs, owner pay and staff cost are added up and spread over the delivery hours you expect to fill (80 percent of capacity unless you say otherwise), then any cost that rises with the work is added. Hours measure capacity and cost inside the tool. Clients see a package price, never hours.
- Tiers. Each deliverable is core (in all three tiers), common (middle and largest) or premium (largest only). A tier costs its effort times the cost per delivery hour, plus direct costs. Effort carries a 15 percent variance buffer by default, because a fixed price absorbs the jobs that run long and adjustments are included.
- Price. Target price is cost divided by one minus the target margin (30 percent by default, after owner pay). The recommended price rounds up to a clean step (10 under 500, 50 under 2,000, 100 under 10,000, 500 under 50,000, then 1,000), so the margin never falls below target.
- Headroom. How far the work can run past its listed effort before a package earns nothing. Under 20 percent is flagged.
- Capacity. At the expected mix (30, 50, 20 percent by default), the tool reports hours needed, the most clients the planned hours hold, break-even clients a month, and the month profit after owner pay.
- Stress test. Scope creep means more effort on the same deliverables. The month view uses real cash, so fixed costs and owner pay stay put when sales fall.
- Comparison. Time-based revenue is hours worked, times the share that reaches an invoice, times the rate. Package revenue is the price. As delivery gets faster, the first falls and the second holds.
- Scope language. Plain lines only. The tool never writes extra-charge or time-based wording, and leaves out any input line that uses it, naming where it was.
Limits
- Each tool answers up to 120 calls a minute per server instance, and the connector accepts 10,000 calls a day across all users. Over a limit, the tool says so and gives the time to try again.
- build_packages takes 3 to 40 deliverables; compare_models and package_scope_language take one to three packages.
- The tools do not know your market. Prices come from your costs and your target margin; the outcome_value input gives a check against what the result is worth to the client.
Data sources and licenses
There are none to license. Every result is computed from the inputs in the call, by formulas written by Modern Mustard Seed and shown on this page. The tools make no network requests and store nothing.
Troubleshooting
- “Three tiers need at least one item at each level”
- Mark each deliverable core, common or premium, with at least one of each.
- Break-even is above what capacity holds
- The monthly outlay is too large for the hours at these prices. Raise the target margin, trim effort from each tier, or check delivery_hours_per_month.
- A scope line is missing from the output
- It used time-based or extra-charge wording. The notes field names the package and line. Restate it as a deliverable.
For reviewers
No account, key or setup is needed. Add the connector URL above, then:
build_packageswith business{"monthly_fixed_costs":3200,"monthly_owner_pay":7000,"monthly_staff_cost":5500,"delivery_hours_per_month":220}, offer_nameBrand identity, and items such as{"name":"Logo suite","effort_hours":18,"level":"core"},{"name":"Brand guidelines","effort_hours":14,"level":"common"},{"name":"Website homepage design","effort_hours":24,"direct_cost":300,"level":"premium"}. Returns three tiers with prices and a capacity check.stress_test_packagewith the same business, package{"name":"Kitchen design","price":6500,"effort_hours":40,"direct_cost":400}, sales_per_month4, cash_reserve15000.compare_modelswith current{"rate":95,"unit":"hour","billed_share_pct":80}, packages[{"name":"Refresh","price":2400,"effort_hours":24}], jobs_per_month5.package_scope_languagewith packages[{"name":"Starter","includes":["One logo","Color palette"]},{"name":"Full","includes":["One logo","Color palette","Brand guidelines"],"excludes":["Printing"]}].- Errors: a build_packages call with no premium item returns a specific message naming the missing level.
Support and security
Questions, problems and security reports go to sarah@modernmustardseed.com. A machine-readable contact is at /.well-known/security.txt. How we handle data is in the privacy policy.