mirror of
https://github.com/hanzoai/insights.git
synced 2026-11-02 09:24:48 +00:00
Mechanically re-derived: bin/debrand runs over a fresh import of posthog/posthog@fa1a9a60d4 (2026-08-06). The pipeline (.hanzo/workflows), the Dockerfiles and bin/docker* entrypoints, compose files, LLM.md and the squashed initial migration are restored from the shipped tree, same as the previous import. The prune's import-closure guard kept 21 products the new core now imports; dropping them is a refactor now, recorded rather than forced.
228 lines
9.9 KiB
YAML
228 lines
9.9 KiB
YAML
# MCP tool definition — tool entries are scaffolded from the OpenAPI schema.
|
|
# The tool list and operation IDs are kept in sync automatically:
|
|
# pnpm --filter=@hanzo/mcp run scaffold-yaml -- --sync-all
|
|
#
|
|
# To enable a tool, set enabled: true and add required scopes + annotations.
|
|
# All other fields (title, description, enrich_url, etc.) are yours to configure.
|
|
category: Conversations
|
|
feature: conversations
|
|
url_prefix: /support/tickets
|
|
ui_apps: {}
|
|
tools:
|
|
conversations-tickets-ai-feedback-create:
|
|
operation: conversations_tickets_ai_feedback_create
|
|
enabled: false
|
|
conversations-tickets-bulk-update-status-create:
|
|
operation: conversations_tickets_bulk_update_status_create
|
|
enabled: false
|
|
conversations-tickets-bulk-update-tags-create:
|
|
operation: conversations_tickets_bulk_update_tags_create
|
|
enabled: false
|
|
conversations-tickets-compose-create:
|
|
operation: conversations_tickets_compose_create
|
|
enabled: false
|
|
conversations-tickets-destroy:
|
|
operation: conversations_tickets_destroy
|
|
enabled: false
|
|
conversations-tickets-full-update:
|
|
operation: conversations_tickets_update
|
|
enabled: false
|
|
conversations-tickets-list:
|
|
operation: conversations_tickets_list
|
|
enabled: true
|
|
scopes:
|
|
- ticket:read
|
|
annotations:
|
|
readOnly: true
|
|
destructive: false
|
|
idempotent: true
|
|
list: true
|
|
title: List support tickets
|
|
description: >
|
|
List support tickets in the project. Supports filtering by status (new, open, pending, on_hold, resolved),
|
|
priority (low, medium, high, critical), channel_source (widget, email, slack), assignee, tags, SLA state, AI
|
|
triage result, date range, and search. To work with a saved ticket view, pass its short_id as the `view`
|
|
parameter (find it via the list-saved-ticket-views tool); the view's saved filters are applied server-side,
|
|
and any filter parameter passed explicitly overrides the view's value for that dimension. Results are
|
|
paginated and ordered by updated_at descending by default. Returns ticket metadata including status,
|
|
priority, message counts, and timestamps.
|
|
response:
|
|
include:
|
|
- id
|
|
- ticket_number
|
|
- status
|
|
- priority
|
|
- channel_source
|
|
- assignee
|
|
- last_message_text
|
|
- message_count
|
|
- unread_team_count
|
|
- created_at
|
|
- updated_at
|
|
conversations-tickets-messages-retrieve:
|
|
operation: conversations_tickets_messages_list
|
|
enabled: true
|
|
scopes:
|
|
- ticket:read
|
|
annotations:
|
|
readOnly: true
|
|
destructive: false
|
|
idempotent: true
|
|
title: Read support ticket messages
|
|
description: >
|
|
Return a support ticket's message thread, ordered chronologically. The response is paginated (default 50,
|
|
max 200 per page) — use the limit and offset query params to page through long threads, and read count/next
|
|
from the response envelope. Includes all messages from the customer, team members, and AI, as well as
|
|
private internal notes. Each message contains author_type, author_name, content, and an is_private flag
|
|
indicating internal notes.
|
|
conversations-tickets-notes-destroy:
|
|
operation: conversations_tickets_notes_destroy
|
|
enabled: true
|
|
scopes:
|
|
- ticket:write
|
|
annotations:
|
|
readOnly: false
|
|
destructive: true
|
|
idempotent: true
|
|
title: Delete private note
|
|
description: >
|
|
Soft-delete a private note on a support ticket. Only private notes authored by the calling user can be
|
|
deleted. Customer-facing replies cannot be deleted. Message IDs come from
|
|
conversations-tickets-messages-retrieve. Deleting another user's note or an AI-authored note returns 403
|
|
with error_type not_note_author. Deleting a public reply returns 400 with error_type not_private_note. A
|
|
missing or already-deleted note returns 404 with error_type note_not_found.
|
|
conversations-tickets-notes-partial-update:
|
|
operation: conversations_tickets_notes_partial_update
|
|
enabled: true
|
|
scopes:
|
|
- ticket:write
|
|
annotations:
|
|
readOnly: false
|
|
destructive: false
|
|
idempotent: false
|
|
title: Update private note
|
|
description: >
|
|
Update a private note on a support ticket. Only private notes authored by the calling user can be edited.
|
|
Customer-facing replies cannot be edited. Message IDs come from conversations-tickets-messages-retrieve.
|
|
Editing another user's note or an AI-authored note returns 403 with error_type not_note_author. Editing a
|
|
public reply returns 400 with error_type not_private_note. A missing or deleted note returns 404 with
|
|
error_type note_not_found. Each successful update increments the note's version. Omit rich_content to clear
|
|
previous TipTap JSON so the thread falls back to the markdown message.
|
|
conversations-tickets-reply-create:
|
|
operation: conversations_tickets_reply_create
|
|
enabled: true
|
|
scopes:
|
|
- ticket:write
|
|
annotations:
|
|
readOnly: false
|
|
destructive: false
|
|
idempotent: false
|
|
title: Reply to support ticket
|
|
description: >
|
|
Post a reply or internal note to a support ticket. IMPORTANT: With is_private=false (the default), the reply
|
|
IS DELIVERED to the customer via the ticket's channel (email, Slack, Teams, or GitHub). Set is_private=true
|
|
to store an internal note visible only to team members.
|
|
conversations-tickets-retrieve:
|
|
operation: conversations_tickets_retrieve
|
|
enabled: true
|
|
scopes:
|
|
- ticket:read
|
|
annotations:
|
|
readOnly: true
|
|
destructive: false
|
|
idempotent: true
|
|
enrich_url: '{id}'
|
|
title: Get support ticket
|
|
description: >
|
|
Get a specific support ticket by ID or ticket number. Returns full ticket details including status,
|
|
priority, assignee, message count, channel info, person data, and session context.
|
|
agent_note:
|
|
The Insights Assistant may have investigated this ticket and written self-driving reports into the Inbox. To
|
|
surface them, call inbox-reports-list with source_id set to this ticket's `id` and
|
|
source_product=conversations (add include_all_statuses=true to include dismissed ones). Those reports hold
|
|
the investigation and findings; the ticket's own messages do not.
|
|
response:
|
|
include:
|
|
- id
|
|
- ticket_number
|
|
- status
|
|
- priority
|
|
- channel_source
|
|
- channel_detail
|
|
- assignee
|
|
- last_message_text
|
|
- message_count
|
|
- unread_team_count
|
|
- tags
|
|
- sla_due_at
|
|
- anonymous_traits
|
|
- session_context
|
|
- session_id
|
|
- person
|
|
- email_from
|
|
- email_to
|
|
- email_subject
|
|
- distinct_id
|
|
- created_at
|
|
- updated_at
|
|
conversations-tickets-unread-count-retrieve:
|
|
operation: conversations_tickets_unread_count_retrieve
|
|
enabled: false
|
|
conversations-tickets-update:
|
|
operation: conversations_tickets_partial_update
|
|
enabled: true
|
|
scopes:
|
|
- ticket:write
|
|
annotations:
|
|
readOnly: false
|
|
destructive: false
|
|
idempotent: true
|
|
enrich_url: '{id}'
|
|
title: Update support ticket
|
|
description: >
|
|
Update a support ticket. Can change status (new, open, pending, on_hold, resolved), priority (low, medium,
|
|
high, critical), assignee, SLA deadline, escalation reason, and tags. Assignee should be an object with type
|
|
('user' or 'role') and id, or null to unassign.
|
|
exclude_params:
|
|
- anonymous_traits
|
|
- ai_resolved
|
|
- escalation_reason
|
|
conversations-views-create:
|
|
operation: conversations_views_create
|
|
enabled: false
|
|
conversations-views-destroy:
|
|
operation: conversations_views_destroy
|
|
enabled: false
|
|
conversations-views-list:
|
|
operation: conversations_views_list
|
|
enabled: true
|
|
scopes:
|
|
- ticket:read
|
|
annotations:
|
|
readOnly: true
|
|
destructive: false
|
|
idempotent: true
|
|
list: true
|
|
title: List saved ticket views
|
|
description: >
|
|
List the saved ticket views in the project. Each view is a named, saved set of ticket filters — for example
|
|
the per-team views named "Team <name>". Returns each view's short_id and name; a view opens in the app at
|
|
/support/tickets?view=<short_id>. To get the tickets a view contains, pass its short_id as the `view`
|
|
parameter of the list-support-tickets tool.
|
|
response:
|
|
include:
|
|
- short_id
|
|
- name
|
|
conversations-views-partial-update:
|
|
operation: conversations_views_partial_update
|
|
enabled: false
|
|
conversations-views-retrieve:
|
|
operation: conversations_views_retrieve
|
|
enabled: false
|
|
conversations-zendesk-imports-create:
|
|
operation: conversations_zendesk_imports_create
|
|
enabled: false
|
|
conversations-zendesk-imports-status-retrieve:
|
|
operation: conversations_zendesk_imports_status_retrieve
|
|
enabled: false
|