HappyFox MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.16.3 · published by io.usefulapi
Triage HappyFox tickets, contacts and KB articles, run reports, and reply or add private notes.
23 tools: 7 can delete or cancel things and 16 only read.
Scanned Oct 21, 2026
- Deletes or cancels7Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things0Claude Code: ask
- Only reads16Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http happyfox https://happyfox.usefulapi.io/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
23 tools
Deletes or cancels 7Claude Code: deny
happyfox_add_private_noteAdd an internal note (never sent to the contact), optionally alerting agents and changing status, priority, assignee, due date or tags.No findings
Why it is in this group
- The name "happyfox_add_private_note" says "add": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Add an internal note (never sent to the contact), optionally alerting agents and changing status, priority, assignee, due date or tags. HappyFox: POST /api/1.1/json/ticket/<ticket_number>/staff_pvtnote/.
Annotations the server declares
- title: Add a private note to a ticket
- destructiveHint: true
happyfox_add_staff_replyAdd an agent reply to a ticket and/or change its status, priority, assignee, due date or tags.No findings
Why it is in this group
- The name "happyfox_add_staff_reply" says "add": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Add an agent reply to a ticket and/or change its status, priority, assignee, due date or tags. The contact is emailed ONLY if update_customer is true (HappyFox default: false). With no message it just updates properties. Moving to a completed status may require the category's compulsory custom fields. HappyFox: POST /api/1.1/json/ticket/<ticket_number>/staff_update/.
Annotations the server declares
- title: Reply to a ticket as an agent
- destructiveHint: true
happyfox_create_contactCreate a contact.No findings
Why it is in this group
- The name "happyfox_create_contact" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Create a contact. HappyFox treats this as create-or-edit keyed on email: if the email already exists that contact is updated, and any contact custom field NOT passed is reset — use happyfox_update_contact to edit an existing contact. HappyFox: POST /api/1.1/json/users/.
Annotations the server declares
- title: Create a contact
- destructiveHint: true
happyfox_create_ticketOpen a new ticket on behalf of a contact (created if the email is new).No findings
Why it is in this group
- The name "happyfox_create_ticket" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Open a new ticket on behalf of a contact (created if the email is new). Needs a category id (a public category), a subject and a message in `text` or `html`. HappyFox: POST /api/1.1/json/tickets/.
Annotations the server declares
- title: Create a ticket
- destructiveHint: true
happyfox_update_contactEdit an existing contact's name, email or contact custom fields (c-cf-<id>).No findings
Why it is in this group
- The name "happyfox_update_contact" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Edit an existing contact's name, email or contact custom fields (c-cf-<id>). Phone numbers are edited via happyfox_create_contact with the phone id. HappyFox: POST /api/1.1/json/user/<id>/.
Annotations the server declares
- title: Edit a contact
- destructiveHint: true
happyfox_update_ticket_custom_fieldsSet ticket custom-field values (t-cf-<id>, ids from happyfox_list_ticket_custom_fields).No findings
Why it is in this group
- The name "happyfox_update_ticket_custom_fields" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Set ticket custom-field values (t-cf-<id>, ids from happyfox_list_ticket_custom_fields). HappyFox: POST /api/1.1/json/ticket/<ticket_number>/update_custom_fields/.
Annotations the server declares
- title: Edit a ticket's custom fields
- destructiveHint: true
happyfox_update_ticket_tagsAdd and/or remove tags on a ticket without touching anything else.No findings
Why it is in this group
- The name "happyfox_update_ticket_tags" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Add and/or remove tags on a ticket without touching anything else. HappyFox: POST /api/1.1/json/ticket/<ticket_number>/update_tags/.
Annotations the server declares
- title: Add or remove ticket tags
- destructiveHint: true
Only reads 16Claude Code: allow
happyfox_get_contactFetch a contact by id or by email address — phones, contact groups, ticket counts and custom fields.No findings
Why it is in this group
- The name "happyfox_get_contact" says "get": a word for reading.
Description, as the server wrote it Fetch a contact by id or by email address — phones, contact groups, ticket counts and custom fields. HappyFox: GET /api/1.1/json/user/<id or email>/.
Annotations the server declares
- title: Get one contact
- readOnlyHint: true
happyfox_get_contact_groupFetch a contact group and its member contacts.No findings
Why it is in this group
- The name "happyfox_get_contact_group" says "get": a word for reading.
Description, as the server wrote it Fetch a contact group and its member contacts. HappyFox: GET /api/1.1/json/contact_group/<id>/.
Annotations the server declares
- title: Get one contact group
- readOnlyHint: true
happyfox_get_report_summarySummary counts for a saved report: ticket, completed, assigned, pending and unassigned counts.No findings
Why it is in this group
- The name "happyfox_get_report_summary" says "get": a word for reading.
Description, as the server wrote it Summary counts for a saved report: ticket, completed, assigned, pending and unassigned counts. HappyFox: GET /api/1.1/json/report/<id>/.
Annotations the server declares
- title: Get a report summary
- readOnlyHint: true
happyfox_get_report_tabular_dataThe tabular view of a saved report — one row per ticket (display_id, subject, status, assignee, due date), paginated.No findings
Why it is in this group
- The name "happyfox_get_report_tabular_data" says "get": a word for reading.
Description, as the server wrote it The tabular view of a saved report — one row per ticket (display_id, subject, status, assignee, due date), paginated. HappyFox: GET /api/1.1/json/report/<id>/tabulardata/.
Annotations the server declares
- title: Get a report's ticket rows
- readOnlyHint: true
happyfox_get_ticketFetch a ticket with its full conversation: status, priority, category, contact, assignee, custom fields, SLA breaches and every update (messages, private notes, property changes, a…No findings
Why it is in this group
- The name "happyfox_get_ticket" says "get": a word for reading.
Description, as the server wrote it Fetch a ticket with its full conversation: status, priority, category, contact, assignee, custom fields, SLA breaches and every update (messages, private notes, property changes, attachment links that expire in 5 minutes). HappyFox: GET /api/1.1/json/ticket/<ticket_number>/.
Annotations the server declares
- title: Get one ticket
- readOnlyHint: true
happyfox_list_categoriesList ticket categories (queues) with their ids — needed to create a ticket or filter tickets.No findings
Why it is in this group
- The name "happyfox_list_categories" says "list": a word for reading.
Description, as the server wrote it List ticket categories (queues) with their ids — needed to create a ticket or filter tickets. HappyFox: GET /api/1.1/json/categories/.
Annotations the server declares
- title: List categories
- readOnlyHint: true
happyfox_list_contact_custom_fieldsList contact custom fields: id, type, choices and required flag.No findings
Why it is in this group
- The name "happyfox_list_contact_custom_fields" says "list": a word for reading.
Description, as the server wrote it List contact custom fields: id, type, choices and required flag. Use the ids as c-cf-<id>. HappyFox: GET /api/1.1/json/user_custom_fields/.
Annotations the server declares
- title: List contact custom fields
- readOnlyHint: true
happyfox_list_contact_groupsList contact groups (typically customer companies) with their tagged email domains.No findings
Why it is in this group
- The name "happyfox_list_contact_groups" says "list": a word for reading.
Description, as the server wrote it List contact groups (typically customer companies) with their tagged email domains. HappyFox: GET /api/1.1/json/contact_groups/.
Annotations the server declares
- title: List contact groups
- readOnlyHint: true
happyfox_list_contactsList contacts (customers), paginated, or search them.No findings
Why it is in this group
- The name "happyfox_list_contacts" says "list": a word for reading.
Description, as the server wrote it List contacts (customers), paginated, or search them. Search `q` fields: name, email, phone (digits only, no +), updated_since, created_since — e.g. `name:adam email:adam@example.com` (space-separated, all must match). HappyFox: GET /api/1.1/json/users/.
Annotations the server declares
- title: List or search contacts
- readOnlyHint: true
happyfox_list_kb_articlesExport the knowledge base: external (customer-facing) articles by default, or internal (agent-only) articles.No findings
Why it is in this group
- The name "happyfox_list_kb_articles" says "list": a word for reading.
Description, as the server wrote it Export the knowledge base: external (customer-facing) articles by default, or internal (agent-only) articles. HappyFox: GET /api/1.1/json/kb/articles/ or /kb/internal-articles/.
Annotations the server declares
- title: Export knowledge-base articles
- readOnlyHint: true
happyfox_list_prioritiesList ticket priorities with ids — ids used to set a ticket's priority.No findings
Why it is in this group
- The name "happyfox_list_priorities" says "list": a word for reading.
Description, as the server wrote it List ticket priorities with ids — ids used to set a ticket's priority. HappyFox: GET /api/1.1/json/priorities/.
Annotations the server declares
- title: List priorities
- readOnlyHint: true
happyfox_list_reportsList the saved reports (id, name, description) from the Reports module.No findings
Why it is in this group
- The name "happyfox_list_reports" says "list": a word for reading.
Description, as the server wrote it List the saved reports (id, name, description) from the Reports module. HappyFox: GET /api/1.1/json/reports/.
Annotations the server declares
- title: List reports
- readOnlyHint: true
happyfox_list_staffList agents (staff) with their ids, roles, categories and active flag — the `staff` id every reply/note needs, and assignee ids.No findings
Why it is in this group
- The name "happyfox_list_staff" says "list": a word for reading.
Description, as the server wrote it List agents (staff) with their ids, roles, categories and active flag — the `staff` id every reply/note needs, and assignee ids. HappyFox: GET /api/1.1/json/staff/.
Annotations the server declares
- title: List agents
- readOnlyHint: true
happyfox_list_statusesList ticket statuses with ids and behaviour (pending / completed) — ids used to change a ticket's status.No findings
Why it is in this group
- The name "happyfox_list_statuses" says "list": a word for reading.
Description, as the server wrote it List ticket statuses with ids and behaviour (pending / completed) — ids used to change a ticket's status. HappyFox: GET /api/1.1/json/statuses/.
Annotations the server declares
- title: List statuses
- readOnlyHint: true
happyfox_list_ticket_custom_fieldsList ticket custom fields: id, type, choices (with choice ids), required flags and categories.No findings
Why it is in this group
- The name "happyfox_list_ticket_custom_fields" says "list": a word for reading.
Description, as the server wrote it List ticket custom fields: id, type, choices (with choice ids), required flags and categories. Use the ids as t-cf-<id>. HappyFox: GET /api/1.1/json/ticket_custom_fields/.
Annotations the server declares
- title: List ticket custom fields
- readOnlyHint: true
happyfox_list_ticketsList tickets, newest activity first, with optional filters and HappyFox's search syntax.No findings
Why it is in this group
- The name "happyfox_list_tickets" says "list": a word for reading.
Description, as the server wrote it List tickets, newest activity first, with optional filters and HappyFox's search syntax. Paginated (page_info + data). Search `q` examples: `status:"New","In Progress"`, `priority:"High"`, `assignee:none`, `tag:"billing"`, `contact:"jane@example.com"`, `unresponded:true`, `breached:true`, `duedate:overdue`, `created-after:"2026/01/31"`, `last-modified-on-or-after:"2026/09/01"`, `"Custom Field":"value"`. Separate several filters with a space. HappyFox: GET /api/1.1/json/tickets/.
Annotations the server declares
- title: List or search tickets
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.16.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http happyfox https://happyfox.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__happyfox__happyfox_list_tickets",
"mcp__happyfox__happyfox_get_ticket",
"mcp__happyfox__happyfox_list_contacts",
"mcp__happyfox__happyfox_get_contact",
"mcp__happyfox__happyfox_list_contact_groups",
"mcp__happyfox__happyfox_get_contact_group",
"mcp__happyfox__happyfox_list_categories",
"mcp__happyfox__happyfox_list_staff",
"mcp__happyfox__happyfox_list_statuses",
"mcp__happyfox__happyfox_list_priorities",
"mcp__happyfox__happyfox_list_ticket_custom_fields",
"mcp__happyfox__happyfox_list_contact_custom_fields",
"mcp__happyfox__happyfox_list_reports",
"mcp__happyfox__happyfox_get_report_summary",
"mcp__happyfox__happyfox_get_report_tabular_data",
"mcp__happyfox__happyfox_list_kb_articles"
],
"ask": [],
"deny": [
"mcp__happyfox__happyfox_create_ticket",
"mcp__happyfox__happyfox_add_staff_reply",
"mcp__happyfox__happyfox_add_private_note",
"mcp__happyfox__happyfox_update_ticket_tags",
"mcp__happyfox__happyfox_update_ticket_custom_fields",
"mcp__happyfox__happyfox_create_contact",
"mcp__happyfox__happyfox_update_contact"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as happyfox. Review it before you use it.