Ten read-only Model Context Protocol tools expose rent, leases and expenses to MCP-compatible assistants, each answer scoped to the authenticated owner.
An MCP endpoint on the Rental SaaS. A compatible AI client connects, authenticates, and can then call a small set of tools — the same business rules the dashboard uses, never raw SQL.
Write tools (record a payment, create an invoice) are deliberately not exposed yet.
The problem
Owners want to ask “who hasn’t paid?” in the assistant they already use, without exporting data or handing an AI a database login.
The approach
A narrow, read-only tool surface behind authentication, resolved to one owner per call.
What it includes
- Portfolio toolsget_properties, get_units, get_tenants, get_active_leases
- Money toolsget_monthly_billing_summary, get_outstanding_rent, get_payment_history, get_outstanding_aging
- Cost & summary toolsget_expenses, get_financial_summary
- Write toolsPlannedPayments, invoices and reminders from an AI client.
How it is put together
- AI clientMCP-compatible assistant
- MCP authPlatform OAuth, member access
- Owner resolutionIdentity → one owner, or fail
- Read-only tools10 tools, same business rules
- PostgreSQLThat owner’s rows only
- Read-only tools
- One owner per call
- Fails closed on ambiguity
Simplified flow of a single tool call.
Agent profile
- Objective
- Answer an owner’s questions about their portfolio from inside an MCP-compatible AI client.
- Input
- The AI client decides to call a tool while answering the owner; the call arrives at the /mcp endpoint.
- Reasoning
- The client’s model chooses which tool to call. The server holds no model — it only executes tools.
- Tools
- get_properties, get_units, get_tenants, get_active_leases, get_monthly_billing_summary, get_outstanding_rent, get_payment_history, get_expenses, get_financial_summary, get_outstanding_aging
- Execution
- Each tool resolves the owner from the authenticated identity, runs the same owner-scoped queries as the app, and returns structured results.
- Safety
- Every tool is read-only and requires project-member access. If the owner can’t be resolved unambiguously, the call fails rather than guessing.
- Models
- Model-agnostic — whichever MCP-compatible client the owner authorises.