LeaseLine Rent Ledger

Rent ledgers and prorated rent

我該用這個嗎

品質與安全性

A
說明品質
100%
結構描述完整度
100%
命名品質
100%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~3,471Token(工具定義)
~18.2 KB典型回應大小
顯著的注意力影響(128k 上下文的 2.71%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `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
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本2 個工具