BlueSuite Developers
MCPTool reference

Tags

BlueSuite MCP tools for tags

See connection and authentication and workflow rules before calling these tools.

Related REST API and behavior.

list_tags

List the tags defined for one kind of record. Call this before tagging something, to find the tag IDs and to avoid creating a duplicate of a tag that already exists.

Parameters

FieldType / accepted valuesRequiredDetails
taggable_type"request", "quote", "job", "invoice", "contact"YesWhich kind of record the tag belongs to. Tags are scoped per type: a "Priority" tag on jobs is a separate tag from a "Priority" tag on contacts, so this is always required.
pageintegerNoPage number (default: 1)
per_pageintegerNoResults per page (default: 25) minimum: 1. maximum: 100.
searchstringNoSearch tags by name

Result

FieldType / accepted valuesRequiredDetails
dataarray of objectYesThe matching records for this page.
paginationobjectNoHow many more pages of results exist. Absent when the API returned an unpaged result.
pagination.pageintegerWhen parent suppliedCurrent page number, 1-based.
pagination.per_pageintegerWhen parent suppliedNumber of results per page.
pagination.total_pagesintegerWhen parent suppliedTotal number of pages available.

create_tag

Create a new tag for one kind of record. Check list_tags first, tags are matched by ID, not name, so creating a second "Urgent" tag splits the records between them.

Parameters

FieldType / accepted valuesRequiredDetails
namestringYesTag name, e.g. "Urgent" or "Needs parts".
taggable_type"request", "quote", "job", "invoice", "contact"YesWhich kind of record the tag belongs to. Tags are scoped per type: a "Priority" tag on jobs is a separate tag from a "Priority" tag on contacts, so this is always required.
descriptionstringNoOptional description of what the tag means.
colorstringNoHex color such as #3b82f6. Defaults to no color if omitted.

Result

FieldType / accepted valuesRequiredDetails
dataobject or nullYesThe affected record, or the result of the operation. Null when nothing matched.

update_tag

Rename a tag, change its color, or edit its description. A tag's record type cannot be changed, create a new tag instead.

Parameters

FieldType / accepted valuesRequiredDetails
idintegerYesTag ID
namestringNoNew tag name
descriptionstringNoNew description
colorstringNoNew hex color, e.g. #ef4444

Result

FieldType / accepted valuesRequiredDetails
dataobject or nullYesThe affected record, or the result of the operation. Null when nothing matched.

delete_tag

Delete a tag. This removes it from every record it is currently applied to.

Parameters

FieldType / accepted valuesRequiredDetails
idintegerYesTag ID

Result

FieldType / accepted valuesRequiredDetails
dataobject or nullYesThe affected record, or the result of the operation. Null when nothing matched.

get_entity_tags

Get the tags currently applied to one record (a job, quote, invoice, request or contact).

Parameters

FieldType / accepted valuesRequiredDetails
taggable_type"request", "quote", "job", "invoice", "contact"YesWhich kind of record the tag belongs to. Tags are scoped per type: a "Priority" tag on jobs is a separate tag from a "Priority" tag on contacts, so this is always required.
taggable_idintegerYesID of the record.

Result

FieldType / accepted valuesRequiredDetails
dataarray of objectYesThe matching records for this page.
paginationobjectNoHow many more pages of results exist. Absent when the API returned an unpaged result.
pagination.pageintegerWhen parent suppliedCurrent page number, 1-based.
pagination.per_pageintegerWhen parent suppliedNumber of results per page.
pagination.total_pagesintegerWhen parent suppliedTotal number of pages available.

set_entity_tags

Set which tags are applied to one record. This REPLACES the record's tags rather than adding to them, so to add a tag you must first call get_entity_tags and send the existing tag IDs along with the new one. Sending an empty list clears all tags from the record.

Parameters

FieldType / accepted valuesRequiredDetails
taggable_type"request", "quote", "job", "invoice", "contact"YesWhich kind of record the tag belongs to. Tags are scoped per type: a "Priority" tag on jobs is a separate tag from a "Priority" tag on contacts, so this is always required.
taggable_idintegerYesID of the record to tag.
tag_idsarray of JSON valueYesThe complete set of tag IDs the record should end up with. Must belong to the same taggable_type. Use list_tags to resolve names to IDs.

Result

FieldType / accepted valuesRequiredDetails
dataarray of objectYesThe matching records for this page.
paginationobjectNoHow many more pages of results exist. Absent when the API returned an unpaged result.
pagination.pageintegerWhen parent suppliedCurrent page number, 1-based.
pagination.per_pageintegerWhen parent suppliedNumber of results per page.
pagination.total_pagesintegerWhen parent suppliedTotal number of pages available.

The downloadable tool schemas include the full input and output contracts. Tables describe schema-level required fields; cross-field rules still apply.

On this page