Writes & Confirmation
Most tools are read-only. Seven tools change data in Rentec Direct:
| Tool | Effect |
|---|---|
rentec_create_vendor |
Adds a vendor (defaults to the “Repairs” category). |
rentec_create_lead |
Adds a lead/prospect. |
rentec_create_expense |
Records an expense transaction (affects financials). |
rentec_create_work_order |
Creates a maintenance work order. |
rentec_add_work_order_note |
Adds a note to a work order. |
rentec_record_message |
Records a communication entry. |
rentec_upload_file |
Uploads a local file and optionally links it to a record. |
The two-step gate
Every write tool is protected by an explicit confirmation step, layered on top of any approval prompt your MCP host already shows:
-
Preview (no change). The agent calls the tool with its arguments. The server validates the input and returns a human-readable summary of exactly what will happen — but sends nothing to Rentec Direct.
⚠️ Confirmation required — no change has been made yet. Will record an EXPENSE of $250.00 (category 14, payment CH) on property 123. This modifies financial records. To proceed, call 'rentec_create_expense' again with the same arguments plus "confirm": true. -
Execute. The agent re-calls the tool with the same arguments plus
"confirm": true. Only now is the request sent.
This makes write intent visible and deliberate, and gives you a natural checkpoint to inspect amounts, IDs, and free text before anything is committed.
Turning writes off entirely
Set RENTEC_READ_ONLY=true (see Configuration). The write tools
are not registered at all.
Validation
Inputs are validated with Zod before the preview is produced, so malformed requests fail fast with a clear message rather than reaching the API. Cross-field rules are also enforced, for example:
rentec_create_expenserequires one ofproperty_idorbank_id, a positiveamount(≤ 9,999,999.99), and a validpmt_type.rentec_create_leadrequiresf_name,l_name,monthly_rent_max,search_city,search_state, and at least one ofphone/mphone.rentec_record_messagerequiresbodyand at least one contact id.