MCP tools reference

Bayut MCP tools

13 tools for Bayut on the Cotlet MCP server. Your agent picks them from tools/list.

MCP server
https://cotlet.dev/mcp/v1
Connects with
Your own Bayut Profolio agent account; you enter the sign-in code yourself
Integration page
Bayut
Bayut Endpoints
Endpoint Access Description
bayut_list_listings read Your listings from Manage Listings with status, quality score and badges, for Bayut or dubizzle.
bayut_get_listing read One listing: details, photos, floor plan, quality score and Checked and TruCheck badges.
bayut_get_listing_insights read Impressions, clicks and leads per listing, with a filter for low performing listings.
bayut_list_leads read Leads from Reports, Leads by channel, with the listing each one asked about.
bayut_get_lead read One lead with the contact details Profolio shows for its channel and the listing asked about.
bayut_export_leads read The Excel file Profolio exports from Reports, Leads, as a download link.
bayut_get_traffic_report read Top locations by impressions and overall listing performance across Bayut and dubizzle.
bayut_get_credits read Your Bayut Credits balance as Manage Listings shows it.
bayut_get_market_insights read Most searched communities and buildings, average rent and sale prices and the areas with the highest ROI.
bayut_get_transactions read Last sold transactions in Dubai from the Dubai Land Department, as in Transaction Insights.
bayut_assign_floor_plan write Link a floor plan from your uploads to a listing, as the floor plan icon does in Profolio.
bayut_request_trucheck write Submit up to 5 photos of a Checked property to request TruCheck validation.
bayut_apply_boost write Apply a Bayut boost (Signature, Hot, Property of the Week) or a dubizzle boost (Refresh, Featured) to a listing.

MCP tool bayut_list_listings

Lists your listings as Manage Listings shows them, for Bayut or for dubizzle. Each item carries the quality score colour, the Checked and TruCheck badges and whether a floor plan is waiting to be assigned. Pages hold up to 100 listings; pass next_cursor back as cursor for the next page.

Parameters

Parameters: list_listings
NameTypeDescription
platform enum bayut or dubizzle. Default: bayut.
limit integer 1 to 100. Default: 25.
cursor string Next page cursor from the previous call.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "bayut_list_listings",
    "arguments": {
      "platform": "bayut",
      "limit": 100
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "listings": [
      {
        "listing_id": "DM-2214",
        "platform": "bayut",
        "title": "2BR in Dubai Marina, marina view",
        "quality_score": "orange",
        "badges": [
          "checked"
        ],
        "floor_plan_waiting": true
      },
      {
        "listing_id": "DM-2290",
        "platform": "bayut",
        "title": "Studio in JLT, furnished",
        "quality_score": "green",
        "badges": [
          "checked"
        ],
        "floor_plan_waiting": false
      }
    ],
    "next_cursor": null
  },
  "isError": false
}

MCP tool bayut_get_listing

Returns one listing with its price, purpose, photos, assigned floor plan, quality score and the badges it has today. Use it to check whether a TruCheck request went through. Read only.

Parameters

Parameters: get_listing
NameTypeDescription
listing_id required string Listing ID or your reference number, from list_listings.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "bayut_get_listing",
    "arguments": {
      "listing_id": "listing_8c41d2"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "listing_id": "DM-2290",
    "platform": "bayut",
    "title": "Studio in JLT, furnished",
    "purpose": "rent",
    "price_aed": 62000,
    "photos": 14,
    "floor_plan": "assigned",
    "quality_score": "green",
    "badges": [
      "checked"
    ]
  },
  "isError": false
}

MCP tool bayut_get_listing_insights

Returns impressions, clicks and leads for each listing, as Listing Insights shows them for Bayut. Low performing means a lower click-through rate than similar listings on Bayut. Filters combine, and the listing ID filter accepts your reference number.

Parameters

Parameters: get_listing_insights
NameTypeDescription
low_performing_only boolean Only listings with a lower click-through rate than similar listings.
location string Community or building name.
status string Listing status as shown in Profolio.
purpose enum sale or rent. Default: both.
category string Property category as shown in Profolio.
reference string Your reference number or listing ID.
user string Only listings of this user.
cursor string Next page cursor from the previous call.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "bayut_get_listing_insights",
    "arguments": {
      "low_performing_only": true,
      "purpose": "rent",
      "location": "Jumeirah Lake Towers"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "listings": [
      {
        "listing_id": "DM-2214",
        "location": "Dubai Marina",
        "purpose": "sale",
        "impressions": 1840,
        "clicks": 21,
        "leads": 1,
        "low_performing": true
      },
      {
        "listing_id": "DM-2290",
        "location": "JLT",
        "purpose": "rent",
        "impressions": 960,
        "clicks": 40,
        "leads": 3,
        "low_performing": false
      }
    ],
    "next_cursor": null
  },
  "isError": false
}

List leads

read

MCP tool bayut_list_leads

Lists leads from all five channels Profolio reports: email, sms, phone, whatsapp and chat. Each lead names the listing of interest and the time it arrived. Pass lead_id to get_lead for the contact details. Pages hold up to 100 leads.

Parameters

Parameters: list_leads
NameTypeDescription
channel enum email, sms, phone, whatsapp or chat. Default: all.
since datetime Only leads received after this time.
listing_id string Only leads for this listing.
limit integer 1 to 100. Default: 50.
cursor string Next page cursor from the previous call.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "bayut_list_leads",
    "arguments": {
      "since": "2026-10-11T04:00:00Z",
      "limit": 100
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "leads": [
      {
        "lead_id": "ld_40a1",
        "channel": "whatsapp",
        "listing_id": "DM-2214",
        "received_at": "2026-10-10T14:22:00Z"
      },
      {
        "lead_id": "ld_40a7",
        "channel": "whatsapp",
        "listing_id": "DM-2290",
        "received_at": "2026-10-10T18:05:00Z"
      }
    ],
    "next_cursor": null
  },
  "isError": false
}

Get lead

read

MCP tool bayut_get_lead

Returns one lead. What it holds depends on the channel: the email address for email leads, the enquiry text for SMS leads, the phone number and the call recording for phone leads, and the message. Read only.

Parameters

Parameters: get_lead
NameTypeDescription
lead_id required string Lead ID from list_leads.

tools/call

JSON-RPC

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

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "lead_id": "ld_40a1",
    "channel": "whatsapp",
    "listing_id": "DM-2214",
    "name": "Sample Buyer",
    "phone": "+971500000000",
    "message": "Is the unit still available for viewing this week?",
    "received_at": "2026-10-10T14:22:00Z"
  },
  "isError": false
}

MCP tool bayut_export_leads

Runs the export option at the top right of Reports, Leads and returns the Excel file as a download link. Pass a channel to export one channel only. Read only: nothing in Profolio changes.

Parameters

Parameters: export_leads
NameTypeDescription
channel enum email, sms, phone, whatsapp or chat. Default: all.

tools/call

JSON-RPC

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

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "channel": "whatsapp",
    "file": "bayut-leads.xlsx",
    "download_url": "https://files.cotlet.example/exports/bayut-leads.xlsx",
    "rows": 2
  },
  "isError": false
}

MCP tool bayut_get_traffic_report

Returns the Traffic report from Reports: the top locations by impressions and the overall performance of your listings, for Bayut and dubizzle. Read only.

Parameters

No parameters.

tools/call

JSON-RPC

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

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "top_locations": [
      {
        "location": "Dubai Marina",
        "impressions": 5210
      },
      {
        "location": "JLT",
        "impressions": 3180
      }
    ],
    "overall": {
      "impressions": 8390,
      "clicks": 144,
      "leads": 11
    }
  },
  "isError": false
}

MCP tool bayut_get_credits

Returns the Bayut Credits balance shown in Manage Listings. Read only.

Parameters

No parameters.

tools/call

JSON-RPC

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

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "bayut_credits": 120
  },
  "isError": false
}

MCP tool bayut_get_market_insights

Returns Market Insights for Dubai or Abu Dhabi: the most searched communities, sub-communities and buildings, the average rent and sale prices, and the areas with the highest ROI. Read only.

Parameters

Parameters: get_market_insights
NameTypeDescription
city required enum dubai or abu_dhabi.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "bayut_get_market_insights",
    "arguments": {
      "city": "dubai"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "city": "dubai",
    "most_searched": [
      {
        "community": "Dubai Marina",
        "type": "community"
      },
      {
        "community": "Business Bay",
        "type": "community"
      }
    ],
    "average_prices_aed": {
      "rent": 118000,
      "sale": 1950000
    },
    "highest_roi": [
      {
        "community": "Jumeirah Village Circle",
        "roi_percent": 7.4
      }
    ]
  },
  "isError": false
}

MCP tool bayut_get_transactions

Returns last sold transaction data from the Dubai Land Department, as BayutPro shows it in Transactions. Only agencies registered in Dubai have this section. Filter by location, transaction type, time period, property type and bedrooms. Read only.

Parameters

Parameters: get_transactions
NameTypeDescription
location string Community or building name.
transaction_type string As the Transactions filter offers it.
period string Time period as the Transactions filter offers it.
property_type string e.g. apartment, villa.
bedrooms integer Number of bedrooms.
cursor string Next page cursor from the previous call.

tools/call

JSON-RPC

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

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "transactions": [
      {
        "location": "Dubai Marina",
        "property_type": "apartment",
        "bedrooms": 2,
        "price_aed": 2150000,
        "date": "2026-09-28"
      }
    ],
    "next_cursor": null
  },
  "isError": false
}

Assign floor plan

write Confirm

MCP tool bayut_assign_floor_plan

Assigns a floor plan from the uploads section to one listing, the same step as clicking the floor plan icon in Profolio. The icon turns green once the plan is linked, and Bayut requires a floor plan for a perfect quality score. The floor plan becomes visible on the live listing. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: assign_floor_plan
NameTypeDescription
listing_id required string Listing ID or your reference number, from list_listings.
floor_plan_id required string Floor plan from the uploads section of Profolio.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "bayut_assign_floor_plan",
    "arguments": {
      "listing_id": "DM-2214",
      "floor_plan_id": "fp_3302"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "listing_id": "DM-2214",
    "floor_plan_id": "fp_3302",
    "status": "assigned"
  },
  "isError": false
}

Request TruCheck

write Confirm

MCP tool bayut_request_trucheck

Uploads up to 5 photos of a Checked property and submits them to request TruCheck validation, as the multiple photo upload in BayutPro does. Bayut recommends clear photos that show the unit number and an inside view. Bayut's moderation team reviews the submission, so the call returns "submitted"; check the badge later with get_listing. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: request_trucheck
NameTypeDescription
listing_id required string Listing ID or your reference number, from list_listings.
photo_urls required string[] Up to 5 photo URLs.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "bayut_request_trucheck",
    "arguments": {
      "listing_id": "listing_8c41d2",
      "photo_urls": [
        "https://example.com"
      ]
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "listing_id": "DM-2290",
    "photos": 2,
    "status": "submitted"
  },
  "isError": false
}

Apply boost

write Confirm

MCP tool bayut_apply_boost

Applies one boost product to one listing, as the boost products in Profolio do. Bayut offers Signature, Hot and Property of the Week; dubizzle offers Refresh and Featured. Check get_credits first. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: apply_boost
NameTypeDescription
listing_id required string Listing ID or your reference number, from list_listings.
product required enum signature, hot or property_of_the_week on Bayut; refresh or featured on dubizzle.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "bayut_apply_boost",
    "arguments": {
      "listing_id": "listing_8c41d2",
      "product": "signature"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "listing_id": "DM-2214",
    "platform": "bayut",
    "product": "hot",
    "status": "applied"
  },
  "isError": false
}