MCP server
MCP server
The same datasets and QuickBooks actions as tools, for Claude, ChatGPT and any other assistant that speaks the Model Context Protocol.
- Streamable HTTP. Assistants connect with OAuth: you sign in to Clickr when you add it.
- Try it first on a sample builder, with no account:
https://api.clickr.cloud/mcp/playground
Add it to Claude Code
claude mcp add --transport http clickr https://api.clickr.cloud/mcpIn Claude or ChatGPT, add https://api.clickr.cloud/mcp as a custom connector and sign in when asked. The tools act with your access on the account: an assistant only sees the datasets and actions you can use. Step-by-step setup for Claude and ChatGPT
A tool that fails returns its error as the tool's result, with HTTP 200, so a client should read the result rather than the status. The QuickBooks tools start a run and return its id; check it with get_event_status.
Tools
9 tools, as the server lists them.
list_integrations
Reads only
Start here. Lists every integration Clickr supports (QuickBooks, Buildertrend), including ones not yet connected on this account so you can flag them to the user, with the write-action tools and dataset types each one offers. Use list_dataset_types/list_datasets/list_dataset_records to actually read dataset records.
No arguments.
list_dataset_types
Reads only
List every dataset type Clickr can offer (both already configured on this account and available to add). Start here to discover what's possible, then use list_datasets to see what's actually configured, then list_dataset_records to read records. Each entry includes filterableFields (the only field names list_dataset_records will accept filters on for that type) and, where a field's name does not tell you what it holds, fieldNotes explaining it. Read fieldNotes before reporting on a dataset: some fields do not mean what they appear to (on Tasks and Lead activities, isCompleted is not a completion flag).
No arguments.
list_datasets
Reads only
List the datasets configured on this account, with their sync status. Use list_dataset_types first if you need the human-readable label or filterableFields for a recordType. Use the returned datasetId with list_dataset_records to read records. Only datasets with status 'enabled' have complete data.
No arguments.
list_dataset_records
Reads only
List records inside one dataset configured on this account. Get datasetId from list_datasets first. Results are paginated (default 25, max 100 per page): use skip to page through and check hasMore.
datasetIdstringRequiredDataset ID from list_datasets
filtersarray of objectsOptional filters, applied as an AND
fieldstringRequiredField name. Must be one of this dataset's filterableFields (see list_dataset_types)
operatorstringRequiredOne of eq, ne, gt, gte, lt, lte, contains, in
valuestringRequiredFilter value. For operator 'in', pass a comma-separated list.
limitintegerMax records to return (default 25, capped at 100)
skipintegerRecords to skip, for pagination (default 0)
create_quickbooks_project
Makes changes
Create a new project in QuickBooks for a customer. Returns an event ID: use get_event_status to check if it succeeded.
projectNamestringRequiredName of the project
projectCodestringValue for the 'Project ID' field on the QuickBooks project form (your own reference, e.g. a job number). Not the QuickBooks-assigned projectId. Ignored if the account's project form has no Project ID field.
customerNamestringRequiredQuickBooks customer name to assign this project to
statusstringProject status (defaults to in-progress)
One of not-started, in-progress, completed, canceled
startDatestringStart date in MM/DD/YYYY format
endDatestringEnd date in MM/DD/YYYY format
notesstringProject notes or description
update_quickbooks_project
Makes changes
Update an existing QuickBooks project. Identify it by projectId or projectNameIdentifier, then provide the fields to change.
projectIdstringQuickBooks project ID
projectNameIdentifierstringCurrent project name to find it by (requires Velocity plan)
projectNamestringNew name for the project
projectCodestringNew value for the 'Project ID' field on the QuickBooks project form. Not the projectId used to identify the project. Ignored if the account's project form has no Project ID field.
customerNamestringNew customer to assign the project to
statusstringNew project status
One of not-started, in-progress, completed, canceled
startDatestringNew start date in MM/DD/YYYY format
endDatestringNew end date in MM/DD/YYYY format
notesstringNew project notes
get_quickbooks_project
Reads only
Retrieve a QuickBooks project's details by ID or name. Returns an event ID: use get_event_status to get the result once complete.
projectIdstringQuickBooks project ID
projectNamestringProject name to search for
convert_quickbooks_estimate_to_invoice
Makes changes
Convert a QuickBooks estimate into an invoice using its transaction ID. Needs Estimates on the QuickBooks connector. Returns an event ID: use get_event_status to confirm completion.
transactionIdstringRequiredThe QuickBooks transaction ID (txnId) of the estimate to convert
percentagestringRequiredUsed for partial invoicing. E.g. '50' will invoice 50% of the estimate.
amountstringRequiredUsed for partial invoicing. E.g. '500' will invoice $500 of the estimate.
invoiceNumberstringInvoice number to assign to the new invoice
invoiceDatestringInvoice date in MM/DD/YYYY format
dueDatestringInvoice due date in MM/DD/YYYY format
noteToCustomerstringNote to the customer printed on the invoice
memoOnStatementstringInternal memo shown on the account statement
lineItemsarray of objectsOverride line items on the invoice. Each entry targets one invoice line, either by its match or, without one, by its position in the array.
matchobjectNames which invoice line this entry fills, instead of using its position in the array. Both keys are matched exactly, ignoring case, and are combined when both are given. Either every entry carries a match or none do. Prefer it: a progress invoice only carries over the estimate lines that still have an unbilled balance, so array positions do not line up with the estimate once part of it has been invoiced.
productOrServicestringProduct or service name of the line to fill
descriptionstringDescription of the line to fill
productOrServicestringProduct or service name
descriptionstringLine item description
dueobjectUsed for progressive invoicing in QuickBooks. If line items is provided, and the account has progressive invoicing enabled, we will adjust the due amounts manually per item. Otherwise we'll apply the top-level 'percent' or 'amount' input. If none are provided, we'll invoice the whole estimate
valuestringLine item due amount
unitstringLine item due unit
One of percent, amount
qtystringQuantity
ratestringUnit rate
amountstringLine item total amount
get_event_status
Reads only
Check the status and result of a previously queued operation (create/update/get project). Poll this after queueing an operation.
eventIdstringRequiredThe event ID returned from a create, update, or get operation