MCP tools reference

SuiteDash MCP tools

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

MCP server
https://cotlet.dev/mcp/v1
Connects with
Your own SuiteDash account (admin for invoices, payments and the CRM)
Integration page
SuiteDash
SuiteDash Endpoints
Endpoint Access Description
suitedash_find_contact read Contacts and companies by name or email, with role, company and custom fields.
suitedash_list_projects read Projects with client, status, Project Leader, start and estimated completion dates.
suitedash_list_tasks read Tasks with assignee, due date, priority, status and project.
suitedash_list_invoices read Invoices with number, client, title, total, amount paid, due date and status.
suitedash_get_invoice read Full invoice: line items, discounts, taxes, payments, notes and payment link.
suitedash_list_message_threads read Secure Messaging threads with subject, participants, last message and unread flag.
suitedash_create_contact write New Lead, Prospect or Client in your CRM. No portal invitation is sent.
suitedash_create_project write New project for a client, optionally from a Task Template.
suitedash_add_task write New task in a project or standalone, assigned to a teammate.
suitedash_complete_task write Mark a task as Completed.
suitedash_create_invoice write Invoice for a client from your Office items. Saved as Draft unless you open and send it.
suitedash_record_payment write Record a payment made outside SuiteDash against an open invoice.
suitedash_send_message write New Secure Messaging thread, or a reply in an existing one.
suitedash_share_file write Upload a file to the Sharing Folder of a client.

MCP tool suitedash_find_contact

Searches your CRM by name, company name or email and returns the matches with their UID, role and company. Use the UID as client_id or contact_id in the other tools. Role is Lead, Prospect or Client as in your CRM.

Parameters

Parameters: find_contact
NameTypeDescription
query required string Name, company name or email.
role enum lead, prospect or client. Default: any.

tools/call

JSON-RPC

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

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "contacts": [
      {
        "contact_id": "c7f2a9e1-4b3d-4e8a-9f10-2d6b5a8c3e71",
        "name": "Ana Lopez",
        "email": "ana@acmestudio.example",
        "role": "client",
        "company": "Acme Studio"
      }
    ]
  },
  "isError": false
}

MCP tool suitedash_list_projects

Lists projects, optionally for one client. Archived projects are left out unless you ask. Use project_id in add_task and list_tasks.

Parameters

Parameters: list_projects
NameTypeDescription
client_id string Only projects of this contact or company.
include_archived boolean Include archived projects. Default: false.

tools/call

JSON-RPC

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

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "projects": [
      {
        "project_id": "p_2201",
        "name": "Website Redesign",
        "client": "Acme Studio",
        "status": "In progress",
        "leader": "you@yourcompany.example",
        "start_date": "2026-10-12",
        "completion_date": "2026-12-01"
      }
    ]
  },
  "isError": false
}

List tasks

read

MCP tool suitedash_list_tasks

Lists tasks across your account, or in one project. Set mine_only to see your My Tasks list. Completed tasks are left out unless you ask.

Parameters

Parameters: list_tasks
NameTypeDescription
project_id string Only tasks in this project.
mine_only boolean Only tasks assigned to you (My Tasks). Default: false.
include_completed boolean Include completed tasks. Default: false.

tools/call

JSON-RPC

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

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "tasks": [
      {
        "task_id": "t_8841",
        "title": "Kickoff call",
        "project": "Website Redesign",
        "assigned_to": "you@yourcompany.example",
        "due_date": "2026-10-14",
        "priority": "Normal",
        "status": "Open"
      }
    ]
  },
  "isError": false
}

MCP tool suitedash_list_invoices

Lists invoices from Office, newest first. Filter by status, client or due date to find what is overdue. Total and amount paid are in the invoice currency, so a partial payment shows what is still owed.

Parameters

Parameters: list_invoices
NameTypeDescription
status enum draft, open, partially_paid or paid. Default: open.
client_id string Only invoices of this client.
due_before date Only invoices due before this date.

tools/call

JSON-RPC

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

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "invoices": [
      {
        "invoice_id": "58213",
        "invoice_number": "1042",
        "client": "Acme Studio",
        "title": "Website design, October",
        "total": "900.00",
        "paid": "0.00",
        "currency": "USD",
        "due_date": "2026-10-10",
        "status": "open"
      }
    ]
  },
  "isError": false
}

MCP tool suitedash_get_invoice

Returns one invoice with its line items, payments recorded so far and the payment link your client uses. Read it before record_payment to check what is still owed.

Parameters

Parameters: get_invoice
NameTypeDescription
invoice_id required string Invoice ID from list_invoices.

tools/call

JSON-RPC

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

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "invoice_id": "58213",
    "invoice_number": "1042",
    "status": "open",
    "title": "Website design, October",
    "items": [
      {
        "item": "Design hour",
        "quantity": 10,
        "rate": "90.00",
        "amount": "900.00"
      }
    ],
    "total": "900.00",
    "paid": "0.00",
    "payments": [],
    "currency": "USD",
    "due_date": "2026-10-24",
    "payment_link": "https://yourname.suitedash.com/pay/invoice/58213"
  },
  "isError": false
}

MCP tool suitedash_list_message_threads

Lists Secure Messaging threads in a folder, most recent first, with the last message and an unread flag. The folder is Inbox unless you name another. Use thread_id to reply with send_message.

Parameters

Parameters: list_message_threads
NameTypeDescription
folder string Folder name. Default: Inbox.
unread_only boolean Only threads with unread messages.
limit integer 1 to 50. Default: 20.

tools/call

JSON-RPC

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

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "threads": [
      {
        "thread_id": "th_3a91",
        "subject": "Deadline for the logo files",
        "participants": [
          "Ana Lopez"
        ],
        "last_message": "Can we move the deadline to Friday?",
        "unread": true,
        "updated_at": "2026-10-09T15:40:00Z"
      }
    ]
  },
  "isError": false
}

MCP tool suitedash_create_contact

Adds one contact to your CRM and links it to a company, creating the company if it does not exist. No portal invitation or email goes out, and one edit in SuiteDash undoes it, so this tool runs without asking.

Parameters

Parameters: create_contact
NameTypeDescription
first_name required string First name.
last_name required string Last name.
email required string Email address.
role required enum lead, prospect or client.
company_name string Company to link, created if it does not exist.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "suitedash_create_contact",
    "arguments": {
      "first_name": "first name",
      "last_name": "last name",
      "email": "jane@example.com",
      "role": "lead"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "contact_id": "c7f2a9e1-4b3d-4e8a-9f10-2d6b5a8c3e71",
    "name": "Jane Doe",
    "role": "client",
    "company": "Doe Studio",
    "status": "created"
  },
  "isError": false
}

MCP tool suitedash_create_project

Creates a project for one client. With task_template, the project gets that template's tasks and phases. Nothing is sent to the client, and the project can be archived afterwards, so this tool runs without asking.

Parameters

Parameters: create_project
NameTypeDescription
name required string Project Name.
client_id required string Client UID from find_contact.
task_template string Task Template name; adds its tasks and phases.
start_date date Project Start Date.
completion_date date Estimated Completion Date.
estimated_value string Estimated value, e.g. "2500 USD".

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "suitedash_create_project",
    "arguments": {
      "name": "Jane Doe",
      "client_id": "client_8c41d2"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "project_id": "p_2201",
    "name": "Website Redesign",
    "client_id": "c7f2a9e1-4b3d-4e8a-9f10-2d6b5a8c3e71",
    "status": "created",
    "start_date": "2026-10-12",
    "completion_date": "2026-12-01"
  },
  "isError": false
}

Add task

write

MCP tool suitedash_add_task

Adds a task to a project, or a standalone task when project_id is empty. It is assigned to you unless you give a staff email. Priority uses the names in your account. Runs without asking: the task reaches only your team and complete_task closes it.

Parameters

Parameters: add_task
NameTypeDescription
title required string Task title.
project_id string Project from list_projects. Empty: standalone task.
assigned_to string Staff email. Default: you.
due_date date Due Date.
priority string Priority as named in your account. Default: Normal.
description string Task description.

tools/call

JSON-RPC

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

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "task_id": "t_8841",
    "title": "Kickoff call",
    "project_id": "p_2201",
    "assigned_to": "you@yourcompany.example",
    "due_date": "2026-10-14",
    "status": "created"
  },
  "isError": false
}

MCP tool suitedash_complete_task

Marks one task as Completed. It runs without asking, because it reaches no client and one edit in SuiteDash reopens the task.

Parameters

Parameters: complete_task
NameTypeDescription
task_id required string Task ID from list_tasks.

tools/call

JSON-RPC

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

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "task_id": "t_8841",
    "status": "completed"
  },
  "isError": false
}

Create invoice

write Confirm

MCP tool suitedash_create_invoice

Creates an invoice for one client from items set up in Office, with a due date. The total is the sum of quantity times rate. With status draft nothing is sent. With status open the client can pay it, and notify_client sends the New Invoice notification. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: create_invoice
NameTypeDescription
client_id required string Client UID from find_contact.
title required string Title visible to the client.
items required object List of { item, quantity, rate }. item is an Item from Office settings.
due_date required date Due Date.
status enum draft or open. Default: draft.
notify_client boolean Send the New Invoice notification when open. Default: true.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "suitedash_create_invoice",
    "arguments": {
      "client_id": "c7f2a9e1-4b3d-4e8a-9f10-2d6b5a8c3e71",
      "title": "Website design, October",
      "items": [
        {
          "item": "Design hour",
          "quantity": 10,
          "rate": 90
        }
      ],
      "due_date": "2026-10-24",
      "status": "open",
      "notify_client": true
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "invoice_id": "58213",
    "invoice_number": "1042",
    "status": "open",
    "total": "900.00",
    "currency": "USD",
    "due_date": "2026-10-24",
    "payment_link": "https://yourname.suitedash.com/pay/invoice/58213"
  },
  "isError": false
}

Record payment

write Confirm

MCP tool suitedash_record_payment

Records a manual payment on one invoice, with a Payment Type from your account and an optional note. A partial amount leaves the invoice partially paid. send_confirmation emails the standard payment confirmation to the client. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: record_payment
NameTypeDescription
invoice_id required string Invoice ID from list_invoices.
amount required string Amount paid, e.g. "900.00".
payment_type required string Payment Type as named in your account, e.g. Bank Transfer.
note string Payment note.
send_confirmation boolean Email the payment confirmation. Default: false.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "suitedash_record_payment",
    "arguments": {
      "invoice_id": "58213",
      "amount": "900.00",
      "payment_type": "Bank Transfer",
      "note": "Wire ref INV1042, received 12 Oct",
      "send_confirmation": true
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "invoice_id": "58213",
    "payment_id": "pay_7710",
    "amount": "900.00",
    "payment_type": "Bank Transfer",
    "invoice_status": "paid",
    "confirmation_sent": true
  },
  "isError": false
}

Send message

write Confirm

MCP tool suitedash_send_message

Sends a Secure Messaging message: a reply when thread_id is set, otherwise a new thread to the contacts or staff in to, with a subject. Messages go out under your name. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: send_message
NameTypeDescription
to string[] Contact UIDs or staff emails. Required for a new thread.
thread_id string Reply in this thread from list_message_threads.
subject string Subject of a new thread.
body required string Message text.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "suitedash_send_message",
    "arguments": {
      "thread_id": "th_3a91",
      "body": "Hi Ana, the final logo files are scheduled for Friday 16 Oct. You will find them in your portal."
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "thread_id": "th_3a91",
    "message_id": "msg_5502",
    "status": "sent",
    "sent_at": "2026-10-11T09:05:00+02:00"
  },
  "isError": false
}

Share file

write Confirm

MCP tool suitedash_share_file

Uploads one file from a URL to the dedicated Sharing Folder of one client. With notify, the client is told about the new file. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: share_file
NameTypeDescription
contact_id required string Contact UID from find_contact.
file_url required string Public or signed URL of the file to upload.
notify boolean Notify the contact about the new file. Default: true.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "suitedash_share_file",
    "arguments": {
      "contact_id": "contact_8c41d2",
      "file_url": "https://example.com"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "contact_id": "c7f2a9e1-4b3d-4e8a-9f10-2d6b5a8c3e71",
    "file_name": "acme-logo-final.zip",
    "status": "shared",
    "notified": true
  },
  "isError": false
}