# REsimpli MCP tools

> Every REsimpli 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/resimpli

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)

15 tools for REsimpli on the Cotlet MCP server. Your agent picks them from tools/list.

- MCP server: `https://cotlet.dev/mcp/v1`
- Connects with: Your own REsimpli account
- Integration page: https://cotlet.dev/integrations/resimpli-api-mcp-server

## Endpoints

| Endpoint | Access | Description |
|---|---|---|
| `resimpli_list_leads` | read | Leads with property address, pipeline, status, assignee and tags. |
| `resimpli_get_lead` | read | Full lead: contacts, property, status, notes, tags, tasks and recent activity. |
| `resimpli_list_pipelines` | read | Your pipelines and the statuses in each, with IDs, as set up in your account. |
| `resimpli_list_automations` | read | Your lead automations, including drips, with name and whether each is on. |
| `resimpli_get_skip_trace_results` | read | Phone numbers and emails found for a lead. |
| `resimpli_create_lead` | write | New seller lead with contact details and property address. |
| `resimpli_update_lead_status` | write | Move a lead to another status, or to a status in another pipeline. |
| `resimpli_add_lead_note` | write | Add a note to the lead, visible to your team. |
| `resimpli_tag_lead` | write | Add or remove tags on a lead. |
| `resimpli_assign_lead` | write | Assign a lead to a team member. |
| `resimpli_create_task` | write | Set up a task on a lead with a due time and assignee. |
| `resimpli_skip_trace_lead` | write | Run a skip trace on the lead's property owner. |
| `resimpli_enroll_lead_in_automation` | write | Add a lead to an automation; its steps can text, email or mail the seller. |
| `resimpli_remove_lead_from_automation` | write | Stop a running automation for one lead. Steps not yet sent are skipped. |
| `resimpli_send_sms` | write | Text a lead from your REsimpli campaign number. Shows in the lead's inbox. |

## List leads

MCP tool: `resimpli_list_leads`

Access: read.

Lists leads from your account, newest first. Filter by search text, pipeline, status IDs or tag. Pages hold up to 100 leads; raise page for the next one. Use lead_id from each item in the other tools.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `search` | string | no | Name, phone, email or property address. |
| `pipeline_id` | string | no | Pipeline ID from list_pipelines. |
| `status_ids` | string[] | no | Status IDs from list_pipelines. |
| `tag` | string | no | Only leads with this tag. |
| `page` | integer | no | Page number. Default: 1. |
| `limit` | integer | no | 1 to 100. Default: 25. |

### tools/call

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

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "leads": [
      {
        "lead_id": "66f1c2a9e4b0a1d3c8f20417",
        "name": "Dana Whitfield",
        "property_address": "12 Oak St, Columbus, OH 43215",
        "pipeline": "Acquisitions",
        "status": "Contact Made",
        "assignee": "Sam Rivera",
        "tags": [
          "D4D October"
        ]
      }
    ],
    "page": 1,
    "has_more": true
  },
  "isError": false
}
```

## Get lead

MCP tool: `resimpli_get_lead`

Access: read.

Returns one lead with contacts, property, current status, notes, tags, open tasks, the automations it is in and recent activity. Use it before changing a lead so your agent sees what your team already did.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "resimpli_get_lead",
    "arguments": {
      "lead_id": "lead_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "lead_id": "66f1c2a9e4b0a1d3c8f20417",
    "name": "Dana Whitfield",
    "phones": [
      "6145550142"
    ],
    "property_address": "12 Oak St, Columbus, OH 43215",
    "pipeline": "Acquisitions",
    "status": "Contact Made",
    "assignee": {
      "user_id": "u_41",
      "name": "Sam Rivera"
    },
    "tags": [
      "D4D October"
    ],
    "notes": [
      {
        "text": "Open to an offer this week.",
        "created_at": "2026-10-08T15:10:00-04:00"
      }
    ],
    "tasks": [],
    "automations": []
  },
  "isError": false
}
```

## List pipelines

MCP tool: `resimpli_list_pipelines`

Access: read.

Returns your pipelines in the order set in your account, each with its statuses in order. Names and IDs are yours, not defaults. Use the IDs in list_leads and update_lead_status.

### Parameters

No parameters.

### tools/call

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

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "pipelines": [
      {
        "pipeline_id": "pl_acq",
        "name": "Acquisitions",
        "statuses": [
          {
            "status_id": "64a0d5b2c91e7f0012ab33a1",
            "name": "Contact Made"
          },
          {
            "status_id": "64a0d5b2c91e7f0012ab33c6",
            "name": "Under Contract"
          }
        ]
      }
    ]
  },
  "isError": false
}
```

## List automations

MCP tool: `resimpli_list_automations`

Access: read.

Returns the automations in your account with their name and on or off state. Pass automation_id to enroll_lead_in_automation.

### Parameters

No parameters.

### tools/call

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

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "automations": [
      {
        "automation_id": "65b7e0a3d2c4f1009e8a1b52",
        "name": "Reactivation",
        "active": true
      }
    ]
  },
  "isError": false
}
```

## Get skip trace results

MCP tool: `resimpli_get_skip_trace_results`

Access: read.

Returns the phone numbers and emails the skip traces on this lead found. A lead with no skip trace returns an empty list. It does not start a skip trace; skip_trace_lead does.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "resimpli_get_skip_trace_results",
    "arguments": {
      "lead_id": "lead_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "lead_id": "66f1c2a9e4b0a1d3c8f20417",
    "results": [
      {
        "phones": [
          "6145550142",
          "6145550177"
        ],
        "emails": [
          "dana.w@example.com"
        ]
      }
    ]
  },
  "isError": false
}
```

## Create lead

MCP tool: `resimpli_create_lead`

Access: write.

Creates a lead and returns its ID and the status it starts in. It reaches no one. It runs without asking by default, and delete the lead in REsimpli to undo it.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `first_name` | string | yes | Seller first name. |
| `last_name` | string | no | Seller last name. |
| `phone` | string | yes | 10-digit phone number. |
| `email` | string | no | Seller email. |
| `property_address` | string | no | Full property address. |
| `marketing_campaign_id` | string | no | Campaign the lead came from. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "resimpli_create_lead",
    "arguments": {
      "first_name": "first name",
      "phone": "phone"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "lead_id": "66f1c2a9e4b0a1d3c8f20499",
    "name": "Dana Whitfield",
    "property_address": "12 Oak St, Columbus, OH 43215",
    "status": "New Lead",
    "created_at": "2026-10-11T09:12:00-04:00"
  },
  "isError": false
}
```

## Update lead status

MCP tool: `resimpli_update_lead_status`

Access: write.

Moves one lead to another status and returns the new and previous status. Pass pipeline_id to move it to a status in another pipeline. It reaches no one directly and runs without asking by default; one more call moves the lead back.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads. |
| `status_id` | string | yes | Status ID from list_pipelines. |
| `pipeline_id` | string | no | Target pipeline, if it changes. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "resimpli_update_lead_status",
    "arguments": {
      "lead_id": "66f1c2a9e4b0a1d3c8f20417",
      "status_id": "64a0d5b2c91e7f0012ab33c6"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "lead_id": "66f1c2a9e4b0a1d3c8f20417",
    "property_address": "12 Oak St, Columbus, OH 43215",
    "pipeline": "Acquisitions",
    "status": "Under Contract",
    "previous_status": "Contact Made",
    "updated_at": "2026-10-11T14:32:05-04:00"
  },
  "isError": false
}
```

## Add lead note

MCP tool: `resimpli_add_lead_note`

Access: write.

Adds a note to the lead's history under your name. Your team sees it; the seller does not. It runs without asking by default.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads. |
| `text` | string | yes | Note text. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "resimpli_add_lead_note",
    "arguments": {
      "lead_id": "lead_8c41d2",
      "text": "text"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "lead_id": "66f1c2a9e4b0a1d3c8f20417",
    "note_id": "n_9d21",
    "text": "Offer accepted at $142,000.",
    "created_at": "2026-10-11T14:33:10-04:00"
  },
  "isError": false
}
```

## Tag lead

MCP tool: `resimpli_tag_lead`

Access: write.

Adds and removes tags on one lead in a single call and returns the lead's tags after the change. It runs without asking by default and one more call reverses it.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads. |
| `add` | string[] | no | Tags to add. |
| `remove` | string[] | no | Tags to remove. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "resimpli_tag_lead",
    "arguments": {
      "lead_id": "lead_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "lead_id": "66f1c2a9e4b0a1d3c8f20499",
    "tags": [
      "D4D October"
    ]
  },
  "isError": false
}
```

## Assign lead

MCP tool: `resimpli_assign_lead`

Access: write.

Assigns the lead to one team member and replaces the current assignee. The call fails if the user_id is not on your team. It runs without asking by default and one more call reassigns it.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads. |
| `user_id` | string | yes | Team member ID from get_lead. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "resimpli_assign_lead",
    "arguments": {
      "lead_id": "lead_8c41d2",
      "user_id": "user_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "lead_id": "66f1c2a9e4b0a1d3c8f20417",
    "assignee": {
      "user_id": "u_41",
      "name": "Sam Rivera"
    }
  },
  "isError": false
}
```

## Create task

MCP tool: `resimpli_create_task`

Access: write.

Creates a task on the lead with a title, due time and assignee, and returns its ID. The due time needs a time zone. The assignee is you unless you name someone else. It runs without asking by default.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads. |
| `title` | string | yes | What to do. |
| `due_at` | datetime | yes | ISO 8601 with time zone. |
| `assignee_id` | string | no | Team member. Default: you. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "resimpli_create_task",
    "arguments": {
      "lead_id": "lead_8c41d2",
      "title": "title",
      "due_at": "2026-10-01T09:00:00Z"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "task_id": "t_5530",
    "lead_id": "66f1c2a9e4b0a1d3c8f20417",
    "title": "Call back about 12 Oak St",
    "due_at": "2026-10-12T10:00:00-04:00",
    "assignee": "You"
  },
  "isError": false
}
```

## Skip trace lead

MCP tool: `resimpli_skip_trace_lead`

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

Starts a skip trace for the lead in your REsimpli account and returns once it is queued; read the outcome with get_skip_trace_results. REsimpli's own skip tracing pricing applies. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "resimpli_skip_trace_lead",
    "arguments": {
      "lead_id": "lead_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "lead_id": "66f1c2a9e4b0a1d3c8f20417",
    "status": "queued",
    "requested_at": "2026-10-11T09:20:00-04:00"
  },
  "isError": false
}
```

## Enroll lead in automation

MCP tool: `resimpli_enroll_lead_in_automation`

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

Adds one lead to an automation and returns its state. The automation's steps can text, email or mail the seller on the schedule you set in REsimpli. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads. |
| `automation_id` | string | yes | Automation ID from list_automations. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "resimpli_enroll_lead_in_automation",
    "arguments": {
      "lead_id": "66f1c2a9e4b0a1d3c8f20417",
      "automation_id": "65b7e0a3d2c4f1009e8a1b52"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "lead_id": "66f1c2a9e4b0a1d3c8f20417",
    "automation_id": "65b7e0a3d2c4f1009e8a1b52",
    "status": "enrolled"
  },
  "isError": false
}
```

## Remove lead from automation

MCP tool: `resimpli_remove_lead_from_automation`

Access: write.

Stops the automation for one lead. Steps already sent stay sent; the rest are skipped. It reaches no one, so it runs without asking by default.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads. |
| `automation_id` | string | yes | Automation ID from get_lead. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "resimpli_remove_lead_from_automation",
    "arguments": {
      "lead_id": "lead_8c41d2",
      "automation_id": "automation_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "lead_id": "66f1c2a9e4b0a1d3c8f20417",
    "automation_id": "65b7e0a3d2c4f1009e8a1b52",
    "status": "removed"
  },
  "isError": false
}
```

## Send SMS

MCP tool: `resimpli_send_sms`

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

Sends a text to one lead from your REsimpli number, and the message shows in the lead's conversation. Use to_phone to pick one of the lead's numbers. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads. |
| `body` | string | yes | Message text. |
| `to_phone` | string | no | Which of the lead's numbers. Default: primary. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "resimpli_send_sms",
    "arguments": {
      "lead_id": "lead_8c41d2",
      "body": "body"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "lead_id": "66f1c2a9e4b0a1d3c8f20417",
    "message_id": "sms_7712",
    "to": "6145550142",
    "status": "sent",
    "sent_at": "2026-10-11T09:25:00-04:00"
  },
  "isError": false
}
```
