{"apiVersion":"v1","directorySlug":"ontrack-mcp-c4ba28560e","title":"OnTrack","description":null,"pageUrl":"https://www.mcpbundles.com/skills/ontrack-mcp-c4ba28560e","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.ontrack.co/mcp","hostedMcpUrl":null,"toolCount":19,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"co.ontrack/ontrack-mcp-c4ba28560e","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"me","description":"Get the profile of the OnTrack user the API token belongs to.\nUse this to find out who you are operating as (name, email, role,\ncompany context) or to verify that the API token works.\nTakes no parameters. Requires a read-scope OnTrack API token.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"Get current user","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"me","displayName":"Get current user"},{"name":"get_my_permissions","description":"Get the permissions the API token's user has in their current company\ncontext — everything granted to their role plus any per-user grants.\nThe response is a map of permission name to true; a permission that is\nnot listed is not granted. Permission names are module:action strings\n(e.g. event:view, incident:view_all, task:create).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"module":{"type":"array","items":{"enum":["event","company","user_company","task","task_category","task_list","task_subtask","incident","incident_type","incident_division","incident_zone","source","priority_guide","alert","filter","fuel_type","incident_message_center","mobile_incident_inbox","preset_message","reference_map","scan","department","inventory","inventory_type","inventory_type_category","inventory_zone","point_of_interest","point_of_interest_type","scheduling","user","dashboard","event_contact","resolved_incident_note","shift","vendor","vendor_position","staff","camera_zone","comment","day","event_note","live_video","message","scan_count","cad","cad_type","legal_chat","preset","external_item","map_feature","global_alert","service","messaging","skydio","verkada"],"type":"string"}}},"additionalProperties":false},"title":"Get my permissions","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_my_permissions","displayName":"Get my permissions"},{"name":"get_companies","description":"List the OnTrack companies the API token has access to — the\ncaller's own company plus any subsidiaries their role can see. Use\nthis to resolve a company name to its id before calling tools that\ntake company_id or company_ids (get_events, get_incidents, and the\nanalytics tools), or to enumerate which companies the token can query\nat all. The list is compact (id, name, category) and not paginated.\nPass company_categories to narrow by category (venues, festivals,\nstandard); omit it to list every v","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"company_categories":{"type":"array","items":{"enum":["venues","festivals","standard"],"type":"string"}}},"additionalProperties":false},"title":"List companies","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_companies","displayName":"List companies"},{"name":"get_events","description":"List and search OnTrack events the API token has access to.\nAll filters are optional and combine (AND). Use keyword to search by\nevent name; use status to narrow (upcoming, in_progress, completed,\non_hold). To filter by date, pass both public_start_date and\npublic_end_date — events whose public dates overlap that window are\nreturned. Use this to resolve an event name to its id before calling\nevent-scoped tools such as get_incidents (pass the id as event_id).\nResults are paginated — check paginat","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"page":{"type":"integer","minimum":1},"view":{"enum":["summary","full"],"type":"string"},"order":{"enum":["ASC","DESC"],"type":"string"},"status":{"type":"array","items":{"enum":["upcoming","in_progress","completed","on_hold"],"type":"string"}},"archive":{"type":"boolean"},"keyword":{"type":"string"},"location":{"type":"string"},"page_size":{"type":"integer","maximum":500,"minimum":1},"company_id":{"type":"integer","exclusiveMinimum":0},"count_only":{"type":"boolean"},"venue_name":{"type":"string"},"sort_column":{"enum":["name","short_event_location","venue_name","start_date","time_zone","status","key_genre","totalSubtasks","role_name","company_name","updated_at","public_start_date","public_end_date","id"],"type":"string"},"event_category":{"enum":["venues","festivals","operations_log","city_event","concert_series","venue_365"],"type":"string"},"public_end_date":{"type":"string"},"public_start_date":{"type":"string"},"exclude_demo_events":{"type":"boolean"}},"additionalProperties":false},"title":"List events","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_events","displayName":"List events"},{"name":"get_top_events","description":"Rank OnTrack events by how many incidents they generated — answers\n\"which events are generating the most incidents?\" with the same\nranking the Global Dashboard top-events widget shows for the same\nfilters. Each entry has the event id and name (as in get_events), its\nincident count, and that count as a percentage of all incidents\nmatching the filters. All filters are optional and combine (AND): use\nstart_date/end_date to restrict the range, event_ids/company_ids/\nevent_status to scope which event","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"page":{"type":"integer","minimum":1},"end_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"event_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"page_size":{"type":"integer","maximum":500,"minimum":1},"time_zone":{"type":"string"},"region_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"start_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"company_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"event_status":{"type":"array","items":{"enum":["upcoming","in_progress","completed","on_hold"],"type":"string"}},"incident_status":{"type":"array","items":{"enum":["open","dispatched","dispatched_only","resolved","resolved_only","archived","follow_up","in_route","at_scene","responding","all","eviction_ejection","arrest","hospital_transport","treated_and_released","resolved_note","refused_entry","refused_treatment","detained","evacuation","staff_ejection"],"type":"string"}},"dispatched_status":{"type":"array","items":{"enum":["archived","in_route","at_scene","responding","dispatched_only"],"type":"string"}},"incident_type_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"resolution_status":{"type":"array","items":{"enum":["arrest","eviction_ejection","hospital_transport","treated_and_released","resolved_note","refused_entry","refused_treatment","detained","evacuation","staff_ejection"],"type":"string"}},"company_categories":{"type":"array","items":{"enum":["venues","festivals","standard"],"type":"string"}},"incident_priorities":{"type":"array","items":{"enum":["low","medium","high","critical"],"type":"string"}},"incident_division_ids":{"type":"array","items":{"type":"integer","minimum":0}},"division_not_available":{"type":"boolean"}},"additionalProperties":false},"title":"Get top events by incident count","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_top_events","displayName":"Get top events by incident count"},{"name":"get_event_analytics","description":"Count OnTrack events grouped by company, region, event category,\nstatus, or month — one aggregate call instead of paging through\nget_events. Use this for \"events per venue / per year\", \"events per\nmonth\" and similar reporting questions. Pick the dimension with\ngroup_by:\n- company: one row per company that owns events (pass a parent in\n  company_ids with company_categories [\"venues\"] to get one row per\n  venue sub-company), sorted by event_count desc\n- region: one row per region of the owning com","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["group_by"],"properties":{"end_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"group_by":{"enum":["company","region","category","status","month"],"type":"string"},"event_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"time_zone":{"type":"string"},"date_basis":{"enum":["public_start","public_overlap","created"],"type":"string"},"region_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"start_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"company_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"event_status":{"type":"array","items":{"enum":["upcoming","in_progress","completed","on_hold"],"type":"string"}},"company_categories":{"type":"array","items":{"enum":["venues","festivals","standard"],"type":"string"}}},"additionalProperties":false},"title":"Get event analytics","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_event_analytics","displayName":"Get event analytics"},{"name":"get_incident_types","description":"List the OnTrack incident types of the API token's accessible\ncompanies. Use this to resolve an incident type name to the id that\nget_incidents takes as incident_type_id, or to enumerate the type\ncatalog itself. All filters are optional: company_id/company_ids\nscope to specific companies (a parent company includes its\nsub-companies; resolve names with get_companies first);\nevent_id/event_ids narrow to types associated with those events;\ndisabled=true additionally includes locked/disabled types (","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"disabled":{"type":"boolean"},"event_id":{"type":"integer","exclusiveMinimum":0},"event_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"company_id":{"type":"integer","exclusiveMinimum":0},"company_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"show_core_types":{"type":"boolean"}},"additionalProperties":false},"title":"List incident types","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_incident_types","displayName":"List incident types"},{"name":"get_incidents","description":"List and search OnTrack incidents the API token has access to.\nAll filters are optional and combine (AND). Use keyword to search by\ndescription, locator code, staff name, incident type, or incident id;\nuse event_id/event_ids to scope to one or more events (resolve event\nnames to ids with get_events first); use event_status to filter by the\nstatus of the incident's event without calling get_events (e.g.\nincidents at in_progress events); use status/priorities to narrow.\nId-based filters (incident_","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"page":{"type":"integer","minimum":1},"order":{"enum":["ASC","DESC"],"type":"string"},"status":{"type":"array","items":{"enum":["open","dispatched","dispatched_only","resolved","resolved_only","archived","follow_up","in_route","at_scene","responding","all","eviction_ejection","arrest","hospital_transport","treated_and_released","resolved_note","refused_entry","refused_treatment","detained","evacuation","staff_ejection"],"type":"string"}},"keyword":{"type":"string"},"end_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"},"event_id":{"type":"integer","exclusiveMinimum":0},"event_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"page_size":{"type":"integer","maximum":100,"minimum":1},"company_id":{"type":"integer","exclusiveMinimum":0},"priorities":{"type":"array","items":{"enum":["low","medium","high","critical"],"type":"string"}},"region_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"source_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"start_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"},"company_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"incident_id":{"type":"integer","exclusiveMinimum":0},"sort_column":{"enum":["id","created_at","incident_divisions","incident_type","incident_zone","description","priority","status","users","event_name","legal_changed_at","company_name"],"type":"string"},"source_type":{"enum":["fe","mobile","attendee"],"type":"string"},"all_statuses":{"type":"boolean"},"event_status":{"type":"array","items":{"enum":["upcoming","in_progress","completed","on_hold"],"type":"string"}},"inventory_id":{"type":"integer","exclusiveMinimum":0},"created_by_id":{"type":"integer","exclusiveMinimum":0},"department_id":{"type":"integer","exclusiveMinimum":0},"department_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"location_logged":{"type":"boolean"},"resolved_status":{"type":"array","items":{"enum":["arrest","eviction_ejection","hospital_transport","treated_and_released","resolved_note","refused_entry","refused_treatment","detained","evacuation","staff_ejection"],"type":"string"}},"incident_type_id":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"incident_zone_id":{"type":"array","items":{"type":"integer","minimum":0}},"dispatched_status":{"type":"array","items":{"enum":["archived","in_route","at_scene","responding","dispatched_only"],"type":"string"}},"incident_dispatch":{"enum":["dispatched","not_dispatched"],"type":"string"},"company_categories":{"type":"array","items":{"enum":["venues","festivals","standard"],"type":"string"}},"exclude_all_linked":{"type":"boolean"},"has_image_or_comment":{"type":"array","items":{"enum":["has_image","has_comment","has_both"],"type":"string"}},"dispatched_to_user_id":{"type":"integer","exclusiveMinimum":0},"incident_division_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"division_not_available":{"type":"boolean"}},"additionalProperties":false},"title":"List incidents","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_incidents","displayName":"List incidents"},{"name":"get_incident_counts","description":"Get one event's incident counts grouped by status and priority — the\nsame tallies the OnTrack web app shows above the incident listing.\nUse this instead of paging through get_incidents when only totals are\nneeded (\"how many open incidents does event X have?\"). event_id is\nrequired — resolve event names to ids with get_events first. All\nother filters are optional and combine (AND) to narrow what is\ncounted, with the same semantics as get_incidents. totalCounts breaks\neach status down by priority","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["event_id"],"properties":{"status":{"type":"array","items":{"enum":["open","dispatched","dispatched_only","resolved","resolved_only","archived","follow_up","in_route","at_scene","responding","all","eviction_ejection","arrest","hospital_transport","treated_and_released","resolved_note","refused_entry","refused_treatment","detained","evacuation","staff_ejection"],"type":"string"}},"keyword":{"type":"string"},"end_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"},"event_id":{"type":"integer","exclusiveMinimum":0},"priorities":{"type":"array","items":{"enum":["low","medium","high","critical"],"type":"string"}},"source_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"start_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"},"source_type":{"enum":["fe","mobile","attendee"],"type":"string"},"all_statuses":{"type":"boolean"},"created_by_id":{"type":"integer","exclusiveMinimum":0},"department_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"location_logged":{"type":"boolean"},"resolved_status":{"type":"array","items":{"enum":["arrest","eviction_ejection","hospital_transport","treated_and_released","resolved_note","refused_entry","refused_treatment","detained","evacuation","staff_ejection"],"type":"string"}},"incident_type_id":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"incident_zone_id":{"type":"array","items":{"type":"integer","minimum":0}},"dispatched_status":{"type":"array","items":{"enum":["archived","in_route","at_scene","responding","dispatched_only"],"type":"string"}},"incident_dispatch":{"enum":["dispatched","not_dispatched"],"type":"string"},"has_image_or_comment":{"type":"array","items":{"enum":["has_image","has_comment","has_both"],"type":"string"}},"dispatched_to_user_id":{"type":"integer","exclusiveMinimum":0},"incident_division_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"division_not_available":{"type":"boolean"}},"additionalProperties":false},"title":"Get incident counts","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_incident_counts","displayName":"Get incident counts"},{"name":"get_incident_by_id","description":"Get one incident by id: the full detail record the OnTrack web app\nshows when an incident is opened — status, priority, description,\ntype, zone/location, divisions, dispatched staff, reporter, and\nresolution note. Use this when the user asks about one specific\nincident; use get_incidents to search or list. Both incident_id and\nevent_id are required — get_incidents rows carry both. When the\ntop-level incident_type_lock is true, the caller's account is locked\nto core incident types: report the inc","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["incident_id","event_id"],"properties":{"event_id":{"type":"integer","exclusiveMinimum":0},"incident_id":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":false},"title":"Get incident by id","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_incident_by_id","displayName":"Get incident by id"},{"name":"get_incident_linked_incidents","description":"Get the incidents linked to one incident — related occurrences the\noperations team associated with it (e.g. a fight and the resulting\nmedical response). Rows have the same shape as get_incidents rows.\nBoth incident_id and event_id are required. Pass show_all: true to\nalso include second-level links (incidents linked to the linked\nincidents). Requires a read-scope OnTrack API token.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["incident_id","event_id"],"properties":{"event_id":{"type":"integer","exclusiveMinimum":0},"show_all":{"type":"boolean"},"incident_id":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":false},"title":"Get linked incidents","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_incident_linked_incidents","displayName":"Get linked incidents"},{"name":"get_incident_change_logs","description":"Get one incident's change log — the audit trail of every edit\n(status changes, priority changes, dispatches, description edits, …)\nwith who made it and when. Use it to reconstruct the timeline of an\nincident (\"when was it dispatched and by whom?\"). Both incident_id\nand event_id are required; results are paginated, newest first by\ndefault. change_column: \"status\" narrows to status changes only;\nkeyword searches the formatted log text. Requires a read-scope\nOnTrack API token.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["incident_id","event_id"],"properties":{"page":{"type":"integer","minimum":1},"order":{"enum":["ASC","DESC"],"type":"string"},"keyword":{"type":"string"},"event_id":{"type":"integer","exclusiveMinimum":0},"page_size":{"type":"integer","maximum":500,"minimum":1},"incident_id":{"type":"integer","exclusiveMinimum":0},"sort_column":{"enum":["created_at","editor_name"],"type":"string"},"change_column":{"enum":["status"],"type":"string"}},"additionalProperties":false},"title":"Get incident change logs","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_incident_change_logs","displayName":"Get incident change logs"},{"name":"get_incident_images","description":"Get one incident's attachments — the images and files uploaded to\nit, each with its URL, uploader, and upload time. Only incident_id\nis required. Requires a read-scope OnTrack API token.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["incident_id"],"properties":{"incident_id":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":false},"title":"Get incident images","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_incident_images","displayName":"Get incident images"},{"name":"get_incident_comments","description":"Get one incident's comments — the notes the operations team wrote on\nit, with author and time, newest first. Only incident_id is\nrequired; results are paginated. Requires a read-scope OnTrack API\ntoken.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["incident_id"],"properties":{"page":{"type":"integer","minimum":1},"page_size":{"type":"integer","maximum":500,"minimum":1},"incident_id":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":false},"title":"Get incident comments","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_incident_comments","displayName":"Get incident comments"},{"name":"get_incident_dispatch_logs","description":"Get one incident's dispatch log — every staff member dispatched to\nit, with their role, contact, current status, and scan activity\n(dispatched / in_route / at_scene timestamps), plus who created the\nincident. Only incident_id is required; keyword narrows to staff\nwhose name matches. Requires a read-scope OnTrack API token.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["incident_id"],"properties":{"keyword":{"type":"string"},"incident_id":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":false},"title":"Get incident dispatch logs","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_incident_dispatch_logs","displayName":"Get incident dispatch logs"},{"name":"get_incident_deep_links","description":"Get one incident's deep links — the shareable URLs that open it\ndirectly in the OnTrack apps. Use this when the user wants a link to\nan incident. Only incident_id is required. Requires a read-scope\nOnTrack API token.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["incident_id"],"properties":{"incident_id":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":false},"title":"Get incident deep links","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_incident_deep_links","displayName":"Get incident deep links"},{"name":"get_dashboard_stats","description":"Get the OnTrack Global Dashboard headline numbers in one call: events\nbreakdown by status (Upcoming / In Progress / On Hold / Completed),\nincidents breakdown by status (Open / Dispatched / Follow Up /\nResolved), and summary counts including active, critical, and legal\nincidents. All filters are optional and combine (AND): use\nstart_date/end_date to restrict the range, event_ids/company_ids/\nevent_status to scope which events are counted, and time_zone to\nresolve \"today\" and the 24h change window","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"end_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"event_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"time_zone":{"type":"string"},"region_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"start_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"company_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"event_status":{"type":"array","items":{"enum":["upcoming","in_progress","completed","on_hold"],"type":"string"}},"company_categories":{"type":"array","items":{"enum":["venues","festivals","standard"],"type":"string"}}},"additionalProperties":false},"title":"Get dashboard stats","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_dashboard_stats","displayName":"Get dashboard stats"},{"name":"get_incident_analytics","description":"Get OnTrack incident counts grouped by status, priority, incident\ntype, region, or company — the same numbers the Global Dashboard\ncharts show for the same filters. Pick the dimension with group_by:\n- status: counts keyed by status name (Open, Dispatched Total,\n  Follow Up, Resolved, ...)\n- priority: counts keyed by priority name (Low, Medium, High,\n  Critical)\n- type: list of core incident types with count and percentage of\n  total, sorted by count\n- region: list of regions with per-priority co","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["group_by"],"properties":{"end_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"group_by":{"enum":["status","priority","type","region","company"],"type":"string"},"event_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"time_zone":{"type":"string"},"region_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"start_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"company_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"event_status":{"type":"array","items":{"enum":["upcoming","in_progress","completed","on_hold"],"type":"string"}},"incident_status":{"type":"array","items":{"enum":["open","dispatched","dispatched_only","resolved","resolved_only","archived","follow_up","in_route","at_scene","responding","all","eviction_ejection","arrest","hospital_transport","treated_and_released","resolved_note","refused_entry","refused_treatment","detained","evacuation","staff_ejection"],"type":"string"}},"dispatched_status":{"type":"array","items":{"enum":["archived","in_route","at_scene","responding","dispatched_only"],"type":"string"}},"incident_type_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"resolution_status":{"type":"array","items":{"enum":["arrest","eviction_ejection","hospital_transport","treated_and_released","resolved_note","refused_entry","refused_treatment","detained","evacuation","staff_ejection"],"type":"string"}},"company_categories":{"type":"array","items":{"enum":["venues","festivals","standard"],"type":"string"}},"incident_priorities":{"type":"array","items":{"enum":["low","medium","high","critical"],"type":"string"}},"incident_division_ids":{"type":"array","items":{"type":"integer","minimum":0}},"division_not_available":{"type":"boolean"}},"additionalProperties":false},"title":"Get incident analytics","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_incident_analytics","displayName":"Get incident analytics"},{"name":"get_incidents_over_time","description":"Get OnTrack incident volume as a daily time series — answers trend\nquestions like \"is incident volume going up this week?\" with the same\nnumbers the Global Dashboard over-time graph shows for the same\nfilters. Returns one entry per day covering the requested range (days\nwith no activity are included with zero counts), each with the number\nof incidents logged (incident_count) and event RECORDS CREATED that\nday (events_created_count — by created_at, not by when the event\ntakes place; bulk clones/i","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"end_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"event_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"time_zone":{"type":"string"},"region_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"start_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"company_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"event_status":{"type":"array","items":{"enum":["upcoming","in_progress","completed","on_hold"],"type":"string"}},"incident_status":{"type":"array","items":{"enum":["open","dispatched","dispatched_only","resolved","resolved_only","archived","follow_up","in_route","at_scene","responding","all","eviction_ejection","arrest","hospital_transport","treated_and_released","resolved_note","refused_entry","refused_treatment","detained","evacuation","staff_ejection"],"type":"string"}},"dispatched_status":{"type":"array","items":{"enum":["archived","in_route","at_scene","responding","dispatched_only"],"type":"string"}},"incident_type_ids":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"resolution_status":{"type":"array","items":{"enum":["arrest","eviction_ejection","hospital_transport","treated_and_released","resolved_note","refused_entry","refused_treatment","detained","evacuation","staff_ejection"],"type":"string"}},"company_categories":{"type":"array","items":{"enum":["venues","festivals","standard"],"type":"string"}},"incident_priorities":{"type":"array","items":{"enum":["low","medium","high","critical"],"type":"string"}},"incident_division_ids":{"type":"array","items":{"type":"integer","minimum":0}},"division_not_available":{"type":"boolean"}},"additionalProperties":false},"title":"Get incidents over time","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_incidents_over_time","displayName":"Get incidents over time"}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=OnTrack&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3Aub250cmFjay5jby9tY3AifQ%3D%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22OnTrack%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.ontrack.co%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22OnTrack%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.ontrack.co%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=OnTrack&connectorUrl=https%3A%2F%2Fmcp.ontrack.co%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"OnTrack\" --url \"https://mcp.ontrack.co/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/ontrack-mcp-c4ba28560e","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/ontrack-mcp-c4ba28560e/tools/{tool}","mcpServerUrl":"https://mcp.ontrack.co/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/ontrack-mcp-c4ba28560e?live=1"}