South African building and renovation cost estimates in rand, by region and finish quality
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional: 'Bearer <API key>' for paid plans. Free tier works without it.
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.
Estimates the construction cost of a new house or extension in South Africa from floor area, quality level and region, using rand-per-m² rates. Optionally adds professional fees and municipal plan fees as a percentage.
Architect, engineer, etc. Default 10
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http buildcost https://aiagenttools.co.za/buildcost/mcp
Headers
Authorization (optional, not in the config above): Optional: 'Bearer <API key>' for paid plans. Free tier works without it.Estimates the construction cost of a new house or extension in South Africa from floor area, quality level and region, using rand-per-m² rates. Optionally adds professional fees and municipal plan fees as a percentage.
| Argument | Type | Description |
|---|---|---|
| region | string | |
| quality | string | |
| include_vat | boolean | |
| double_storey | boolean | |
| floor_area_m2* | number | |
| contingency_pct | number | |
| professional_fees_pct | number | Architect, engineer, etc. Default 10 |
{
"type": "object",
"required": [
"floor_area_m2"
],
"properties": {
"region": {
"type": "string",
"default": "cape-town"
},
"quality": {
"enum": [
"economy",
"standard",
"premium"
],
"type": "string",
"default": "standard"
},
"include_vat": {
"type": "boolean",
"default": true
},
"double_storey": {
"type": "boolean",
"default": false
},
"floor_area_m2": {
"type": "number"
},
"contingency_pct": {
"type": "number",
"default": 10
},
"professional_fees_pct": {
"type": "number",
"default": 10,
"description": "Architect, engineer, etc. Default 10"
}
}
}Prices a list of building/renovation items (by code from list_cost_items, with quantities) for a South African region and quality level. Returns material and labour per line, preliminaries, contingency, VAT, total and a likely range in rand.
| Argument | Type | Description |
|---|---|---|
| items* | array | |
| region | string | Region id, default cape-town |
| quality | string | |
| include_vat | boolean | |
| contingency_pct | number | |
| preliminaries_pct | number | Site setup, supervision, rubble etc. Default 8 |
{
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"quantity"
],
"properties": {
"code": {
"type": "string"
},
"quantity": {
"type": "number"
}
}
}
},
"region": {
"type": "string",
"description": "Region id, default cape-town"
},
"quality": {
"enum": [
"economy",
"standard",
"premium"
],
"type": "string",
"default": "standard"
},
"include_vat": {
"type": "boolean",
"default": true
},
"contingency_pct": {
"type": "number",
"default": 10
},
"preliminaries_pct": {
"type": "number",
"default": 8,
"description": "Site setup, supervision, rubble etc. Default 8"
}
}
}Lists the building and renovation items that can be priced, with codes, units and base rates (Cape Town, standard quality, excl. VAT). Filter by category or keyword.
| Argument | Type | Description |
|---|---|---|
| search | string | Keyword, e.g. 'geyser' or 'tile' |
| category | string | e.g. roofing, walls, painting, floors, electrical, plumbing, packages, external |
{
"type": "object",
"properties": {
"search": {
"type": "string",
"description": "Keyword, e.g. 'geyser' or 'tile'"
},
"category": {
"type": "string",
"description": "e.g. roofing, walls, painting, floors, electrical, plumbing, packages, external"
}
}
}Checks a buy-renovate-sell deal in South Africa: purchase price, renovation estimate, transfer duty and costs, holding costs and selling costs (agent commission) against expected resale value. Returns profit, margin and the maximum sensible offer for a target margin.
| Argument | Type | Description |
|---|---|---|
| months_held | number | |
| purchase_price* | number | |
| expected_resale* | number | |
| renovation_cost* | number | Total incl. VAT, e.g. from estimate_works |
| target_margin_pct | number | Target profit as % of total cost |
| agent_commission_pct | number | Incl. VAT |
| monthly_holding_cost | number | Rates, levies, insurance, utilities, bond interest. Default 1% of purchase price |
{
"type": "object",
"required": [
"purchase_price",
"renovation_cost",
"expected_resale"
],
"properties": {
"months_held": {
"type": "number",
"default": 6
},
"purchase_price": {
"type": "number"
},
"expected_resale": {
"type": "number"
},
"renovation_cost": {
"type": "number",
"description": "Total incl. VAT, e.g. from estimate_works"
},
"target_margin_pct": {
"type": "number",
"default": 20,
"description": "Target profit as % of total cost"
},
"agent_commission_pct": {
"type": "number",
"default": 6,
"description": "Incl. VAT"
},
"monthly_holding_cost": {
"type": "number",
"description": "Rates, levies, insurance, utilities, bond interest. Default 1% of purchase price"
}
}
}Material list and cost for replacing a roof with IBR or corrugated steel sheeting in South Africa: number of sheets, screws and ridge capping, priced from current supplier prices that a person has checked and approved, with the supplier and price date on each line. Use estimate_works for an all-in installed rate instead.
| Argument | Type | Description |
|---|---|---|
| area_m2* | number | Roof surface area in m² (the sloped area, not the floor area) |
| profile | string | Sheet profile (default ibr) |
| ridge_m | number | Optional ridge length in metres, to include ridge capping |
| gauge_mm | number | Optional sheet thickness, e.g. 0.47 |
| include_labour | boolean | Add a labour rate per m² if one has been set |
{
"type": "object",
"required": [
"area_m2"
],
"properties": {
"area_m2": {
"type": "number",
"description": "Roof surface area in m² (the sloped area, not the floor area)"
},
"profile": {
"enum": [
"ibr",
"corrugated"
],
"type": "string",
"description": "Sheet profile (default ibr)"
},
"ridge_m": {
"type": "number",
"description": "Optional ridge length in metres, to include ridge capping"
},
"gauge_mm": {
"type": "number",
"description": "Optional sheet thickness, e.g. 0.47"
},
"include_labour": {
"type": "boolean",
"description": "Add a labour rate per m² if one has been set"
}
}
}Free to call. If you needed South African data that none of these tools provide (a cost, rate, rule, price or place we don't cover), describe it here in one sentence. We review these every week and build the most-requested data first.
| Argument | Type | Description |
|---|---|---|
| need* | string | What information you were looking for, in one sentence. |
| region | string | Optional: province or town, if it matters. |
| context | string | Optional: the kind of task it was for, e.g. 'renovation quote' or 'payroll run'. |
{
"type": "object",
"required": [
"need"
],
"properties": {
"need": {
"type": "string",
"description": "What information you were looking for, in one sentence."
},
"region": {
"type": "string",
"description": "Optional: province or town, if it matters."
},
"context": {
"type": "string",
"description": "Optional: the kind of task it was for, e.g. 'renovation quote' or 'payroll run'."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Oct 30, 2026.