MCP tools reference

Houzz Pro MCP tools

14 tools for Houzz Pro on the Cotlet MCP server. Your agent picks them from tools/list.

MCP server
https://cotlet.dev/mcp/v1
Connects with
Your own Houzz Pro account (Time Management permission to log time for other team members)
Integration page
Houzz Pro
Houzz Pro Endpoints
Endpoint Access Description
houzz-pro_list_leads read Leads with stage, client, location, project type, source, tags and last activity.
houzz-pro_get_lead read Full lead: client contact, address, description, estimated revenue and profit, notes and tasks.
houzz-pro_list_projects read Projects with client, address and status.
houzz-pro_list_tasks read Tasks from the Task Center, sorted by due date, with assignee and status.
houzz-pro_list_estimates read Estimates of a project with title, total and client approval.
houzz-pro_list_invoices read Invoices of a project with code, total, status and payments received.
houzz-pro_create_lead write New lead in your pipeline.
houzz-pro_update_lead_stage write Move a lead to another stage of your pipeline.
houzz-pro_convert_lead_to_project write Turn a won lead into a project; the lead address becomes the project address. Cannot be undone.
houzz-pro_create_task write Task on a project or lead, assigned to a team member, client or sub.
houzz-pro_log_time write Time entry on a project; rate, markup and billable status come from the activity.
houzz-pro_create_estimate write Draft estimate on a project from line items. Nothing reaches the client until you send it.
houzz-pro_create_invoice write Draft invoice from an estimate: the whole document, selected line items or a percentage.
houzz-pro_send_document write Email an estimate or invoice to the client to view, approve or pay online.

List leads

read

MCP tool houzz-pro_list_leads

Lists leads from your pipeline, newest first. Filter by stage, source, tags or a keyword to find the leads you need. Stages are New, Followed Up, Connected, Meeting Scheduled, Proposal/Estimate Sent, Won, or a custom stage you added. Pages hold up to 100 leads; pass next_cursor back as cursor for the next page.

Parameters

Parameters: list_leads
NameTypeDescription
stage string Lead stage, e.g. New, Followed Up, Connected, Meeting Scheduled, Proposal/Estimate Sent, Won, or a custom stage.
query string Keyword search.
lead_source string Only leads from this source.
tags string[] Only leads with these tags.
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": "houzz-pro_list_leads",
    "arguments": {
      "stage": "Proposal/Estimate Sent",
      "limit": 100
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "leads": [
      {
        "lead_id": "lead_20418",
        "lead_name": "Miller Kitchen",
        "stage": "Proposal/Estimate Sent",
        "client_name": "Dana Miller",
        "location": "Austin, TX",
        "project_type": "Kitchen remodel",
        "lead_source": "Website",
        "tags": [
          "Spring"
        ],
        "estimated_revenue": 29500,
        "last_activity": "2026-09-24T15:10:00Z"
      }
    ],
    "next_cursor": null
  },
  "isError": false
}

Get lead

read

MCP tool houzz-pro_get_lead

Returns one lead with the client contact, address, description, the optional estimated revenue, profit and budget, and its open tasks. Use it before following up so your agent sees what is already planned.

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": "houzz-pro_get_lead",
    "arguments": {
      "lead_id": "lead_8c41d2"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "lead_id": "lead_20418",
    "lead_name": "Miller Kitchen",
    "stage": "Proposal/Estimate Sent",
    "client": {
      "name": "Dana Miller",
      "email": "dana@example.com",
      "phone": "+1 555 0100"
    },
    "address": "12 Oak Street, Austin, TX",
    "description": "Full kitchen remodel, new cabinets and counters.",
    "estimated_revenue": 29500,
    "tasks": [
      {
        "task_id": "tsk_5521",
        "title": "Send revised layout",
        "due_date": "2026-10-09",
        "status": "open"
      }
    ]
  },
  "isError": false
}

MCP tool houzz-pro_list_projects

Lists your projects, newest first, with client name and address. Search by project or client name. Use the project_id with the estimate, invoice, task and time tools. Pages hold up to 100 projects.

Parameters

Parameters: list_projects
NameTypeDescription
query string Search by project or client name.
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": "houzz-pro_list_projects",
    "arguments": {}
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "projects": [
      {
        "project_id": "prj_30871",
        "name": "Oak Street Kitchen",
        "client_name": "Dana Miller",
        "address": "12 Oak Street, Austin, TX",
        "status": "active"
      }
    ],
    "next_cursor": null
  },
  "isError": false
}

List tasks

read

MCP tool houzz-pro_list_tasks

Returns tasks as the Task Center shows them, sorted by due date, each with assignee, due date, status and the lead or project it belongs to. Assignees can be team members, clients or subs.

Parameters

Parameters: list_tasks
NameTypeDescription
project_id string Only tasks of this project or lead.
status enum open, completed or all. Default: open.
assignee string Team member, client or sub name.

tools/call

JSON-RPC

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

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "tasks": [
      {
        "task_id": "tsk_5521",
        "title": "Send revised layout",
        "project": "Miller Kitchen",
        "assignee": "Sam Rivera",
        "due_date": "2026-10-09",
        "status": "open"
      }
    ]
  },
  "isError": false
}

MCP tool houzz-pro_list_estimates

Returns the estimates of one project with title, total and whether the client approved, declined or has not answered. Pass estimate_id to create_invoice.

Parameters

Parameters: list_estimates
NameTypeDescription
project_id required string Project ID from list_projects.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "houzz-pro_list_estimates",
    "arguments": {
      "project_id": "project_8c41d2"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "estimates": [
      {
        "estimate_id": "est_48213",
        "title": "Kitchen remodel",
        "subtotal": 29500,
        "currency": "USD",
        "approval": "approved"
      }
    ]
  },
  "isError": false
}

MCP tool houzz-pro_list_invoices

Returns the invoices of one project with invoice code, total, status (for example draft or sent) and payments received. Issued invoices are locked in Houzz Pro.

Parameters

Parameters: list_invoices
NameTypeDescription
project_id required string Project ID from list_projects.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "houzz-pro_list_invoices",
    "arguments": {
      "project_id": "project_8c41d2"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "invoices": [
      {
        "invoice_id": "inv_77105",
        "code": "INV-0012",
        "subtotal": 8850,
        "currency": "USD",
        "status": "draft",
        "paid": 0
      }
    ]
  },
  "isError": false
}

Create lead

write

MCP tool houzz-pro_create_lead

Adds a lead to your pipeline. Lead name and client name are required; everything else is optional. Source can be any in your Lead Sources list. The lead reaches no client and is fixed by hand if wrong, so this tool runs without asking.

Parameters

Parameters: create_lead
NameTypeDescription
lead_name required string Lead name.
client_name required string Client full name.
email string Client email.
phone string Client phone.
address string Lead address.
project_type string Project type.
lead_source string Where the lead came from.
stage string Lead stage. Default: New.
tags string[] Lead tags.
estimated_revenue integer Estimated revenue, whole currency units.
description string Notes about the project.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "houzz-pro_create_lead",
    "arguments": {
      "lead_name": "lead name",
      "client_name": "client name"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "lead_id": "lead_20457",
    "lead_name": "Miller Kitchen",
    "stage": "New",
    "lead_source": "Website",
    "tags": [
      "Spring"
    ],
    "status": "created"
  },
  "isError": false
}

MCP tool houzz-pro_update_lead_stage

Moves a lead to another stage, such as Connected or Won. Reaches no client and is undone by moving the lead back, so it runs without asking.

Parameters

Parameters: update_lead_stage
NameTypeDescription
lead_id required string Lead ID from list_leads.
stage required string Target stage, e.g. Connected or Won.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "houzz-pro_update_lead_stage",
    "arguments": {
      "lead_id": "lead_8c41d2",
      "stage": "stage"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "lead_id": "lead_20418",
    "stage": "Won",
    "status": "updated"
  },
  "isError": false
}

Convert lead to project

write Confirm

MCP tool houzz-pro_convert_lead_to_project

Converts a lead to a project and carries the lead address over as the project address. Estimated start date and estimated revenue are optional. Houzz Pro cannot turn a project back into a lead. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: convert_lead_to_project
NameTypeDescription
lead_id required string Lead ID from list_leads.
estimated_start date Estimated start date.
estimated_revenue integer Estimated revenue, whole currency units.

tools/call

JSON-RPC

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

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "project_id": "prj_30871",
    "name": "Miller Kitchen",
    "address": "12 Oak Street, Austin, TX",
    "estimated_start": "2026-11-03",
    "status": "converted"
  },
  "isError": false
}

Create task

write

MCP tool houzz-pro_create_task

Creates a task on a lead or project and assigns it to a team member, client or sub; it then shows in the Task Center. Tasks for clients can be private or shared; this tool creates tasks for your team and subs, so nothing reaches a client. Runs without asking.

Parameters

Parameters: create_task
NameTypeDescription
title required string Task title.
project_id string Project or lead the task belongs to.
assignee string Team member or sub name.
due_date date Due date.
description string Task details.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "houzz-pro_create_task",
    "arguments": {
      "title": "title"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "task_id": "tsk_5530",
    "title": "Follow up on the Miller kitchen estimate",
    "project_id": "lead_20418",
    "assignee": "Sam Rivera",
    "due_date": "2026-10-14",
    "status": "open"
  },
  "isError": false
}

Log time

write

MCP tool houzz-pro_log_time

Adds a time entry to a project. The activity sets rate, markup and taxable or billable status. By default the entry is yours; logging for another team member needs the Time Management permission. If time approval is on, the entry waits for approval. Entries linked to an issued invoice cannot be changed. Reaches no client, so it runs without asking.

Parameters

Parameters: log_time
NameTypeDescription
project_id required string Project ID from list_projects.
activity required string Activity name from your Time Management list.
date required date Day worked.
hours required string Time worked, e.g. 6 or 1.5.
team_member string Who worked. Default: you. Needs Time Management permission.
description string Notes.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "houzz-pro_log_time",
    "arguments": {
      "project_id": "project_8c41d2",
      "activity": "activity",
      "date": "2026-10-01",
      "hours": "hours"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "entry_id": "te_9042",
    "project_id": "prj_30871",
    "activity": "Site Supervision",
    "date": "2026-10-11",
    "hours": 6,
    "status": "logged"
  },
  "isError": false
}

MCP tool houzz-pro_create_estimate

Creates a draft estimate on a project from line items, each with description, quantity, unit price and a taxable flag. The draft stays in Houzz Pro until send_document emails it to the client, so this tool runs without asking.

Parameters

Parameters: create_estimate
NameTypeDescription
project_id required string Project ID from list_projects.
title string Estimate title.
items required object List of { description, quantity, unit_price, taxable }.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "houzz-pro_create_estimate",
    "arguments": {
      "project_id": "project_8c41d2",
      "items": "items"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "estimate_id": "est_48213",
    "project_id": "prj_30871",
    "title": "Kitchen remodel",
    "status": "draft",
    "subtotal": 29500,
    "currency": "USD",
    "items": 3
  },
  "isError": false
}

MCP tool houzz-pro_create_invoice

Creates a draft invoice from an estimate: the whole estimate, selected line items or a percentage of the total, as progressive invoicing in Houzz Pro does. A code is generated at creation. Nothing reaches the client until send_document, so this tool runs without asking.

Parameters

Parameters: create_invoice
NameTypeDescription
estimate_id required string Estimate ID from list_estimates.
percent integer Bill this percentage of the estimate (progressive invoicing).
item_ids string[] Bill only these line items.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "houzz-pro_create_invoice",
    "arguments": {
      "estimate_id": "est_48213",
      "percent": 30
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "invoice_id": "inv_77105",
    "code": "INV-0012",
    "project": "Oak Street Kitchen",
    "status": "draft",
    "subtotal": 8850,
    "currency": "USD"
  },
  "isError": false
}

Send document

write Confirm

MCP tool houzz-pro_send_document

Emails an estimate or invoice to the client, who can open it on a computer, phone or tablet. For invoices, issue_on_send locks the invoice when it is sent. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: send_document
NameTypeDescription
document_id required string Estimate or invoice ID.
message string Email message to the client.
issue_on_send boolean Invoices only: lock the invoice when sent. Default: false.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "houzz-pro_send_document",
    "arguments": {
      "document_id": "document_8c41d2"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "document_id": "inv_77105",
    "type": "invoice",
    "status": "sent",
    "issued": false,
    "sent_to": "dana@example.com"
  },
  "isError": false
}