List contacts
Contacts of your CRM with organization, lifecycle stage and owner; leads too when the Leads module is on.
MCP tool vtiger_read → list_contacts
read
Lists one page of the Contacts list under Main Menu > Essentials > Contacts, or of Essentials > Leads when module is leads. Filter by lifecycle_stage (Lead finds leads that are stored as contacts) or search by name, email or phone. Pass next_cursor back as cursor for the next page. You only see the records your Vtiger role lets you see.
Parameters
| Name | Type | Description |
|---|---|---|
| module enum | enum | contacts (default) or leads, for CRMs where the Leads module is enabled. |
| lifecycle_stage string | string | Only contacts with this Lifecycle Stage, for example Lead. |
| query string | string | Name, email or phone to search for. |
| limit integer | integer | Contacts per page. |
| cursor string | string | Next page cursor from the previous call. |
tools/call
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "vtiger_read",
"arguments": {
"operation": "list_contacts",
"arguments": {}
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"contacts": [
{
"record_id": "1523",
"name": "Dana Whitfield",
"email": "dana@whitfielddental.example",
"phone": "+1 555 0142",
"organization": "Whitfield Dental",
"lifecycle_stage": "Lead",
"assigned_to": "Sam Rivera",
"created_at": "2026-10-21"
},
{
"record_id": "1524",
"name": "Luis Ortega",
"email": "luis@ortegabuilds.example",
"phone": "+1 555 0177",
"organization": "Ortega Builds",
"lifecycle_stage": "Lead",
"assigned_to": "Sam Rivera",
"created_at": "2026-10-21"
}
],
"next_cursor": null
},
"isError": false
}