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
| 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. |
Find contact
readMCP 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
| Name | Type | Description |
|---|---|---|
| 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
} List projects
readMCP 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
| Name | Type | Description |
|---|---|---|
| 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
readMCP 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
| Name | Type | Description |
|---|---|---|
| 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
} List invoices
readMCP 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
| Name | Type | Description |
|---|---|---|
| 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
} Get invoice
readMCP 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
| Name | Type | Description |
|---|---|---|
| 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
} List message threads
readMCP 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
| Name | Type | Description |
|---|---|---|
| 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
} Create contact
writeMCP 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
| Name | Type | Description |
|---|---|---|
| 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
} Create project
writeMCP 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
| Name | Type | Description |
|---|---|---|
| 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
writeMCP 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
| Name | Type | Description |
|---|---|---|
| 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
} Complete task
writeMCP 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
| Name | Type | Description |
|---|---|---|
| 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
} 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
| Name | Type | Description |
|---|---|---|
| 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
} 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
| Name | Type | Description |
|---|---|---|
| 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
} 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
| Name | Type | Description |
|---|---|---|
| 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
} 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
| Name | Type | Description |
|---|---|---|
| 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
}