Skip to content

JQL Guide

JQL (Jira Query Language) is used by manage_search to find issues. This guide covers the most useful patterns for both CLI and MCP usage.

JQL queries follow the pattern: field operator value

project = "PROJ" AND status = "In Progress"

Use AND, OR, and NOT to combine conditions, and ORDER BY for sorting.

OperatorDescriptionExample
=Exact matchstatus = "Done"
!=Not equalstatus != "Closed"
~Contains textsummary ~ "bug fix"
!~Does not containsummary !~ "test"
INMatch any in liststatus IN ("Open", "In Progress")
NOT INNot in listpriority NOT IN ("Low", "Lowest")
IS EMPTYNull / unsetassignee IS EMPTY
IS NOT EMPTYNot nullassignee IS NOT EMPTY
>, <, >=, <=Comparisoncreated >= "2025-01-01"
FieldDescriptionExample
projectProject keyproject = "PROJ"
statusIssue statusstatus = "In Progress"
assigneeAssigned userassignee = currentUser()
reporterIssue creatorreporter = "jane@example.com"
priorityPriority levelpriority = "High"
type / issuetypeIssue typetype = "Bug"
labelsIssue labelslabels = "frontend"
componentsIssue componentscomponent = "API"
fixVersionFix versionfixVersion = "v2.0.0"
sprintSprint namesprint = "Sprint 42"
sprint in openSprints()Active sprintssprint in openSprints()
createdCreation datecreated >= "-7d"
updatedLast modifiedupdated >= "-24h"
resolvedResolution dateresolved >= startOfMonth()
dueDue datedue <= endOfWeek()
resolutionResolution typeresolution = EMPTY (unresolved)
textFull-text searchtext ~ "database migration"
FunctionDescriptionExample
currentUser()Logged-in userassignee = currentUser()
startOfDay()Start of todaycreated >= startOfDay()
startOfWeek()Start of this weekupdated >= startOfWeek()
startOfMonth()Start of this monthresolved >= startOfMonth()
endOfDay()End of todaydue <= endOfDay()
endOfWeek()End of this weekdue <= endOfWeek()
now()Current timestampupdated >= "-1h"

Use relative date syntax for reusable queries:

SyntaxMeaning
"-1h"1 hour ago
"-7d"7 days ago
"-2w"2 weeks ago
"-1M"1 month ago
assignee = currentUser() AND resolution = EMPTY ORDER BY priority DESC
sprint in openSprints() AND project = "PROJ" ORDER BY rank ASC
type = Bug AND created >= "-7d" ORDER BY created DESC
assignee IS EMPTY AND priority IN ("High", "Highest") AND resolution = EMPTY ORDER BY created ASC
updated >= startOfDay() AND project = "PROJ" ORDER BY updated DESC
due < now() AND resolution = EMPTY ORDER BY due ASC
project IN ("PROJ", "DEVOPS", "INFRA") AND status = "In Progress" ORDER BY updated DESC
text ~ "database migration" ORDER BY relevance DESC
sprint in openSprints() AND status = Done ORDER BY resolutiondate DESC
project = "PROJ" AND fixVersion IS EMPTY AND resolution = EMPTY ORDER BY priority DESC
project = "PROJ" AND type = Bug AND component = "API" ORDER BY priority DESC
status changed TO "Done" AFTER "-7d" ORDER BY updated DESC
Terminal window
jtk issues search 'assignee = currentUser() AND status != Done ORDER BY priority DESC'
{
"action": "jql",
"jql": "project = PROJ AND sprint in openSprints() ORDER BY rank ASC",
"max_results": 50
}