# Rent Manager MCP tools

> Every Rent Manager MCP tool on the Cotlet server: tool names, input schemas, a tools/call example and an example result for each tool.

Source: https://cotlet.dev/docs/mcp/rent-manager

Docs sections: [Get started](https://cotlet.dev/docs.md) · [REST API](https://cotlet.dev/docs/api.md) · [MCP](https://cotlet.dev/docs/mcp.md) · [SDKs & CLI](https://cotlet.dev/docs/sdks.md) · [Integrations](https://cotlet.dev/docs/integrations.md)

12 tools for Rent Manager on the Cotlet MCP server. Your agent picks them from tools/list.

- MCP server: `https://cotlet.dev/mcp/v1`
- Connects with: Your own Rent Manager Express login in the browser (corporate ID, username and password); it can do what your user can do
- Integration page: https://cotlet.dev/integrations/rent-manager-api-mcp-server

## Endpoints

| Endpoint | Access | Description |
|---|---|---|
| `rent-manager_list_properties` | read | Properties in your Rent Manager database, with address and unit count. |
| `rent-manager_list_tenants` | read | Tenants with property, unit, status, contact details and current balance. |
| `rent-manager_get_tenant` | read | One tenant: contacts, lease dates, rent and balance. |
| `rent-manager_get_tenant_ledger` | read | Charges, payments and credits on a tenant account, with running balance. |
| `rent-manager_list_charge_types` | read | Charge types set up in your database, such as rent or late fee. |
| `rent-manager_list_service_issues` | read | Service issues with status, property, unit, assignee and dates. |
| `rent-manager_get_history` | read | History/Notes of a tenant, newest first. |
| `rent-manager_create_service_issue` | write | Open a service issue for a unit, optionally assigned and scheduled. |
| `rent-manager_update_service_issue` | write | Change the status, assignee or schedule of a service issue, or add a note. |
| `rent-manager_add_history_note` | write | Add a note to the History/Notes of a tenant. Internal, nothing is sent. |
| `rent-manager_post_charge` | write | Post a one-off charge to a tenant account. |
| `rent-manager_send_text` | write | Text a tenant through Rent Manager texting. |

## List properties

MCP tool: `rent-manager_list_properties`

Access: read.

Returns the properties your user can see, with address and number of units. Use the property_id of each item in list_tenants, list_service_issues and create_service_issue. Pass next_cursor back as cursor for the next page.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `search` | string | no | Name or address contains. |
| `limit` | integer | no | 1 to 200. Default: 50. |
| `cursor` | string | no | Next page cursor from the previous call. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "rent-manager_list_properties",
    "arguments": {}
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "properties": [
      {
        "property_id": "p_12",
        "name": "Maple Court",
        "address": "12 Maple St, Dayton, OH",
        "units": 24
      },
      {
        "property_id": "p_15",
        "name": "Elm Street Duplexes",
        "address": "8 Elm St, Dayton, OH",
        "units": 2
      }
    ],
    "next_cursor": null
  },
  "isError": false
}
```

## List tenants

MCP tool: `rent-manager_list_tenants`

Access: read.

Returns tenants with property, unit, status, email, phone and current balance. Current tenants only by default; set status to widen it. min_balance keeps only tenants who owe at least that many whole dollars. Pass next_cursor back as cursor for the next page.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `property_id` | string | no | Only tenants of this property. |
| `status` | enum | no | current, past, future or all. Default: current. |
| `min_balance` | integer | no | Only tenants owing at least this amount, whole dollars. |
| `search` | string | no | Name, unit or email contains. |
| `cursor` | string | no | Next page cursor from the previous call. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "rent-manager_list_tenants",
    "arguments": {}
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "tenants": [
      {
        "tenant_id": "10482",
        "name": "Jordan Lee",
        "property": "Maple Court",
        "unit": "4B",
        "status": "current",
        "email": "jordan.lee@example.com",
        "phone": "+1 555 010 0142",
        "balance": "1250.00"
      },
      {
        "tenant_id": "10517",
        "name": "Priya Shah",
        "property": "Maple Court",
        "unit": "12A",
        "status": "current",
        "email": "priya.shah@example.com",
        "phone": "+1 555 010 0177",
        "balance": "0.00"
      }
    ],
    "next_cursor": null
  },
  "isError": false
}
```

## Get tenant

MCP tool: `rent-manager_get_tenant`

Access: read.

Returns one tenant with contacts, lease start and end, monthly rent and current balance. Use it before a call or a text to see the whole picture for one unit.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `tenant_id` | string | yes | Tenant ID from list_tenants. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "rent-manager_get_tenant",
    "arguments": {
      "tenant_id": "tenant_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "tenant_id": "10482",
    "name": "Jordan Lee",
    "property": "Maple Court",
    "unit": "4B",
    "status": "current",
    "lease_start": "2026-02-01",
    "lease_end": "2027-01-31",
    "monthly_rent": "1200.00",
    "balance": "1250.00"
  },
  "isError": false
}
```

## Get tenant ledger

MCP tool: `rent-manager_get_tenant_ledger`

Access: read.

Returns the ledger of one tenant account, oldest first, with a running balance after each line. Opening balance is the balance before the first line of the period. The period defaults to the last 90 days.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `tenant_id` | string | yes | Tenant ID from list_tenants. |
| `from` | date | no | Start date. Default: 90 days ago. |
| `to` | date | no | End date. Default: today. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "rent-manager_get_tenant_ledger",
    "arguments": {
      "tenant_id": "tenant_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "tenant_id": "10482",
    "from": "2026-08-01",
    "to": "2026-10-11",
    "opening_balance": "0.00",
    "lines": [
      {
        "date": "2026-08-01",
        "type": "Rent",
        "amount": "1200.00",
        "balance": "1200.00"
      },
      {
        "date": "2026-08-03",
        "type": "Payment",
        "amount": "-1200.00",
        "balance": "0.00"
      },
      {
        "date": "2026-09-01",
        "type": "Rent",
        "amount": "1200.00",
        "balance": "1200.00"
      },
      {
        "date": "2026-09-04",
        "type": "Payment",
        "amount": "-1200.00",
        "balance": "0.00"
      },
      {
        "date": "2026-10-01",
        "type": "Rent",
        "amount": "1200.00",
        "balance": "1200.00"
      },
      {
        "date": "2026-10-06",
        "type": "Late Fee",
        "amount": "50.00",
        "balance": "1250.00"
      }
    ],
    "closing_balance": "1250.00"
  },
  "isError": false
}
```

## List charge types

MCP tool: `rent-manager_list_charge_types`

Access: read.

Returns the charge types defined in your Rent Manager database. The names are yours, so read this list before post_charge and use one of its names in charge_type.

### Parameters

No parameters.

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "rent-manager_list_charge_types",
    "arguments": {}
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "charge_types": [
      {
        "name": "Rent"
      },
      {
        "name": "Late Fee"
      },
      {
        "name": "Lockout Fee"
      }
    ]
  },
  "isError": false
}
```

## List service issues

MCP tool: `rent-manager_list_service_issues`

Access: read.

Returns service issues, oldest first, with status, property, unit, assignee and creation date. Every status except Resolved by default, so a plain call is the open list. Status names are the ones set in your database. Pass next_cursor back as cursor for the next page.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `status` | string | no | Status name as set in your database, e.g. New, Work in Progress or Resolved. Default: all except Resolved. |
| `property_id` | string | no | Only issues at this property. |
| `older_than_days` | integer | no | Only issues created at least this many days ago. |
| `cursor` | string | no | Next page cursor from the previous call. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "rent-manager_list_service_issues",
    "arguments": {
      "older_than_days": 7,
      "property_id": "p_12"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "issues": [
      {
        "issue_id": "si_20744",
        "title": "Water heater not heating",
        "property": "Elm Street Duplexes",
        "unit": "8 Elm St",
        "status": "Work in Progress",
        "assigned_to": "Sam Ortiz",
        "created_at": "2026-09-28T09:12:00-04:00"
      },
      {
        "issue_id": "si_20801",
        "title": "Hallway light out",
        "property": "Maple Court",
        "unit": "Common area",
        "status": "New",
        "assigned_to": null,
        "created_at": "2026-10-02T15:40:00-04:00"
      }
    ],
    "next_cursor": null
  },
  "isError": false
}
```

## Get history

MCP tool: `rent-manager_get_history`

Access: read.

Returns the History/Notes entries of one tenant, newest first, each with date, author and text. Use it to read what was agreed before you write to the tenant.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `tenant_id` | string | yes | Tenant ID from list_tenants. |
| `limit` | integer | no | 1 to 100. Default: 25. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "rent-manager_get_history",
    "arguments": {
      "tenant_id": "tenant_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "tenant_id": "10482",
    "entries": [
      {
        "date": "2026-10-08",
        "author": "Dana Ruiz",
        "note": "Called about the late October rent. Tenant will pay on Friday."
      },
      {
        "date": "2026-09-12",
        "author": "Dana Ruiz",
        "note": "Renewed lease through January 2027."
      }
    ]
  },
  "isError": false
}
```

## Create service issue

MCP tool: `rent-manager_create_service_issue`

Access: write. Confirm: waits for the user's OK before it runs.

Opens a service issue for a property and unit, with the status New. Give tenant_id to tie it to the tenant who reported it and assigned_to to give it to a Rent Manager user. Rent Manager can notify the assignee and the tenant by its own rules, which is why this reaches other people. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `property_id` | string | yes | Property ID from list_properties. |
| `unit` | string | no | Unit name or number. |
| `tenant_id` | string | no | Tenant who reported it. |
| `title` | string | yes | Short description, e.g. "Kitchen sink leak". |
| `details` | string | no | Longer description for the technician. |
| `assigned_to` | string | no | Rent Manager user name to assign. |
| `scheduled_for` | datetime | no | ISO 8601 with time zone. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "rent-manager_create_service_issue",
    "arguments": {
      "property_id": "p_12",
      "unit": "12A",
      "tenant_id": "10517",
      "title": "Kitchen sink leak, cabinet floor wet",
      "details": "Tenant texted 7:40 am: water under the kitchen sink since last night. Has a dog, home after 3 pm.",
      "assigned_to": "Dana Ruiz"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "issue_id": "si_20931",
    "status": "New",
    "property": "Maple Court",
    "unit": "12A",
    "tenant_id": "10517",
    "title": "Kitchen sink leak",
    "assigned_to": "Dana Ruiz",
    "created_at": "2026-10-12T08:30:00-04:00"
  },
  "isError": false
}
```

## Update service issue

MCP tool: `rent-manager_update_service_issue`

Access: write. Confirm: waits for the user's OK before it runs.

Changes one service issue: status, assignee, schedule, or a note added to it. Use a status name from your database. A change can trigger the notifications your Rent Manager rules define, which is why this reaches other people. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `issue_id` | string | yes | Service issue ID from list_service_issues. |
| `status` | string | no | Status name as set in your database, e.g. New, Work in Progress or Resolved. |
| `assigned_to` | string | no | Rent Manager user name. |
| `scheduled_for` | datetime | no | ISO 8601 with time zone. |
| `note` | string | no | Note added to the issue. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "rent-manager_update_service_issue",
    "arguments": {
      "issue_id": "issue_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "issue_id": "si_20744",
    "status": "Resolved",
    "assigned_to": "Sam Ortiz",
    "note_added": true
  },
  "isError": false
}
```

## Add history note

MCP tool: `rent-manager_add_history_note`

Access: write.

Adds one note to the History/Notes of a tenant, under your user. Nothing is sent to the tenant or anyone else, and one more note corrects a mistake, so add_history_note runs without asking first.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `tenant_id` | string | yes | Tenant ID from list_tenants. |
| `note` | string | yes | Note text. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "rent-manager_add_history_note",
    "arguments": {
      "tenant_id": "tenant_8c41d2",
      "note": "note"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "tenant_id": "10482",
    "status": "added",
    "date": "2026-10-12"
  },
  "isError": false
}
```

## Post charge

MCP tool: `rent-manager_post_charge`

Access: write. Confirm: waits for the user's OK before it runs.

Posts one charge to one tenant account and returns the balance before and after. charge_type must be a name from list_charge_types. The date defaults to today. There is no undo tool: a wrong charge is corrected in Rent Manager. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `tenant_id` | string | yes | Tenant ID from list_tenants. |
| `charge_type` | string | yes | Charge type name from list_charge_types. |
| `amount` | string | yes | Decimal amount, e.g. 75.00. |
| `date` | date | no | Transaction date. Default: today. |
| `comment` | string | no | Shown on the ledger line. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "rent-manager_post_charge",
    "arguments": {
      "tenant_id": "10482",
      "charge_type": "Late Fee",
      "amount": "50.00",
      "date": "2026-10-06",
      "comment": "October rent paid after the 5th"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "transaction_id": "884213",
    "tenant_id": "10482",
    "unit": "4B",
    "charge_type": "Late Fee",
    "amount": "50.00",
    "date": "2026-10-06",
    "previous_balance": "1200.00",
    "new_balance": "1250.00"
  },
  "isError": false
}
```

## Send text

MCP tool: `rent-manager_send_text`

Access: write. Confirm: waits for the user's OK before it runs.

Sends one text message to one tenant through Rent Manager texting. The tenant needs a contact set up with SMS enabled. The text goes out under your Rent Manager account. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `tenant_id` | string | yes | Tenant ID from list_tenants. |
| `message` | string | yes | Text message to the tenant. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "rent-manager_send_text",
    "arguments": {
      "tenant_id": "10482",
      "message": "Hi Jordan, your balance is $1,250: October rent plus the $50 late fee. Reply here if you want to set up a payment date."
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "tenant_id": "10482",
    "to": "Jordan Lee",
    "status": "sent",
    "sent_at": "2026-10-12T09:05:00-04:00"
  },
  "isError": false
}
```
