Split rent and utilities by room, settle up and generate roommate agreements. Free.
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.
Draft a plain-language shared-living agreement (parties, term, equal rent shares, deposit, utilities, house rules, notice, signature lines) plus a pre-signing checklist. Use when housemates want house terms in writing. Not legal advice. Do NOT use to compute unequal rent (use split_rent) or bill shares (use split_utilities).
Total deposit amount, 0 or more (0 = no deposit)
Unique names of all tenants (at least 2), e.g. ["Asha","Dev"]
Total monthly rent for the home, positive; split equally between tenants in the text
Move-in date YYYY-MM-DD, e.g. 2026-11-01
Street address of the shared home, e.g. '12 Elm Street, Flat 3'
Custom house rules, one sentence each; default covers quiet hours, guests, cleaning rota and shared supplies
Optional: who sleeps in which room, one room per tenant; names must match tenants
One sentence on how utilities are shared; default: split equally between tenants unless agreed otherwise
Notice period in whole months, default 1
Draft a plain-language shared-living agreement (parties, term, equal rent shares, deposit, utilities, house rules, notice, signature lines) plus a pre-signing checklist. Use when housemates want house terms in writing. Not legal advice. Do NOT use to compute unequal rent (use split_rent) or bill shares (use split_utilities).
| Argument | Type | Description |
|---|---|---|
| deposit* | number | Total deposit amount, 0 or more (0 = no deposit) |
| tenants* | array | Unique names of all tenants (at least 2), e.g. ["Asha","Dev"] |
| house_rules | array | Custom house rules, one sentence each; default covers quiet hours, guests, cleaning rota and shared supplies |
| monthly_rent* | number | Total monthly rent for the home, positive; split equally between tenants in the text |
| move_in_date* | string | Move-in date YYYY-MM-DD, e.g. 2026-11-01 |
| property_address* | string | Street address of the shared home, e.g. '12 Elm Street, Flat 3' |
| room_assignments | array | Optional: who sleeps in which room, one room per tenant; names must match tenants |
| utilities_policy | string | One sentence on how utilities are shared; default: split equally between tenants unless agreed otherwise |
| notice_period_months | integer | Notice period in whole months, default 1 |
{
"type": "object",
"required": [
"property_address",
"tenants",
"move_in_date",
"monthly_rent",
"deposit"
],
"properties": {
"deposit": {
"type": "number",
"description": "Total deposit amount, 0 or more (0 = no deposit)"
},
"tenants": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2,
"description": "Unique names of all tenants (at least 2), e.g. [\"Asha\",\"Dev\"]"
},
"house_rules": {
"type": "array",
"items": {
"type": "string"
},
"description": "Custom house rules, one sentence each; default covers quiet hours, guests, cleaning rota and shared supplies"
},
"monthly_rent": {
"type": "number",
"description": "Total monthly rent for the home, positive; split equally between tenants in the text"
},
"move_in_date": {
"type": "string",
"description": "Move-in date YYYY-MM-DD, e.g. 2026-11-01"
},
"property_address": {
"type": "string",
"description": "Street address of the shared home, e.g. '12 Elm Street, Flat 3'"
},
"room_assignments": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"room"
],
"properties": {
"name": {
"type": "string",
"description": "Tenant name (must be in tenants)"
},
"room": {
"type": "string",
"description": "Room label, e.g. 'Box room'"
}
}
},
"description": "Optional: who sleeps in which room, one room per tenant; names must match tenants"
},
"utilities_policy": {
"type": "string",
"description": "One sentence on how utilities are shared; default: split equally between tenants unless agreed otherwise"
},
"notice_period_months": {
"type": "integer",
"minimum": 1,
"description": "Notice period in whole months, default 1"
}
}
}Split shared costs equally between housemates, compare with what each already paid, and compute balances plus the fewest payments that settle everyone. Use after people fronted money for the group. Computes only; moves no money. Do NOT use for usage-weighted bills (use split_utilities).
| Argument | Type | Description |
|---|---|---|
| costs* | array | Shared costs, split equally between everyone in payments (names must be unique), e.g. [{"name":"Groceries","amount":140}] |
| payments* | array | Every housemate sharing the costs and what they already paid (include people who paid 0), e.g. [{"name":"Asha","paid":150},{"name":"Mira","paid":0}] |
{
"type": "object",
"required": [
"costs",
"payments"
],
"properties": {
"costs": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"amount"
],
"properties": {
"name": {
"type": "string",
"description": "Unique cost label, e.g. 'Weekly shop'"
},
"amount": {
"type": "number",
"description": "Cost amount, positive number"
}
}
},
"minItems": 1,
"description": "Shared costs, split equally between everyone in payments (names must be unique), e.g. [{\"name\":\"Groceries\",\"amount\":140}]"
},
"payments": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"paid"
],
"properties": {
"name": {
"type": "string",
"description": "Unique housemate name"
},
"paid": {
"type": "number",
"description": "Amount this housemate already paid towards the costs, 0 or more"
}
}
},
"minItems": 1,
"description": "Every housemate sharing the costs and what they already paid (include people who paid 0), e.g. [{\"name\":\"Asha\",\"paid\":150},{\"name\":\"Mira\",\"paid\":0}]"
}
}
}Split a fixed monthly rent across rooms, equally or weighted by room size, and divide a shared room's rent equally between its occupants. Use when deciding who pays how much rent. Do NOT use for utility bills (use split_utilities) or to settle who already paid what (use settle_up).
| Argument | Type | Description |
|---|---|---|
| rooms* | array | Every room that pays rent (room names must be unique), e.g. [{"name":"Master","size":20,"occupants":["Asha","Dev"]}] |
| method | string | 'equal' (same rent per room) or 'by_size' (proportional to size). Default: by_size when every room has a size, else equal |
| total_rent* | number | Monthly rent for the whole home, positive number in any currency, e.g. 2400 |
{
"type": "object",
"required": [
"total_rent",
"rooms"
],
"properties": {
"rooms": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Unique room label, e.g. 'Master bedroom'"
},
"size": {
"type": "number",
"description": "Room area (m2 or ft2, any consistent unit), positive; needed on every room for by_size"
},
"occupants": {
"type": "array",
"items": {
"type": "string"
},
"description": "Names of the people in this room; when given, the room's rent is split equally between them"
}
}
},
"minItems": 1,
"description": "Every room that pays rent (room names must be unique), e.g. [{\"name\":\"Master\",\"size\":20,\"occupants\":[\"Asha\",\"Dev\"]}]"
},
"method": {
"enum": [
"equal",
"by_size"
],
"type": "string",
"description": "'equal' (same rent per room) or 'by_size' (proportional to size). Default: by_size when every room has a size, else equal"
},
"total_rent": {
"type": "number",
"description": "Monthly rent for the whole home, positive number in any currency, e.g. 2400"
}
}
}Split utility and household bills across housemates, each bill equally, by occupants, or by usage weight, and total what each person owes. Use for recurring shared bills such as electricity, gas or internet. Do NOT use for rent (use split_rent) or to settle who already paid (use settle_up).
| Argument | Type | Description |
|---|---|---|
| bills* | array | Bills to split (names must be unique), e.g. [{"name":"Electricity","amount":120,"split":"by_usage"}] |
| people* | array | Housemates sharing the bills (names must be unique), e.g. [{"name":"Asha","usage_weight":2},{"name":"Dev","usage_weight":1}] |
{
"type": "object",
"required": [
"bills",
"people"
],
"properties": {
"bills": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"amount",
"split"
],
"properties": {
"name": {
"type": "string",
"description": "Unique bill label, e.g. 'Electricity'"
},
"split": {
"enum": [
"equal",
"by_occupants",
"by_usage"
],
"type": "string",
"description": "'equal' per person, 'by_occupants' weighted by each person's occupants, or 'by_usage' weighted by usage_weight (required on everyone)"
},
"amount": {
"type": "number",
"description": "Bill total, positive number, e.g. 120"
}
}
},
"minItems": 1,
"description": "Bills to split (names must be unique), e.g. [{\"name\":\"Electricity\",\"amount\":120,\"split\":\"by_usage\"}]"
},
"people": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Unique housemate name"
},
"occupants": {
"type": "number",
"description": "How many people this housemate pays for (by_occupants bills), positive, default 1"
},
"usage_weight": {
"type": "number",
"description": "Relative usage for by_usage bills, positive, e.g. 2 for double use, 0.5 for a light user"
}
}
},
"minItems": 1,
"description": "Housemates sharing the bills (names must be unique), e.g. [{\"name\":\"Asha\",\"usage_weight\":2},{\"name\":\"Dev\",\"usage_weight\":1}]"
}
}
}