Model Context Protocol (MCP)
Unizo offers an MCP server that integrates ticketing platforms with any LLM provider supporting the MCP protocol. This enables your AI agent to manage tickets, analyze support patterns, and automate customer service workflows across Jira, ServiceNow, Zendesk, and other ticketing systems via a single MCP server.
Supported Tools & Use Cases
The following tools are available in the Ticketing MCP Server:
| Tool Name | Description |
|---|---|
ticketing_list_connectors | Get list of available ticketing services |
ticketing_list_integrations | Get integrations for a specific ticketing service |
ticketing_list_organizations | Browse available organizations |
ticketing_get_organization | Retrieve comprehensive organization information |
ticketing_list_collections | Browse collections (projects/boards) |
ticketing_get_collection | Retrieve detailed collection information |
ticketing_list_users | Browse users with pagination |
ticketing_get_user | Retrieve detailed user information |
ticketing_list_tickets | Browse tickets with pagination |
ticketing_get_ticket | Retrieve comprehensive ticket information |
ticketing_create_ticket | Create a new ticket |
ticketing_create_bulk_tickets | Create multiple tickets in bulk |
ticketing_update_ticket | Update an existing ticket |
ticketing_link_tickets | Link two tickets together |
ticketing_list_comments | Browse ticket comments |
ticketing_get_comment | Retrieve detailed comment information |
ticketing_create_comment | Create a new comment |
ticketing_list_attachments | Browse ticket attachments |
ticketing_get_attachment | Retrieve attachment information |
ticketing_create_attachment | Upload a new attachment |
ticketing_list_labels | Browse ticket labels |
ticketing_create_label | Create a new label |
Tool Reference
Service Discovery Tools
ticketing_list_connectors
Get list of available ticketing services
Parameters:
None
Returns:
List of available ticketing services (e.g., Jira, GitHub, GitLab)
Example Response:
[
{"name": "jira"},
{"name": "github"},
{"name": "gitlab"}
]
ticketing_list_integrations
Get integrations for a specific ticketing service
Parameters:
connector(string, required): Name of the service (e.g., "jira", "github", "gitlab")
Returns: List of integrations available for the specified service
Example Response:
[
{
"id": "integration-123",
"name": "Company Jira"
},
{
"id": "integration-456",
"name": "GitHub Projects"
}
]
Organization Management Tools
ticketing_list_organizations
Browse available organizations
Parameters:
integration_id(string, required): Unique identifier for the integration (UUID format)
Returns: List of organizations
Example Response:
[
{
"id": "org-123",
"name": "Engineering Team",
"description": "Main engineering organization",
"login": "eng-team",
"targetUrl": "https://api.example.com/orgs/org-123",
"avatarUrl": "https://example.com/avatars/org-123.png",
"changeLog": {
"createdDateTime": "2024-01-15T10:30:00Z",
"lastUpdatedDateTime": "2024-09-02T08:00:00Z"
}
}
]
ticketing_get_organization
Get detailed information about a specific organization
Parameters:
integration_id(string, required): Unique identifier for the integration (UUID format)organization_id(string, required): Unique identifier of the organization
Returns: Comprehensive organization information
Example Response:
{
"status": "success",
"message": "Organization retrieved successfully",
"organization": {
"id": "org-123",
"name": "Engineering Team",
"description": "Main engineering organization",
"login": "eng-team",
"targetUrl": "https://api.example.com/orgs/org-123",
"avatarUrl": "https://example.com/avatars/org-123.png",
"changeLog": {
"createdDateTime": "2024-01-15T10:30:00Z",
"lastUpdatedDateTime": "2024-09-02T08:00:00Z"
}
}
}
Collection Management Tools
ticketing_list_collections
Browse collections (projects, sprints, epics, teams)
Parameters:
integration_id(string, required): Unique identifier for the integration (UUID format)organization_id(string, required): Unique identifier of the organization
Returns: List of collections
Example Response:
[
{
"id": "collection-123",
"name": "Mobile App Project",
"description": "iOS and Android mobile application development",
"key": "MAP",
"owner": "Engineering Team",
"type": "Project",
"status": "Active",
"accessLevel": false,
"targetUrl": "https://jira.company.com/projects/MAP",
"members": [
{
"id": "user-123",
"firstName": "John",
"lastName": "Doe",
"avatar": {
"small": "https://example.com/avatars/user-123-small.png"
}
}
],
"statistics": {
"totalTickets": 145,
"openTickets": 23,
"completedTickets": 122,
"progress": 84.1
},
"startDate": "2024-01-01T00:00:00Z",
"endDate": "2024-12-31T23:59:59Z",
"changeLog": {
"createdDateTime": "2024-01-15T10:30:00Z",
"lastUpdatedDateTime": "2024-09-02T08:00:00Z"
}
}
]
ticketing_get_collection
Get detailed information about a specific collection
Parameters:
integration_id(string, required): Unique identifier for the integration (UUID format)organization_id(string, required): Unique identifier of the organizationcollection_id(string, required): Unique identifier of the collection
Returns: Comprehensive collection information
Example Response:
{
"status": "success",
"message": "Collection retrieved successfully",
"collection": {
"id": "collection-123",
"name": "Mobile App Project",
"description": "iOS and Android mobile application development",
"key": "MAP",
"owner": "Engineering Team",
"type": "Project",
"status": "Active",
"accessLevel": false,
"targetUrl": "https://jira.company.com/projects/MAP",
"members": [
{
"id": "user-123",
"firstName": "John",
"lastName": "Doe",
"avatar": {
"small": "https://example.com/avatars/user-123-small.png"
}
}
],
"statistics": {
"totalTickets": 145,
"openTickets": 23,
"completedTickets": 122,
"progress": 84.1
},
"startDate": "2024-01-01T00:00:00Z",
"endDate": "2024-12-31T23:59:59Z",
"metadata": {
"jiraProjectType": "software",
"workflowScheme": "default"
},
"changeLog": {
"createdDateTime": "2024-01-15T10:30:00Z",
"lastUpdatedDateTime": "2024-09-02T08:00:00Z"
}
}
}
User Management Tools
ticketing_list_users
Browse users with pagination and sorting
Parameters:
integration_id(string, required): Unique identifier for the integration (UUID format)offset(integer, optional): Number of items to skip (default: 0)limit(integer, optional): Maximum number of items to return (default: 20, max: 100)sort(string, optional): Sort criteria (e.g., 'username,-createdAt')
Returns: Paginated list of users
Example Response:
{
"status": "success",
"message": "Found 25 users",
"users": [
{
"id": "user-123",
"email": "john.doe@company.com",
"firstName": "John",
"lastName": "Doe",
"username": "jdoe",
"status": "active",
"role": "user",
"lastLogin": "2024-09-10T14:30:00Z",
"createdAt": "2024-01-10T08:00:00Z",
"updatedAt": "2024-09-01T10:00:00Z"
}
],
"pagination": {
"total": 25,
"offset": 0,
"limit": 20
}
}
ticketing_get_user
Get detailed information about a specific user
Parameters:
integration_id(string, required): Unique identifier for the integration (UUID format)user_id(string, required): Unique identifier of the user
Returns: Comprehensive user information
Example Response:
{
"status": "success",
"message": "User retrieved successfully",
"user": {
"id": "user-123",
"email": "john.doe@company.com",
"firstName": "John",
"lastName": "Doe",
"username": "jdoe",
"status": "active",
"role": "user",
"lastLogin": "2024-09-10T14:30:00Z",
"createdAt": "2024-01-10T08:00:00Z",
"updatedAt": "2024-09-01T10:00:00Z"
}
}
Ticket Management Tools
ticketing_list_tickets
Browse tickets with pagination and sorting
Parameters:
integration_id(string, required): Unique identifier for the integration (UUID format)organization_id(string, optional): Unique identifier of the organization (auto-selected if only one exists)collection_id(string, optional): Unique identifier of the collection (auto-selected if only one exists)offset(integer, optional): Number of items to skip (default: 0)limit(integer, optional): Maximum number of items to return (default: 20, max: 100)sort(string, optional): Sort criteria (e.g., 'name,-createdDateTime')
Returns: Paginated list of tickets
Example Response:
{
"status": "success",
"message": "Found 42 tickets in collection",
"tickets": [
{
"id": "ticket-123",
"name": "Implement user authentication",
"type": "feature",
"status": "in_progress",
"description": "Add OAuth 2.0 authentication for user login",
"key": "MAP-123",
"assignees": [
{
"id": "user-123",
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@company.com"
}
],
"targetUrl": "https://jira.company.com/browse/MAP-123",
"changeLog": {
"createdDateTime": "2024-08-01T09:00:00Z",
"lastUpdatedDateTime": "2024-09-10T15:45:00Z"
}
}
],
"pagination": {
"total": 42,
"offset": 0,
"limit": 20
},
"collection_info": {
"integration_id": "integration-123",
"organization_id": "org-123",
"collection_id": "collection-123"
}
}
ticketing_get_ticket
Get detailed information about a specific ticket
Parameters:
integration_id(string, required): Unique identifier for the integration (UUID format)organization_id(string, required): Unique identifier of the organizationcollection_id(string, required): Unique identifier of the collectionticket_id(string, required): Unique identifier of the ticket
Returns: Comprehensive ticket information
Example Response:
{
"status": "success",
"message": "Ticket retrieved successfully",
"ticket": {
"id": "ticket-123",
"name": "Implement user authentication",
"type": "feature",
"status": "in_progress",
"priority": "high",
"description": "Add OAuth 2.0 authentication for user login with support for Google, GitHub, and Microsoft providers",
"key": "MAP-123",
"assignees": [
{
"id": "user-123",
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@company.com"
}
],
"labels": ["authentication", "security", "oauth"],
"dueDate": "2024-09-30T23:59:59Z",
"targetUrl": "https://jira.company.com/browse/MAP-123",
"metadata": {
"storyPoints": "8",
"sprint": "Sprint 23"
},
"changeLog": {
"createdDateTime": "2024-08-01T09:00:00Z",
"lastUpdatedDateTime": "2024-09-10T15:45:00Z"
}
}
}
ticketing_create_ticket
Create a new ticket
Parameters:
integration_id(string, required): Unique identifier for the integration (UUID format)organization_id(string, required): Unique identifier of the organizationcollection_id(string, required): Unique identifier of the collectionname(string, required): Short summary or title of the ticketdescription(string, required): Detailed description of the tickettype(string, required): Type of ticket (Valid values: bug, feature, task, security, enhancement)assignee_ids(array[string], optional): IDs of users to assign to the ticketlabels(array[string], optional): Tags or categories for the ticketpriority(string, optional): Importance level (Valid values: low, medium, high, critical)due_date(string, optional): Target completion date (ISO 8601 format)metadata(object, optional): Additional metadata for the ticket
Returns: Created ticket information
Example Response:
{
"status": "success",
"message": "Ticket created successfully with ID: ticket-789",
"ticket": {
"id": "ticket-789",
"name": "Fix login page responsiveness",
"type": "bug",
"status": "open",
"priority": "high",
"description": "Login page does not display correctly on mobile devices",
"key": "MAP-789",
"assignees": [
{
"id": "user-456",
"firstName": "Jane",
"lastName": "Smith"
}
],
"labels": ["ui", "mobile", "responsive"],
"dueDate": "2024-09-20T23:59:59Z",
"changeLog": {
"createdDateTime": "2024-09-15T10:30:00Z"
}
}
}
ticketing_create_bulk_tickets
Create multiple tickets in bulk
Parameters:
integration_id(string, required): Unique identifier for the integration (UUID format)organization_id(string, required): Unique identifier of the organizationcollection_id(string, required): Unique identifier of the collectiontickets(array[object], required): Array of ticket objects (min: 1, max: 100). Each ticket object should contain: name, description, type, and optional fieldsnotify(boolean, optional): Whether to send notifications (default: false)
Returns: Created tickets information Example Response:
{
"status": "success",
"message": "Successfully created 3 tickets",
"tickets": [
{
"id": "ticket-801",
"name": "Update user profile page",
"type": "task",
"status": "open"
},
{
"id": "ticket-802",
"name": "Add email notifications",
"type": "feature",
"status": "open"
},
{
"id": "ticket-803",
"name": "Fix memory leak in API",
"type": "bug",
"status": "open"
}
]
}
ticketing_update_ticket
Update an existing ticket
Parameters:
integration_id(string, required): Unique identifier for the integration (UUID format)organization_id(string, required): Unique identifier of the organizationcollection_id(string, required): Unique identifier of the collectionticket_id(string, required): Unique identifier of the ticketname(string, optional): New ticket namedescription(string, optional): New descriptionstatus(string, optional): New status (open, closed, in_progress, resolved)priority(string, optional): New priority (low, medium, high, critical)type(string, optional): New typeassignee_ids(array[string], optional): Updated assignee IDslabels(array[string], optional): Updated labelsdue_date(string, optional): Updated due datemetadata(object, optional): Updated metadata
Returns: Updated ticket information
Example Response:
{
"status": "success",
"message": "Ticket updated successfully",
"ticket": {
"id": "ticket-123",
"name": "Implement user authentication",
"status": "resolved",
"priority": "high",
"changeLog": {
"lastUpdatedDateTime": "2024-09-15T12:00:00Z"
}
}
}
ticketing_link_tickets
Link two tickets together
Parameters:
integration_id(string, required): Unique identifier for the integration (UUID format)organization_id(string, required): Unique identifier of the organizationcollection_id(string, required): Unique identifier of the collectionsource_ticket_id(string, required): The ID of the source tickettarget_ticket_id(string, required): The ID of the target ticketlink_type(string, required): The type of relationship (Valid values: blocks, is_blocked_by, relates_to, duplicates, is_duplicated_by, causes, is_caused_by, clones, is_cloned_by, parent, child)comment(string, optional): Optional comment about the link
Returns: Link creation confirmation
Example Response:
{
"status": "success",
"message": "Successfully linked tickets",
"link": {
"sourceTicketId": "ticket-123",
"targetTicketId": "ticket-456",
"linkType": "blocks",
"comment": "This ticket must be completed first",
"createdDateTime": "2024-09-15T13:00:00Z"
}
}
Comment Management Tools
ticketing_list_comments
List all comments for a ticket
Parameters:
integration_id(string, required): Unique identifier for the integration (UUID format)organization_id(string, required): Unique identifier of the organizationcollection_id(string, required): Unique identifier of the collectionticket_id(string, required): Unique identifier of the ticket
Returns: List of comments
Example Response:
{
"status": "success",
"message": "Comments retrieved successfully",
"comments": [
{
"id": "comment-123",
"content": "This feature is working as expected after the latest deployment",
"author": {
"id": "user-123",
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@company.com"
},
"isInternal": false,
"mentions": [],
"changeLog": {
"createdDateTime": "2024-09-12T14:30:00Z",
"lastUpdatedDateTime": "2024-09-12T14:35:00Z"
}
}
],
"pagination": {
"total": 12,
"offset": 0,
"limit": 20
}
}
ticketing_get_comment
Get detailed information about a specific comment
Parameters:
integration_id(string, required): Unique identifier for the integration (UUID format)organization_id(string, required): Unique identifier of the organizationcollection_id(string, required): Unique identifier of the collectionticket_id(string, required): Unique identifier of the ticketcomment_id(string, required): Unique identifier of the comment
Returns: Comprehensive comment information
Example Response:
{
"status": "success",
"message": "Comment retrieved successfully",
"comment": {
"id": "comment-123",
"content": "This feature is working as expected after the latest deployment",
"author": {
"id": "user-123",
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@company.com"
},
"isInternal": false,
"mentions": [
{
"id": "user-456",
"firstName": "Jane",
"lastName": "Smith"
}
],
"attachments": [],
"changeLog": {
"createdDateTime": "2024-09-12T14:30:00Z",
"lastUpdatedDateTime": "2024-09-12T14:35:00Z"
}
}
}
ticketing_create_comment
Create a new comment on a ticket
Parameters:
integration_id(string, required): Unique identifier for the integration (UUID format)organization_id(string, required): Unique identifier of the organizationcollection_id(string, required): Unique identifier of the collectionticket_id(string, required): Unique identifier of the ticketcontent(string, required): The text content of the commentauthor_id(string, optional): ID of the user creating the commentis_internal(boolean, optional): Whether this comment is internal (default: false)mentions(array[string], optional): IDs of users mentioned in the commentattachment_ids(array[string], optional): IDs of attachments associated with the comment
Returns: Created comment information
Example Response:
{
"status": "success",
"message": "Comment created successfully",
"comment": {
"id": "comment-789",
"content": "Looks good! Ready to deploy to production.",
"author": {
"id": "user-123",
"firstName": "John",
"lastName": "Doe"
},
"isInternal": false,
"changeLog": {
"createdDateTime": "2024-09-15T13:00:00Z"
}
}
}
Attachment Management Tools
ticketing_list_attachments
List all attachments for a ticket
Parameters:
integration_id(string, required): Unique identifier for the integration (UUID format)organization_id(string, required): Unique identifier of the organizationcollection_id(string, required): Unique identifier of the collectionticket_id(string, required): Unique identifier of the ticket
Returns: List of attachments
Example Response:
{
"status": "success",
"message": "Attachments retrieved successfully",
"attachments": [
{
"id": "attachment-123",
"fileName": "screenshot.png",
"fileSize": 245760,
"mimeType": "image/png",
"description": "Screenshot of the bug",
"downloadUrl": "https://example.com/attachments/attachment-123",
"uploadedBy": {
"id": "user-123",
"firstName": "John",
"lastName": "Doe"
},
"isPublic": true,
"changeLog": {
"createdDateTime": "2024-09-10T10:00:00Z"
}
}
],
"pagination": {
"total": 3,
"offset": 0,
"limit": 20
}
}
ticketing_get_attachment
Get detailed information about a specific attachment
Parameters:
integration_id(string, required): Unique identifier for the integration (UUID format)organization_id(string, required): Unique identifier of the organizationcollection_id(string, required): Unique identifier of the collectionticket_id(string, required): Unique identifier of the ticketattachment_id(string, required): Unique identifier of the attachment
Returns: Comprehensive attachment information
Example Response:
{
"status": "success",
"message": "Attachment retrieved successfully",
"attachment": {
"id": "attachment-123",
"fileName": "screenshot.png",
"fileSize": 245760,
"mimeType": "image/png",
"description": "Screenshot of the bug on mobile",
"downloadUrl": "https://example.com/attachments/attachment-123",
"uploadedBy": {
"id": "user-123",
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@company.com"
},
"isPublic": true,
"changeLog": {
"createdDateTime": "2024-09-10T10:00:00Z",
"lastUpdatedDateTime": "2024-09-10T10:05:00Z"
}
}
}
ticketing_create_attachment
Upload a new attachment to a ticket
Parameters:
integration_id(string, required): Unique identifier for the integration (UUID format)organization_id(string, required): Unique identifier of the organizationcollection_id(string, required): Unique identifier of the collectionticket_id(string, required): Unique identifier of the ticketfile_data(bytes, required): Binary file datafile_name(string, required): Name of the filemime_type(string, required): MIME type of the filedescription(string, optional): Description of the attachment
Returns: Created attachment information
Example Response:
{
"status": "success",
"message": "Attachment created successfully",
"attachment": {
"id": "attachment-456",
"fileName": "error-log.txt",
"fileSize": 12800,
"mimeType": "text/plain",
"description": "Error logs from production server",
"downloadUrl": "https://example.com/attachments/attachment-456",
"isPublic": true,
"changeLog": {
"createdDateTime": "2024-09-15T14:00:00Z"
}
}
}
Label Management Tools
ticketing_list_labels
List all labels for a ticket
Parameters:
integration_id(string, required): Unique identifier for the integration (UUID format)organization_id(string, required): Unique identifier of the organizationcollection_id(string, required): Unique identifier of the collectionticket_id(string, required): Unique identifier of the ticketoffset(integer, optional): Number of items to skip (default: 0)limit(integer, optional): Maximum number of items to return (default: 20, max: 100)sort(string, optional): Sort criteria (e.g., 'name,-usageCount')
Returns: Paginated list of labels
Example Response:
{
"status": "success",
"message": "Labels retrieved successfully",
"labels": [
{
"id": "label-123",
"name": "bug",
"description": "Software bugs and defects",
"color": "#d73a4a",
"category": "type",
"usageCount": 45,
"changeLog": {
"createdDateTime": "2024-01-15T08:00:00Z",
"lastUpdatedDateTime": "2024-09-01T12:00:00Z"
}
}
],
"pagination": {
"total": 8,
"offset": 0,
"limit": 20
}
}
ticketing_create_label
Create a new label on a ticket
Parameters:
integration_id(string, required): Unique identifier for the integration (UUID format)organization_id(string, required): Unique identifier of the organizationcollection_id(string, required): Unique identifier of the collectionticket_id(string, required): Unique identifier of the ticketname(string, required): Name of the labeldescription(string, optional): Description of what the label representscolor(string, optional): Hex color code (e.g., "#ff0000")category(string, optional): Category grouping for the label
Returns: Created label information
Example Response:
{
"status": "success",
"message": "Label created successfully",
"label": {
"id": "label-456",
"name": "urgent",
"description": "Requires immediate attention",
"color": "#ff0000",
"category": "priority",
"usageCount": 1,
"changeLog": {
"createdDateTime": "2024-09-15T15:00:00Z"
}
}
}