happyfox
What this MCP does
Manages HappyFox support tickets, contacts, replies, private notes, assignments, reporting, and customer-facing or internal knowledge-base articles.
Tools
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['ticket_number', 'staff'], 'properties': {'html': {'type': 'string', 'description': 'Note in HTML.'}, 'tags': {'type': 'string', 'description': 'Tags to set, as a comma-separated string.'}, 'alert': {'type': 'string', 'pattern': '^(s|c|\\d+)$', 'description': "Send a private alert: `s` = all subscribers, `c` = all agents in the ticket's category, or an agent id."}, 'staff': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'The agent adding the note (happyfox_list_staff) id.'}, 'status': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'New status id (happyfox_list_statuses).'}, 'assignee': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1}, {'type': 'null'}], 'description': 'Agent id to assign the ticket to (from happyfox_list_staff); null to unassign.'}, 'due_date': {'type': 'string', 'pattern': '^(\\d{4}-\\d{2}-\\d{2}|\\d{2}\\/\\d{2}\\/\\d{4})$', 'description': 'Due date, yyyy-mm-dd or dd/mm/yyyy.'}, 'priority': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'New priority id (happyfox_list_priorities).'}, 'plaintext': {'type': 'string', 'description': 'Note in plain text.'}, 'time_spent': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': "Minutes to add to the ticket's time spent (some categories require it)."}, 'custom_fields': {'type': 'object', 'description': 'Custom field values keyed "t-cf-<id>". Ticket fields (ids from happyfox_list_ticket_custom_fields); compulsory-on-completion fields are required when closing. Values: text = string, number = number, dropdown = choice id, multiple choice = array of choice ids, date = yyyy-mm-dd.', 'propertyNames': {'type': 'string', 'pattern': '^(t\\-cf\\-)\\d+$'}, 'additionalProperties': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}]}}, 'ticket_number': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'The ticket NUMBER (the `id` field, e.g. 3 for #DC00000003) — not the prefixed display id.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['ticket_number', 'staff'], 'properties': {'cc': {'type': 'string', 'description': 'CC email addresses, as a comma-separated string.'}, 'bcc': {'type': 'string', 'description': 'BCC email addresses, as a comma-separated string.'}, 'html': {'type': 'string', 'description': 'Reply in HTML.'}, 'tags': {'type': 'string', 'description': 'Tags to set, as a comma-separated string.'}, 'staff': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'The agent making the reply (happyfox_list_staff) id.'}, 'status': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'New status id (happyfox_list_statuses).'}, 'subject': {'type': 'string', 'description': 'Override the subject of the email sent to the contact.'}, 'assignee': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1}, {'type': 'null'}], 'description': 'Agent id to assign the ticket to (from happyfox_list_staff); null to unassign.'}, 'due_date': {'type': 'string', 'pattern': '^(\\d{4}-\\d{2}-\\d{2}|\\d{2}\\/\\d{2}\\/\\d{4})$', 'description': 'Due date, yyyy-mm-dd or dd/mm/yyyy.'}, 'priority': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'New priority id (happyfox_list_priorities).'}, 'plaintext': {'type': 'string', 'description': 'Reply in plain text.'}, 'time_spent': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': "Minutes to add to the ticket's time spent (some categories require it)."}, 'send_survey': {'type': 'boolean', 'description': 'true = send the satisfaction survey.'}, 'custom_fields': {'type': 'object', 'description': 'Custom field values keyed "t-cf-<id>". Ticket fields (ids from happyfox_list_ticket_custom_fields); compulsory-on-completion fields are required when closing. Values: text = string, number = number, dropdown = choice id, multiple choice = array of choice ids, date = yyyy-mm-dd.', 'propertyNames': {'type': 'string', 'pattern': '^(t\\-cf\\-)\\d+$'}, 'additionalProperties': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}]}}, 'ticket_number': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'The ticket NUMBER (the `id` field, e.g. 3 for #DC00000003) — not the prefixed display id.'}, 'update_customer': {'type': 'boolean', 'description': 'true = send the reply to the contact by email. Default false.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['name', 'email'], 'properties': {'name': {'type': 'string', 'minLength': 1, 'description': 'Contact name.'}, 'email': {'type': 'string', 'format': 'email', 'pattern': "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': 'Contact email address.'}, 'phones': {'type': 'array', 'items': {'type': 'object', 'required': ['number'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Existing phone id, to edit that number instead of adding one.'}, 'type': {'enum': ['mo', 'w', 'm', 'h', 'o'], 'type': 'string', 'description': 'mo = mobile, w = work, m = main, h = home, o = other (default).'}, 'number': {'type': 'string', 'minLength': 1, 'description': 'The phone number.'}, 'is_primary': {'type': 'boolean', 'description': 'Make this the primary number.'}}}, 'description': 'Phone numbers.'}, 'custom_fields': {'type': 'object', 'description': 'Custom field values keyed "c-cf-<id>". Contact fields (happyfox_list_contact_custom_fields); required ones must be present. Values: text = string, number = number, dropdown = choice id, multiple choice = array of choice ids, date = yyyy-mm-dd.', 'propertyNames': {'type': 'string', 'pattern': '^(c\\-cf\\-)\\d+$'}, 'additionalProperties': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}]}}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['name', 'email', 'subject', 'category'], 'properties': {'cc': {'type': 'string', 'description': 'CC email addresses, as a comma-separated string.'}, 'bcc': {'type': 'string', 'description': 'BCC email addresses, as a comma-separated string.'}, 'html': {'type': 'string', 'description': 'Message in HTML (text or html is required).'}, 'name': {'type': 'string', 'minLength': 1, 'description': 'Contact name.'}, 'tags': {'type': 'string', 'description': 'Tags, as a comma-separated string.'}, 'text': {'type': 'string', 'description': 'Message in plain text (text or html is required).'}, 'email': {'type': 'string', 'format': 'email', 'pattern': "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': 'Contact email address.'}, 'phone': {'type': 'string', 'description': 'Contact phone number.'}, 'subject': {'type': 'string', 'minLength': 1, 'description': 'Ticket subject.'}, 'assignee': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1}, {'type': 'null'}], 'description': 'Agent id to assign the ticket to (from happyfox_list_staff); null to unassign.'}, 'category': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'The category (happyfox_list_categories; must be public) id.'}, 'due_date': {'type': 'string', 'pattern': '^(\\d{4}-\\d{2}-\\d{2}|\\d{2}\\/\\d{2}\\/\\d{4})$', 'description': 'Due date, yyyy-mm-dd or dd/mm/yyyy.'}, 'priority': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Priority id (happyfox_list_priorities); defaults to the default priority.'}, 'custom_fields': {'type': 'object', 'description': 'Custom field values keyed "t-cf-<id>" / "c-cf-<id>". Ticket (t-cf-) and contact (c-cf-) fields; required ones must be present. Values: text = string, number = number, dropdown = choice id, multiple choice = array of choice ids, date = yyyy-mm-dd.', 'propertyNames': {'type': 'string', 'pattern': '^(t\\-cf\\-|c\\-cf\\-)\\d+$'}, 'additionalProperties': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}]}}, 'visible_only_staff': {'type': 'boolean', 'description': 'true = private ticket, visible to staff only.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contact'], 'properties': {'contact': {'type': 'string', 'minLength': 1, 'description': 'The contact\'s numeric id (e.g. "33") or email address.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contact_group_id'], 'properties': {'contact_group_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'The contact group id.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['report_id'], 'properties': {'report_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'The report (from happyfox_list_reports) id.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['report_id'], 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'size': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Results per page, 1-50 (HappyFox default 10).'}, 'report_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'The report (from happyfox_list_reports) id.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['ticket_number'], 'properties': {'ticket_number': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'The ticket NUMBER (the `id` field, e.g. 3 for #DC00000003) — not the prefixed display id.'}, 'show_cf_changes': {'type': 'boolean', 'description': 'Include the history of custom-field changes in the updates.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'q': {'type': 'string', 'description': 'Search string, `field:value` pairs separated by spaces.'}, 'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'size': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Results per page, 1-50 (HappyFox default 10).'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'internal': {'type': 'boolean', 'description': 'true = internal articles; false/omitted = external articles.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'q': {'type': 'string', 'description': 'HappyFox search/filter string (see description).'}, 'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'size': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Results per page, 1-50 (HappyFox default 10).'}, 'sort': {'enum': ['categorya', 'categoryd', 'subjecta', 'subjectd', 'due', 'statusa', 'statusd', 'prioritya', 'priorityd', 'updated', 'updatea', 'unresponded', 'createa', 'created', 'assigneea', 'assigneed', 'last_modifieda', 'last_modifiedd', 'ticketa', 'ticketd', 'clienta', 'clientd'], 'type': 'string', 'description': 'Sort key, e.g. created (newest first), createa, updated, due, priorityd.'}, 'fields': {'type': 'string', 'description': 'Comma-separated top-level fields to return, e.g. id,display_id,subject,status — keeps responses small.'}, 'status': {'type': 'string', 'description': '`_all` (default), `_pending` (every pending-behaviour status), or a status id from happyfox_list_statuses.'}, 'category': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Only tickets in this category id (happyfox_list_categories).'}, 'minify_response': {'type': 'boolean', 'description': 'If true, return only ticket ids.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contact_id'], 'properties': {'name': {'type': 'string', 'minLength': 1, 'description': 'New name.'}, 'email': {'type': 'string', 'format': 'email', 'pattern': "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': 'New email address.'}, 'contact_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'The contact id.'}, 'custom_fields': {'type': 'object', 'description': 'Custom field values keyed "c-cf-<id>". Contact fields. Values: text = string, number = number, dropdown = choice id, multiple choice = array of choice ids, date = yyyy-mm-dd.', 'propertyNames': {'type': 'string', 'pattern': '^(c\\-cf\\-)\\d+$'}, 'additionalProperties': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}]}}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['ticket_number', 'staff', 'custom_fields'], 'properties': {'staff': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'The agent making the change id.'}, 'custom_fields': {'type': 'object', 'description': 'Custom field values keyed "t-cf-<id>". Ticket fields only. Values: text = string, number = number, dropdown = choice id, multiple choice = array of choice ids, date = yyyy-mm-dd.', 'propertyNames': {'type': 'string', 'pattern': '^(t\\-cf\\-)\\d+$'}, 'additionalProperties': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}]}}, 'ticket_number': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'The ticket NUMBER (the `id` field, e.g. 3 for #DC00000003) — not the prefixed display id.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['ticket_number', 'staff_id'], 'properties': {'add': {'type': 'string', 'description': 'Tags to add, as a comma-separated string.'}, 'remove': {'type': 'string', 'description': 'Tags to remove, as a comma-separated string.'}, 'staff_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'The agent making the change (shown in the ticket history) id.'}, 'ticket_number': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'The ticket NUMBER (the `id` field, e.g. 3 for #DC00000003) — not the prefixed display id.'}}}
Recent tool changes
Similar MCP servers
Tiflux
Manages Tiflux help-desk operations including tickets, replies, internal notes, clients, assignments, SLAs, time entries, contrac…
独行录 / opcmenu
Supports founder and company discovery, collaboration goals and tasks, events and signups, networking, messaging, profiles, produ…
Stable Baseline
Manages company documents, knowledge graphs, whiteboards, projects, plans, tasks, teams, and improvement workflows.
Odichat
Manages WhatsApp, Instagram, and Facebook inboxes with contacts, conversations, agents, automation rules, labels, canned response…
mcp
Manages Nestr workspaces, roles, circles, tensions, governance proposals, comments, daily plans, graph relationships, agents, and…
ALM X++ MCP Server
Supports D365 Finance and Operations development with X++ and AOT search, code analysis, Azure DevOps workflows, telemetry querie…
StackFast FractWin Expert Brain
Provides governed sales, negotiation, strategy, operations, CRM, estimation, artifact, and risk-management workflows with human a…
KaiCalls
Provides AI phone reception, outbound calling campaigns, call transcripts and recordings, lead management, routing, staff alerts,…