LeaseLine Rent Ledger
Rent ledgers and prorated rent
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"rent-ledger": {
"url": "https://rent-ledger.zovo.one/mcp"
}
}
}リモートエンドポイント
https://rent-ledger.zovo.one/mcpstreamable-httpできること
ツール一覧
ツール(2)
🟢calculate_prorated_rent(monthly_rent, move_in_date, move_out_date, method, rounding)
Use this when the user wants prorated rent for a move-in or move-out (prorated rent calculator, 'tenant moved in on the 17th, how much rent do they owe', partial month rent). Returns the amount, computed to the cent, by three methods side by side (actual days in the month, 30-day month, 365-day year), the daily rate, and the formula, counting the move-in and move-out days inclusively; leap-year February is handled. Assumes rent covers calendar months (due on the 1st). Does not build a full ledger (use generate_rent_ledger for payments and balances) and does not give legal advice.
入力スキーマ
{
"type": "object",
"properties": {
"monthly_rent": {
"type": "number",
"description": "Full monthly rent in USD, e.g. 1450."
},
"move_in_date": {
"description": "Move-in date (first day the tenant has the unit), YYYY-MM-DD, e.g. 2026-10-17. Give this, move_out_date, or both.",
"type": "string",
"maxLength": 40
},
"move_out_date": {
"description": "Move-out date (last day the tenant pays for), YYYY-MM-DD, e.g. 2026-11-10.",
"type": "string",
"maxLength": 40
},
"method": {
"description": "The proration method the lease uses; the result shows all three. actual_days (default): rent / days in that month. thirty_day: rent / 30. annual_365: rent x 12 / 365.",
"type": "string",
"enum": [
"actual_days",
"thirty_day",
"annual_365"
]
},
"rounding": {
"description": "round_total (default): round only the final amount to the cent. daily_rate_first: round the daily rate to the cent first, then multiply by the days.",
"type": "string",
"enum": [
"round_total",
"daily_rate_first"
]
}
},
"required": [
"monthly_rent"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"monthly_rent": {
"type": "number"
},
"method": {
"type": "string"
},
"method_label": {
"type": "string"
},
"rounding": {
"type": "string"
},
"periods": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"month": {
"type": "string"
},
"label": {
"type": "string"
},
"from": {
"type": "string"
},
"to": {
"type": "string"
},
"days_occupied": {
"type": "number"
},
"days_in_month": {
"type": "number"
},
"full_month": {
"type": "boolean"
},
"amount": {
"type": "number"
},
"methods": {
"type": "array",
"items": {
"type": "object",
"properties": {
"method": {
"type": "string"
},
"label": {
"type": "string"
},
"daily_rate": {
"type": "number"
},
"amount": {
"type": "number"
},
"formula": {
"type": "string"
}
},
"required": [
"method",
"label",
"daily_rate",
"amount",
"formula"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"month",
"label",
"from",
"to",
"days_occupied",
"days_in_month",
"full_month",
"amount",
"methods"
],
"additionalProperties": false
}
},
"full_months_between": {
"type": "number"
},
"total_prorated": {
"type": "number"
},
"display": {
"type": "object",
"properties": {
"total": {
"type": "string"
},
"monthly_rent": {
"type": "string"
}
},
"required": [
"total",
"monthly_rent"
],
"additionalProperties": false
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"kind",
"monthly_rent",
"method",
"method_label",
"rounding",
"periods",
"full_months_between",
"total_prorated",
"display",
"notes"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢generate_rent_ledger(tenant_name, property, landlord_name, monthly_rent, lease_start, ...)
Use this when the user wants a rent ledger, tenant ledger, rent ledger template filled in, or proof of rent payments for a tenant: 'make a ledger of my tenant payments this year', 'tenant paid 800 of 1200 rent, what is the balance', amount due as of a date. Takes lease terms (rent, start, due day, late fee rule with grace period) and payments typed or from an attached CSV/Excel file; charges rent monthly with prorated first/last months, applies payments oldest first, adds late fees (flat, percent, daily with cap), carries overpayments forward as credit, and returns a running balance plus PDF statement, Excel and CSV downloads. Does not check state late-fee limits, give legal advice, collect rent, or make rent receipts for proof of address.
入力スキーマ
{
"type": "object",
"properties": {
"tenant_name": {
"description": "Tenant name shown on the statement, e.g. Maria Lopez. Do not include a Social Security number.",
"type": "string",
"maxLength": 80
},
"property": {
"description": "Property or unit, e.g. 412 Oak St, Unit 2B, Austin, TX.",
"type": "string",
"maxLength": 120
},
"landlord_name": {
"description": "Landlord or property manager name for the statement header, e.g. Oak Street Rentals LLC.",
"type": "string",
"maxLength": 80
},
"monthly_rent": {
"type": "number",
"description": "Monthly rent in USD from the lease, e.g. 1450."
},
"lease_start": {
"type": "string",
"maxLength": 40,
"description": "Lease start or move-in date, YYYY-MM-DD, e.g. 2026-01-17. A mid-month start is prorated when rent is due on the 1st."
},
"lease_end": {
"description": "Move-out date (last day charged), YYYY-MM-DD, e.g. 2026-08-10. Omit for an ongoing tenancy.",
"type": "string",
"maxLength": 40
},
"as_of_date": {
"type": "string",
"maxLength": 40,
"description": "Statement date: charges and payments up to and including this day, YYYY-MM-DD, e.g. 2026-10-03. Use the date the user names, otherwise today's date from the conversation (the user's local date)."
},
"rent_due_day": {
"description": "Day of the month rent is due, 1-28, e.g. 1 (default).",
"type": "integer",
"minimum": 1,
"maximum": 28
},
"proration_method": {
"description": "How a partial first or last month is prorated: actual_days (default, rent / days in month), thirty_day (rent / 30), annual_365 (rent x 12 / 365).",
"type": "string",
"enum": [
"actual_days",
"thirty_day",
"annual_365"
]
},
"proration_rounding": {
"description": "round_total (default, round only the final amount to the cent) or daily_rate_first (round the daily rate to the cent before multiplying).",
"type": "string",
"enum": [
"round_total",
"daily_rate_first"
]
},
"rent_changes": {
"description": "Rent increases or decreases during the period, e.g. [{\"effective_date\": \"2026-07-01\", \"monthly_rent\": 1525}].",
"maxItems": 24,
"type": "array",
"items": {
"type": "object",
"properties": {
"effective_date": {
"type": "string",
"maxLength": 40,
"description": "First rent due date at the new amount, YYYY-MM-DD, e.g. 2026-07-01."
},
"monthly_rent": {
"type": "number",
"description": "New monthly rent in USD, e.g. 1525."
}
},
"required": [
"effective_date",
"monthly_rent"
]
}
},
"other_charges": {
"description": "Charges other than rent (utilities, pet rent, repair, returned check fee) and credits (concessions). Do not include the security deposit unless the user asks.",
"maxItems": 500,
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string",
"maxLength": 40,
"description": "Date of the charge or credit, YYYY-MM-DD, e.g. 2026-03-05."
},
"description": {
"type": "string",
"maxLength": 80,
"description": "What it is, e.g. Water bill, Pet rent, Returned check fee, Rent concession."
},
"amount": {
"type": "number",
"description": "Amount in USD; positive = charge (e.g. 45.20), negative = credit to the tenant (e.g. -100)."
}
},
"required": [
"date",
"description",
"amount"
]
}
},
"payments": {
"description": "Payments received from the tenant, e.g. [{\"date\": \"2026-02-03\", \"amount\": 1450}]. Payments before a due date become a credit.",
"maxItems": 5000,
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string",
"maxLength": 40,
"description": "Date the payment was received, YYYY-MM-DD, e.g. 2026-02-03."
},
"amount": {
"type": "number",
"description": "Amount received in USD, e.g. 800. A returned or bounced payment is negative, e.g. -1450 with memo 'Returned check 1042'."
},
"memo": {
"description": "Optional short note, e.g. Check 1042, Zelle, Cash. No bank account numbers.",
"type": "string",
"maxLength": 60
}
},
"required": [
"date",
"amount"
]
}
},
"payments_file": {
"type": "object",
"properties": {
"download_url": {
"type": "string",
"description": "Temporary download link for the file, supplied by ChatGPT."
},
"file_id": {
"type": "string",
"description": "ChatGPT file id, e.g. file_abc123."
},
"mime_type": {
"description": "Media type if known, e.g. application/pdf.",
"type": "string"
},
"file_name": {
"description": "Original file name if known, e.g. statement.pdf.",
"type": "string"
}
},
"required": [
"download_url",
"file_id"
],
"description": "Optional CSV or Excel (.xlsx) list of payments with a date column and an amount column, e.g. payments-2026.csv."
},
"late_fee": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"none",
"flat",
"percent",
"daily",
"flat_plus_daily"
],
"description": "Late fee rule from the lease: none, flat (e.g. $75 once per month), percent (e.g. 5% of the month's rent), daily (e.g. $10 per day late), flat_plus_daily (e.g. $50 then $10 per day)."
},
"amount": {
"description": "Flat late fee in USD for type flat or flat_plus_daily, e.g. 75.",
"type": "number"
},
"percent": {
"description": "Percent for type percent, e.g. 5 for 5%.",
"type": "number"
},
"percent_of": {
"description": "For type percent: the month's rent charge (default) or only the unpaid part of it.",
"type": "string",
"enum": [
"rent",
"unpaid_rent"
]
},
"daily_amount": {
"description": "Daily late fee in USD for type daily or flat_plus_daily, e.g. 10.",
"type": "number"
},
"max_total": {
"description": "Optional cap on all late fees for one month's rent, in USD, e.g. 150.",
"type": "number"
},
"max_percent_of_rent": {
"description": "Optional cap as a percent of that month's rent, e.g. 10. With max_total, the lower cap applies.",
"type": "number"
},
"grace_days": {
"description": "Days after the due date that rent is still on time, e.g. 5: due the 1st, paid by the 6th is on time, fee on the 7th. If the lease says 'late after the 5th', use 4. Default 0.",
"type": "integer",
"minimum": 0,
"maximum": 31
}
},
"required": [
"type"
],
"description": "Late fee rule from the lease, e.g. {\"type\": \"flat\", \"amount\": 75, \"grace_days\": 5}. Omit for no late fees."
},
"payment_order": {
"description": "How payments are applied: oldest_first (default, oldest unpaid charge first, including late fees) or rent_first (rent and other charges before late fees).",
"type": "string",
"enum": [
"oldest_first",
"rent_first"
]
}
},
"required": [
"monthly_rent",
"lease_start",
"as_of_date"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"tenant": {
"type": [
"string",
"null"
]
},
"property": {
"type": [
"string",
"null"
]
},
"as_of": {
"type": "string"
},
"lease": {
"type": "object",
"properties": {
"monthly_rent": {
"type": "number"
},
"start": {
"type": "string"
},
"end": {
"type": [
"string",
"null"
]
},
"rent_due_day": {
"type": "number"
},
"proration_method": {
"type": "string"
},
"late_fee_rule": {
"type": "string"
},
"payment_order": {
"type": "string"
}
},
"required": [
"monthly_rent",
"start",
"end",
"rent_due_day",
"proration_method",
"late_fee_rule",
"payment_order"
],
"additionalProperties": false
},
"summary": {
"type": "object",
"properties": {
"total_charged": {
"type": "number"
},
"rent_charged": {
"type": "number"
},
"other_charges": {
"type": "number"
},
"late_fees": {
"type": "number"
},
"total_paid": {
"type": "number"
},
"returned_payments": {
"type": "number"
},
"credits": {
"type": "number"
},
"balance_due": {
"type": "number"
},
"credit_balance": {
"type": "number"
},
"payments_count": {
"type": "number"
},
"status": {
"type": "string"
}
},
"required": [
"total_charged",
"rent_charged",
"other_charges",
"late_fees",
"total_paid",
"returned_payments",
"credits",
"balance_due",
"credit_balance",
"payments_count",
"status"
],
"additionalProperties": false
},
"display": {
"type": "object",
"properties": {
"total_charged": {
"type": "string"
},
"total_paid": {
"type": "string"
},
"late_fees": {
"type": "string"
},
"balance": {
"type": "string"
},
"balance_label": {
"type": "string"
},
"as_of": {
"type": "string"
}
},
"required": [
"total_charged",
"total_paid",
"late_fees",
"balance",
"balance_label",
"as_of"
],
"additionalProperties": false
},
"aging": {
"type": "object",
"properties": {
"current": {
"type": "number"
},
"days_31_60": {
"type": "number"
},
"days_61_90": {
"type": "number"
},
"over_90": {
"type": "number"
}
},
"required": [
"current",
"days_31_60",
"days_61_90",
"over_90"
],
"additionalProperties": false
},
"months": {
"type": "array",
"items": {
"type": "object",
"properties": {
"month": {
"type": "string"
},
"rent": {
"type": "number"
},
"paid_on": {
"type": [
"string",
"null"
]
},
"late_fees": {
"type": "number"
},
"unpaid": {
"type": "number"
},
"status": {
"type": "string"
}
},
"required": [
"month",
"rent",
"paid_on",
"late_fees",
"unpaid",
"status"
],
"additionalProperties": false
}
},
"months_total": {
"type": "number"
},
"rows_total": {
"type": "number"
},
"recent_rows": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string"
},
"description": {
"type": "string"
},
"charge": {
"type": "number"
},
"payment": {
"type": "number"
},
"balance": {
"type": "number"
}
},
"required": [
"date",
"description",
"charge",
"payment",
"balance"
],
"additionalProperties": false
}
},
"open_items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string"
},
"description": {
"type": "string"
},
"unpaid": {
"type": "number"
},
"days_old": {
"type": "number"
}
},
"required": [
"date",
"description",
"unpaid",
"days_old"
],
"additionalProperties": false
}
},
"prorations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"month": {
"type": "string"
},
"days": {
"type": "number"
},
"days_in_month": {
"type": "number"
},
"chosen": {
"type": "string"
},
"actual_days": {
"type": "number"
},
"thirty_day": {
"type": "number"
},
"annual_365": {
"type": "number"
}
},
"required": [
"month",
"days",
"days_in_month",
"chosen",
"actual_days",
"thirty_day",
"annual_365"
],
"additionalProperties": false
}
},
"payments_file": {
"anyOf": [
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"rows_read": {
"type": "number"
},
"payments_used": {
"type": "number"
},
"skipped": {
"type": "number"
},
"skipped_reasons": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"name",
"rows_read",
"payments_used",
"skipped",
"skipped_reasons"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"downloads": {
"type": "object",
"properties": {
"pdf": {
"type": "string"
},
"xlsx": {
"type": "string"
},
"csv": {
"type": "string"
}
},
"additionalProperties": false
}
},
"required": [
"kind",
"tenant",
"property",
"as_of",
"lease",
"summary",
"display",
"aging",
"months",
"months_total",
"rows_total",
"recent_rows",
"open_items",
"prorations",
"payments_file",
"warnings",
"downloads"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}コミュニティ
エビデンス