Jira transition ids are workflow-specific, so a tool that demanded one up front would be unusable to an agent that cannot see the board — discovering them in the same call is what turns 'move this to review' into a single instruction. Around that sits a competent lifecycle set, with assignment routed through jira_search_users so an accountId is resolved before it is written. Board-level work is the thin part: jira_list_sprints reads a board's sprints for a boardId, and nothing here creates, starts or closes one.
A Jira client covering the issue lifecycle — JQL search, read, create, update, transition, assign, comment, subtasks, worklogs and attachments — with project, sprint and user lookups alongside it.
- Search and read: jira_list_issues takes a jql string and a limit and returns key, summary, status and assignee per issue; jira_get_issue returns one issueKey in full, including description, priority and comments.
- Creating and editing: jira_create_issue takes projectKey, issueType, summary, description, priority and assigneeId and returns the new key; jira_update_issue changes summary, description, priority and assignee on an existing issue; jira_create_subtask creates the same under a parentKey.
- Workflow moves that respect the workflow: jira_transition_issue called with issueKey alone returns the transitions available from the issue's current status, and the same call with a transitionId performs the move.
- People: jira_search_users resolves a name or email to an accountId and displayName, jira_assign_issue sets that accountId or clears it with null, and jira_myself returns the account the session is authenticated as.
- Context lookups: jira_list_projects returns key, name, lead and style for the projects the account can reach, and jira_list_sprints returns a board's sprints for a boardId, filtered by state.
- Bookkeeping on an issue: jira_add_comment posts a body, jira_add_worklog records timeSpent with a comment, and jira_add_attachment uploads a local filePath onto the issue.
A Jira site and an account authenticated against it: jira_myself resolves the current authenticated user, and jira_list_projects returns the projects that account can reach.
One command plus a key — npm install -g jira-pilot, then supply credentials
