Jira
Issue tracking. Create, search, and update issues, move them through workflow transitions, comment, and manage projects and sprints.
| Property | Value |
|---|---|
| Slug | jira |
| Definition version | 0.1.0 |
| Base URL | https://api.atlassian.com |
| Auth schemes | oauth2 |
| Action tools | 31 |
| By class | 14 read, 13 write, 4 destructive |
| Triggers | 0 |
| Provider rate limit | not declared, so outbound calls are unpaced |
Measured routing accuracy
65 golden cases replayed through the router over the whole index: measured over corpus ea4f12ad2948 (65 toolkits, 2283 tools indexed and 13 declared uncallable), 31 cases written by hand and 31 cases from the paraphrase pass, plus 3 context cases whose intent names no app and is decided by the session. A case counts as top-1 when its gold tool ranked first and top-8 when it reached the slate at all.
| Measure | Cases | Share |
|---|---|---|
| top-1 | 22/65 | 33.8% |
| top-8 | 48/65 | 73.8% |
The sweep is offline: the reranker is a deterministic identity fake that returns candidates in the order retrieval produced them, so top-1 measures retrieval order rather than a reranked slate. just eval-live measures the same cases through the live reranker.
Authentication
Connect an entity with ConnectionsService.InitiateConnection, naming this toolkit's slug. Credentials stay in the connections vault; callers hold connected-account ids only.
oauth2
| Property | Value |
|---|---|
| Authorization URL | https://auth.atlassian.com/authorize |
| Token URL | https://auth.atlassian.com/oauth/token |
| Default scopes | read:jira-work, write:jira-work, read:jira-user, offline_access |
| Refresh tokens | yes, the refresh daemon renews ahead of expiry |
Tools
31 action tools. The catalog-wide slug is jira.<tool>, which is what search_tools returns and call_tool takes.
jira.create_issue
Open a new issue, ticket, bug, story, or task in a project. Use when the user wants to file, log, or report something in Jira. Requires a project, issue type, and summary; assignee, priority, labels, and a parent (for a subtask) are optional.
Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /ex/jira/{{params.cloud_id}}/rest/api/3/issue.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
assignee | object | no | Assignee object, e.g. {"accountId": "5b10a2..."}. Look up an accountId with search_users. |
assignee.accountId | string | no | |
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
description | object | no | Issue body in Atlassian Document Format (ADF), e.g. {"type":"doc","version":1,"content":[{"type":"paragraph","content": [{"type":"text","text":"..."}]}]}. Omit for no description. |
issue_type | string | yes | Issue type name, e.g. "Bug", "Task", "Story", "Epic". |
labels | array of string | no | Label names to apply. |
parent | object | no | Parent issue object for a subtask, e.g. {"key": "ENG-10"}. |
parent.key | string | no | |
priority | object | no | Priority object, e.g. {"name": "High"}. |
priority.name | string | no | |
project_key | string | yes | Project key the issue belongs to, e.g. "ENG". |
summary | string | yes | One-line issue title. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
id | string | |
key | string | |
self | string |
Also retrieved by: "file a bug in jira", "open a new ticket for this", "log a task in the tracker", "report a problem to the team", "start a new story for this feature".
jira.get_issue
Get one Jira issue's full detail by key or id: summary, description, status, assignee, reporter, priority, labels, and dates. Use when the user names one specific Jira issue by its key. For many issues at once use search_issues instead.
Class read (reads only). No scopes beyond the connection's defaults. Calls GET /ex/jira/{{params.cloud_id}}/rest/api/3/issue/{{params.issue_key}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
fields | string | no | Comma-separated field names to return, e.g. "summary,status,assignee". Omit for the default field set. |
issue_key | string | yes | Issue key or id, e.g. "ENG-42". |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
fields | object | |
fields.assignee | object | |
fields.assignee.accountId | string | |
fields.assignee.displayName | string | |
fields.created | string | |
fields.description | object | |
fields.issuetype | object | |
fields.issuetype.name | string | |
fields.labels | array of string | |
fields.priority | object | |
fields.priority.name | string | |
fields.project | object | |
fields.project.key | string | |
fields.project.name | string | |
fields.reporter | object | |
fields.reporter.accountId | string | |
fields.reporter.displayName | string | |
fields.status | object | |
fields.status.name | string | |
fields.summary | string | |
fields.updated | string | |
id | string | |
key | string | |
self | string |
Also retrieved by: "pull up a jira issue by its key", "what's the status of this ticket", "show me the details on that bug", "look up a specific jira ticket".
jira.update_issue
Edit an existing issue's summary, description, priority, assignee, labels, or parent. Use when the user wants to change, edit, retitle, or relabel a ticket, or hand it to someone else. For moving it to a different workflow status use transition_issue instead.
Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PUT /ex/jira/{{params.cloud_id}}/rest/api/3/issue/{{params.issue_key}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
assignee | object | no | Assignee object, e.g. {"accountId": "5b10a2..."}. |
assignee.accountId | string | no | |
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
description | object | no | New issue body in Atlassian Document Format (ADF). See create_issue for the shape. |
issue_key | string | yes | Issue key or id to edit, e.g. "ENG-42". |
labels | array of string | no | Replaces the issue's full label set. |
parent | object | no | Parent issue object, e.g. {"key": "ENG-10"}. |
parent.key | string | no | |
priority | object | no | Priority object, e.g. {"name": "High"}. |
priority.name | string | no | |
summary | string | no | New one-line title. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
updated | boolean |
Also retrieved by: "change the title on this ticket", "reassign this bug to someone else", "edit the description of this ticket", "retitle that story", "relabel this task", "update the fields on a ticket".
jira.delete_issue
Permanently delete an issue. Use when the user wants to delete, remove, or trash a ticket, bug, story, or task. Fails if the issue has subtasks unless delete_subtasks is true. Irreversible.
Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /ex/jira/{{params.cloud_id}}/rest/api/3/issue/{{params.issue_key}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
delete_subtasks | boolean | no | Also delete the issue's subtasks. Default false. |
issue_key | string | yes | Issue key or id to delete, e.g. "ENG-42". |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
deleted | boolean |
Also retrieved by: "trash this jira ticket", "remove this bug from the jira project for good", "get rid of a jira issue entirely", "wipe this ticket out of jira", "delete one issue from the jira board".
jira.search_issues
Search across all Jira projects using Jira Query Language (JQL), e.g. 'status = "In Progress" ORDER BY updated DESC'. Use for any query spanning more than one issue: by project, status, assignee, label, or text. For one known issue use get_issue.
Class read (reads only). No scopes beyond the connection's defaults. Calls POST /ex/jira/{{params.cloud_id}}/rest/api/3/search/jql.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
fields | array of string | no | Field names to return per issue, e.g. ["summary", "status", "assignee"]. Omit for the default field set. |
jql | string | yes | JQL query, e.g. 'project = ENG AND status = "In Progress" ORDER BY updated DESC'. |
max_results | integer | no | Page size, default 50. |
next_page_token | string | no | Token from a previous response's nextPageToken. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
issues | array of object | |
issues[].fields | object | |
issues[].fields.assignee | object | |
issues[].fields.status | object | |
issues[].fields.summary | string | |
issues[].id | string | |
issues[].key | string | |
nextPageToken | string |
Also retrieved by: "find every open bug assigned to me", "look up tickets by project and status", "run a jql query across the tracker", "what's still outstanding in this project", "filter tickets by label".
jira.assign_issue
Assign an issue to a person, or unassign it. Use when the user wants to assign, reassign, hand off, or take an issue. Pass null to unassign, or "-1" to set the project's default assignee.
Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PUT /ex/jira/{{params.cloud_id}}/rest/api/3/issue/{{params.issue_key}}/assignee.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
account_id | any | yes | Assignee's Atlassian accountId from search_users, "-1" for the project's default assignee, or null to unassign. |
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
issue_key | string | yes | Issue key or id, e.g. "ENG-42". |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
assigned | boolean |
Also retrieved by: "hand this ticket to someone", "give this bug to a teammate", "take this ticket myself", "unassign this task", "put the default assignee back on it".
jira.list_transitions
List the workflow transitions available for an issue right now, e.g. moving it from "To Do" to "In Progress" or "Done". Use before transition_issue to find the transition id for the status the user named.
Class read (reads only). No scopes beyond the connection's defaults. Calls GET /ex/jira/{{params.cloud_id}}/rest/api/3/issue/{{params.issue_key}}/transitions.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
issue_key | string | yes | Issue key or id, e.g. "ENG-42". |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
transitions | array of object | |
transitions[].id | string | |
transitions[].name | string | |
transitions[].to | object | |
transitions[].to.name | string |
Also retrieved by: "what statuses can this ticket move to", "show me the next steps for this ticket", "what workflow moves are available here".
jira.transition_issue
Move an issue to a new workflow status, e.g. mark it done, move it to in progress, resolve it, reopen it, or send it back a step. Use when the user wants to change an issue's state. Requires a transition_id from list_transitions.
Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /ex/jira/{{params.cloud_id}}/rest/api/3/issue/{{params.issue_key}}/transitions.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
fields | object | no | Extra fields to set as part of the transition, e.g. {"resolution": {"name": "Done"}}. Omit when the transition needs no extra fields. |
issue_key | string | yes | Issue key or id, e.g. "ENG-42". |
transition_id | string | yes | Transition id from list_transitions. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
transitioned | boolean |
Also retrieved by: "move this ticket to done", "mark this bug as resolved", "send this story back to in progress", "close out this task", "reopen that ticket", "mark this ticket as done".
jira.list_issue_types
List the issue types available on the site: Bug, Task, Story, Epic, and any custom types, each with whether it is a subtask type. Use to find the exact issue_type name create_issue expects.
Class read (reads only). No scopes beyond the connection's defaults. Calls GET /ex/jira/{{params.cloud_id}}/rest/api/3/issuetype.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
Also retrieved by: "what kinds of tickets can I create", "show me the available issue categories", "list the ticket types on this site".
jira.list_comments
List the comments on an issue, oldest first. Use when the user wants to read the discussion, history, or conversation on a ticket.
Class read (reads only). No scopes beyond the connection's defaults. Calls GET /ex/jira/{{params.cloud_id}}/rest/api/3/issue/{{params.issue_key}}/comment.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
issue_key | string | yes | Issue key or id, e.g. "ENG-42". |
max_results | integer | no | Page size, default 50. |
start_at | integer | no | Offset into the comment list, default 0. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
comments | array of object | |
comments[].author | object | |
comments[].author.displayName | string | |
comments[].body | object | |
comments[].created | string | |
comments[].id | string | |
comments[].updated | string | |
total | integer |
Also retrieved by: "what did people say on this ticket", "read the discussion on this bug", "show the conversation history on this issue", "list every comment on a ticket".
jira.add_comment
Add a new comment to an issue. Use when the user wants to comment, reply, note, or leave an update on a ticket. To change a comment already posted use update_comment.
Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /ex/jira/{{params.cloud_id}}/rest/api/3/issue/{{params.issue_key}}/comment.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
body | object | yes | Comment text in Atlassian Document Format (ADF), e.g. {"type":"doc","version":1,"content":[{"type":"paragraph","content": [{"type":"text","text":"..."}]}]}. |
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
issue_key | string | yes | Issue key or id, e.g. "ENG-42". |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
created | string | |
id | string |
Also retrieved by: "leave a note on this ticket", "reply on this bug with an update", "post a comment for the team", "tell them the fix shipped".
jira.update_comment
Edit the text of a comment already posted on an issue. Use when the user wants to fix, correct, or update something they or someone else wrote on a ticket.
Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PUT /ex/jira/{{params.cloud_id}}/rest/api/3/issue/{{params.issue_key}}/comment/{{params.comment_id}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
body | object | yes | Replacement comment text in Atlassian Document Format (ADF). See add_comment for the shape. |
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
comment_id | string | yes | Comment id from list_comments. |
issue_key | string | yes | Issue key or id, e.g. "ENG-42". |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
id | string | |
updated | string |
Also retrieved by: "fix a typo in my last comment", "correct what I wrote on that ticket", "edit my earlier note".
jira.delete_comment
Permanently delete a comment from an issue. Use when the user wants to delete or remove a comment, not the whole issue. Irreversible.
Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /ex/jira/{{params.cloud_id}}/rest/api/3/issue/{{params.issue_key}}/comment/{{params.comment_id}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
comment_id | string | yes | Comment id to delete, from list_comments. |
issue_key | string | yes | Issue key or id, e.g. "ENG-42". |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
deleted | boolean |
Also retrieved by: "remove that comment", "delete what I posted by mistake", "take down a note on this ticket", "take down something I posted by mistake".
jira.list_projects
List or search projects (workspaces) on the site by name or key. Use when the user wants to see what projects exist or find a project's key.
Class read (reads only). No scopes beyond the connection's defaults. Calls GET /ex/jira/{{params.cloud_id}}/rest/api/3/project/search.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
max_results | integer | no | Page size, default 50. |
query | string | no | Filter by project name or key substring. Omit to list all. |
start_at | integer | no | Offset into the project list, default 0. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
isLast | boolean | |
total | integer | |
values | array of object | |
values[].id | string | |
values[].key | string | |
values[].name | string | |
values[].projectTypeKey | string |
Also retrieved by: "what projects exist in jira", "find the key for a project", "show me every project on the site", "show me every workspace we have".
jira.get_project
Get one project's (workspace's) detail by key or id: name, description, type, and who leads it. Use when the user names a specific project. For the whole list use list_projects.
Class read (reads only). No scopes beyond the connection's defaults. Calls GET /ex/jira/{{params.cloud_id}}/rest/api/3/project/{{params.project_key}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
project_key | string | yes | Project key or id, e.g. "ENG". |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
description | string | |
id | string | |
key | string | |
lead | object | |
lead.accountId | string | |
lead.displayName | string | |
name | string | |
projectTypeKey | string | |
url | string |
Also retrieved by: "tell me about this project", "who leads this project", "pull up project details", "who's running this and what's it about".
jira.create_project
Create a new project on the site. Use when the user wants to start, set up, or spin up a new project. Requires a unique key, a name, a project type, a project template, and a lead.
Class write (writes, no confirmation needed). Scopes manage:jira-project. Calls POST /ex/jira/{{params.cloud_id}}/rest/api/3/project.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
key | string | yes | Unique project key, e.g. "ENG". Uppercase letters, 2-10 chars. |
lead_account_id | string | yes | Atlassian accountId of the project lead, from search_users. |
name | string | yes | Project display name. |
project_template_key | string | yes | Template key for the project type, e.g. "com.pyxis.greenhopper.jira:gh-simplified-agility-kanban". |
project_type_key | string | yes | Project type, e.g. "software", "business", "service_desk". |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
id | string | |
key | string | |
name | string |
Also retrieved by: "spin up a new project", "set up a project for this team", "start a fresh project in jira".
jira.update_project
Rename a project, edit its description, or change its lead. Use when the user wants to edit or update a project's own details, not the issues inside it.
Class write (writes, no confirmation needed). Scopes manage:jira-project. Calls PUT /ex/jira/{{params.cloud_id}}/rest/api/3/project/{{params.project_key}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
description | string | no | New project description, plain text. |
lead_account_id | string | no | New project lead's accountId, from search_users. |
name | string | no | New project display name. |
project_key | string | yes | Project key or id to edit, e.g. "ENG". |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
updated | boolean |
Also retrieved by: "rename this project", "change who leads this project", "edit the project description".
jira.delete_project
Permanently delete a project (workspace) and every issue inside it. Use when the user explicitly asks to delete or remove a whole project, not a single issue. Irreversible once past the trash retention period.
Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). Scopes manage:jira-project. Calls DELETE /ex/jira/{{params.cloud_id}}/rest/api/3/project/{{params.project_key}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
project_key | string | yes | Project key or id to delete, e.g. "ENG". |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
deleted | boolean |
Also retrieved by: "remove this whole project", "delete a project and everything in it", "get rid of this project for good", "wipe out a project entirely".
jira.get_current_user
Get the profile of the connected account itself: accountId, display name, and email. Use to answer "who am I" or to get the caller's own accountId for assign_issue.
Class read (reads only). No scopes beyond the connection's defaults. Calls GET /ex/jira/{{params.cloud_id}}/rest/api/3/myself.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
accountId | string | |
active | boolean | |
displayName | string | |
emailAddress | string |
Also retrieved by: "who am I logged in as", "what's my account id", "show my own profile".
jira.search_users
Look up people on the site by name or email. Use before assign_issue or create_issue when the user names a person rather than giving an accountId directly.
Class read (reads only). No scopes beyond the connection's defaults. Calls GET /ex/jira/{{params.cloud_id}}/rest/api/3/user/search.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
max_results | integer | no | Page size, default 50. |
query | string | yes | Name or email substring to match. |
Also retrieved by: "find someone by name", "look up a teammate's email", "who matches this name in jira".
jira.list_boards
List the agile (scrum or kanban) boards on the site, optionally filtered to one project. Use to find a board_id for list_board_issues, list_board_sprints, or as a starting point before create_sprint.
Class read (reads only). Scopes read:board-scope:jira-software. Calls GET /ex/jira/{{params.cloud_id}}/rest/agile/1.0/board.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
max_results | integer | no | Page size, default 50. |
project_key_or_id | string | no | Restrict to boards of this project. |
type | string, one of scrum, kanban | no | Restrict to boards of this type. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
isLast | boolean | |
values | array of object | |
values[].id | integer | |
values[].name | string | |
values[].type | string |
Also retrieved by: "show me the scrum and kanban boards", "what boards exist for this project", "find the board id for this team".
jira.list_board_issues
List the issues on a board's kanban or backlog view, optionally filtered by JQL. Use when the user asks what's on a board, as opposed to one sprint's issues (use list_sprint_issues for that).
Class read (reads only). Scopes read:board-scope:jira-software. Calls GET /ex/jira/{{params.cloud_id}}/rest/agile/1.0/board/{{params.board_id}}/issue.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
board_id | integer | yes | Board id from list_boards. |
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
jql | string | no | Optional JQL filter over the board's issues. |
max_results | integer | no | Page size, default 50. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
issues | array of object | |
issues[].fields | object | |
issues[].fields.status | object | |
issues[].fields.summary | string | |
issues[].id | string | |
issues[].key | string | |
total | integer |
Also retrieved by: "what's on this board right now", "show every ticket on the board", "list the issues sitting on this board", "what's on this kanban view right now".
jira.list_board_sprints
List a board's sprints (iterations), optionally filtered to active, closed, or future ones. Use to find a sprint_id for get_sprint, start_sprint, close_sprint, or move_issues_to_sprint.
Class read (reads only). Scopes read:board-scope:jira-software. Calls GET /ex/jira/{{params.cloud_id}}/rest/agile/1.0/board/{{params.board_id}}/sprint.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
board_id | integer | yes | Board id from list_boards. |
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
max_results | integer | no | Page size, default 50. |
state | string, one of active, closed, future | no | Restrict to sprints in this state. Omit for all. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
isLast | boolean | |
values | array of object | |
values[].endDate | string | |
values[].id | integer | |
values[].name | string | |
values[].startDate | string | |
values[].state | string |
Also retrieved by: "show past and future sprints for this board", "what sprints has this board run", "find the sprint id I need".
jira.get_sprint
Get one sprint's (iteration's) detail by id: name, state, dates, and goal. Use when the user names a specific sprint. For a board's whole list use list_board_sprints.
Class read (reads only). Scopes read:sprint:jira-software. Calls GET /ex/jira/{{params.cloud_id}}/rest/agile/1.0/sprint/{{params.sprint_id}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
sprint_id | integer | yes | Sprint id from list_board_sprints. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
endDate | string | |
goal | string | |
id | integer | |
name | string | |
originBoardId | integer | |
startDate | string | |
state | string |
Also retrieved by: "tell me about this sprint", "when does this sprint end", "what's the goal for this sprint", "when does this iteration wrap up".
jira.create_sprint
Create a new sprint (iteration) on a board, in the future state until started. Use when the user wants to plan, set up, or add a new sprint. Start it later with start_sprint.
Class write (writes, no confirmation needed). Scopes write:sprint:jira-software. Calls POST /ex/jira/{{params.cloud_id}}/rest/agile/1.0/sprint.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
end_date | string (date-time) | no | Planned end, ISO 8601. Optional. |
goal | string | no | Short sprint goal. Optional. |
name | string | yes | Sprint name, e.g. "Sprint 24". |
origin_board_id | integer | yes | Board id the sprint belongs to, from list_boards. |
start_date | string (date-time) | no | Planned start, ISO 8601. Optional. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
id | integer | |
name | string | |
state | string |
Also retrieved by: "plan a new sprint", "set up the next sprint for this board", "add a sprint to the schedule".
jira.start_sprint
Start a sprint (iteration) that is in the future state, moving it to active. Use when the user wants to start, begin, or kick off a sprint. Optionally set or move its start and end dates at the same time.
Class write (writes, no confirmation needed). Scopes write:sprint:jira-software. Calls POST /ex/jira/{{params.cloud_id}}/rest/agile/1.0/sprint/{{params.sprint_id}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
end_date | string (date-time) | no | New end date, ISO 8601. Optional. |
sprint_id | integer | yes | Sprint id from list_board_sprints. |
start_date | string (date-time) | no | New start date, ISO 8601. Optional. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
id | integer | |
state | string |
Also retrieved by: "kick off this sprint", "begin the sprint now", "get this sprint moving".
jira.close_sprint
Close an active sprint (iteration). Use when the user wants to close, end, wrap up, or complete a sprint. Incomplete issues are left for the team to move manually; this call does not move them.
Class write (writes, no confirmation needed). Scopes write:sprint:jira-software. Calls POST /ex/jira/{{params.cloud_id}}/rest/agile/1.0/sprint/{{params.sprint_id}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
sprint_id | integer | yes | Sprint id from list_board_sprints. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
id | integer | |
state | string |
Also retrieved by: "wrap up this sprint", "end the current sprint", "complete this sprint".
jira.delete_sprint
Permanently delete a sprint (iteration). Use when the user wants to delete or remove a sprint. Its issues are not deleted; they return to the backlog. Irreversible.
Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). Scopes delete:sprint:jira-software. Calls DELETE /ex/jira/{{params.cloud_id}}/rest/agile/1.0/sprint/{{params.sprint_id}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
sprint_id | integer | yes | Sprint id to delete, from list_board_sprints. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
deleted | boolean |
Also retrieved by: "remove this sprint entirely", "get rid of a sprint", "delete a sprint from the board".
jira.list_sprint_issues
List the issues planned in one sprint (iteration), optionally filtered by JQL. Use when the user asks what's in a sprint, as opposed to a whole board's issues (use list_board_issues for that).
Class read (reads only). Scopes read:sprint:jira-software. Calls GET /ex/jira/{{params.cloud_id}}/rest/agile/1.0/sprint/{{params.sprint_id}}/issue.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
jql | string | no | Optional JQL filter over the sprint's issues. |
max_results | integer | no | Page size, default 50. |
sprint_id | integer | yes | Sprint id from list_board_sprints. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
issues | array of object | |
issues[].fields | object | |
issues[].fields.status | object | |
issues[].fields.summary | string | |
issues[].id | string | |
issues[].key | string | |
total | integer |
Also retrieved by: "what's in this sprint", "show every ticket scheduled this sprint", "list the tickets for the current sprint", "what's planned for this iteration".
jira.move_issues_to_sprint
Move one or more issues into a sprint. Use when the user wants to add issues to, schedule issues into, or pull issues into a sprint. Up to 50 issues per call.
Class write (writes, no confirmation needed). Scopes write:sprint:jira-software. Calls POST /ex/jira/{{params.cloud_id}}/rest/agile/1.0/sprint/{{params.sprint_id}}/issue.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
issue_keys | array of string | yes | Issue keys or ids to move in, e.g. ["ENG-42", "ENG-43"]. |
sprint_id | integer | yes | Sprint id from list_board_sprints. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
moved | boolean |
Also retrieved by: "pull these tickets into the sprint", "schedule these issues for this sprint", "add these tickets to the current sprint".
jira.link_issues
Link two issues together, e.g. as blocking, duplicating, or relating to each other. Use when the user wants to connect, relate, or link one ticket to another. Not for parent/subtask; use parent on create_issue or update_issue for that.
Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /ex/jira/{{params.cloud_id}}/rest/api/3/issueLink.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cloud_id | string | yes | Atlassian Cloud id of the connected Jira site. |
comment | object | no | Optional comment to add alongside the link, e.g. {"body": {"type":"doc","version":1,"content":[...]}}. |
comment.body | object | no | |
inward_issue_key | string | yes | Issue key on the inward side, e.g. the one being blocked for a "Blocks" link. |
link_type | string | yes | Link type name, e.g. "Blocks", "Duplicate", "Relates". |
outward_issue_key | string | yes | Issue key on the outward side, e.g. the one doing the blocking for a "Blocks" link. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
linked | boolean |
Also retrieved by: "connect these two tickets", "mark one ticket as blocking another", "relate this bug to that one".