Jira MCP Tools for AI Agents
Let an agent search issues, create and update tickets, move work between sprints and backlogs, and add comments in Jira.
Available Tools
67 tools available in this integration
Jira.AddCommentToIssue Add a comment to a Jira issue.
Jira.AddIssuesToSprint Add a list of issues to a sprint.
Jira.AddLabelsToIssue Add labels to an existing Jira issue.
Jira.AttachFileToIssue Add an attachment to an issue.
Jira.CreateIssue Create a new Jira issue.
Jira.CreateIssueComment Add a comment to a Jira issue.
Jira.DownloadAttachment Download the contents of an attachment associated with an issue.
Jira.GetAttachmentMetadata Get the metadata of an attachment.
Jira.GetAvailableAtlassianClouds Get available Atlassian Clouds.
Jira.GetBoardBacklogIssues Get all issues in a board's backlog with pagination support.
Jira.GetBoards Retrieve Jira boards either by specifying their names or IDs, or get all
Jira.GetCommentById Get a comment by its ID.
Jira.GetIssue Get the details of a Jira issue by its ID.
Jira.GetIssueById Get the details of a Jira issue by its ID.
Jira.GetIssueComment Get a comment by its ID.
Jira.GetIssueComments Get the comments of a Jira issue by its ID.
Jira.GetIssueTransition Get a transition available for an issue by the transition's ID or name.
Jira.GetIssueType Get the details of a Jira issue type by its ID.
Jira.GetIssueTypeById Get the details of a Jira issue type by its ID.
Jira.GetIssuesWithoutId Search for Jira issues when you don't have the issue ID(s).
Jira.GetPriority Get the details of a priority by its ID.
Jira.GetPriorityById Get the details of a priority by its ID.
Jira.GetProject Get the details of a Jira project by its ID or key.
Jira.GetProjectById Get the details of a Jira project by its ID or key.
Jira.GetSprintIssues Get all issues that are currently assigned to a specific sprint with pagination support.
Jira.GetTransitionById Get a transition by its ID.
Jira.GetTransitionByStatusName Get a transition available for an issue by the transition name.
Jira.GetTransitionsAvailableForIssue Get the transitions available for an existing Jira issue.
Jira.GetUser Get user information by their ID.
Jira.GetUserById Get user information by their ID.
Jira.GetUsersWithoutId Get users without their account ID, searching by display name and email address.
Jira.ListAtlassianClouds Get available Atlassian Clouds.
Jira.ListBoardBacklogIssues Get all issues in a board's backlog with pagination support.
Jira.ListBoardSprints Retrieve sprints from Jira boards with filtering options for planning and tracking purposes.
Jira.ListBoards Retrieve Jira boards either by specifying their names or IDs, or get all
Jira.ListIssueAttachmentsMetadata Get the metadata about the files attached to an issue.
Jira.ListIssueComments Get the comments of a Jira issue by its ID.
Jira.ListIssuePriorities Browse the priorities available to be used in the specified Jira issue.
Jira.ListIssueTransitions Get the transitions available for an existing Jira issue.
Jira.ListIssueTypesByProject Get the list of issue types (e.g.
Jira.ListIssues Get the issues for a given project.
Jira.ListLabels Get the existing labels (tags) in the user's Jira instance.
Jira.ListPrioritiesAvailableToAProject Browse the priorities available to be used in issues in the specified Jira project.
Jira.ListPrioritiesAvailableToAnIssue Browse the priorities available to be used in the specified Jira issue.
Jira.ListPrioritiesByScheme Browse the priorities associated with a priority scheme.
Jira.ListPrioritySchemes Browse the priority schemes available in Jira.
Jira.ListProjectIssueTypes Get the list of issue types (e.g.
Jira.ListProjectPriorities Browse the priorities available to be used in issues in the specified Jira project.
Jira.ListProjects Browse projects available in Jira.
Jira.ListProjectsByScheme Browse the projects associated with a priority scheme.
Jira.ListSchemePriorities Browse the priorities associated with a priority scheme.
Jira.ListSchemeProjects Browse the projects associated with a priority scheme.
Jira.ListSprintIssues Get all issues that are currently assigned to a specific sprint with pagination support.
Jira.ListSprintsForBoards Retrieve sprints from Jira boards with filtering options for planning and tracking purposes.
Jira.ListUsers Browse users in Jira.
Jira.MoveIssuesFromSprintToBacklog Move issues from active or future sprints back to the board's backlog.
Jira.QueryIssues Search for Jira issues using a JQL (Jira Query Language) query.
Jira.RemoveLabelsFromIssue Remove labels from an existing Jira issue.
Jira.SearchIssues Parameterized search for Jira issues (without having to provide a JQL query).
Jira.SearchIssuesWithJql Search for Jira issues using a JQL (Jira Query Language) query.
Jira.SearchIssuesWithoutJql Parameterized search for Jira issues (without having to provide a JQL query).
Jira.SearchProjects Get the details of all Jira projects.
Jira.SearchUsers Get users without their account ID, searching by display name and email address.
Jira.TransitionIssue Transition a Jira issue to a new status.
Jira.TransitionIssueToNewStatus Transition a Jira issue to a new status.
Jira.UpdateIssue Update an existing Jira issue.
Jira.WhoAmI CALL THIS TOOL FIRST to establish user profile context.
Why agent-optimized tools matter
Built for intent, not API schemas
Ask the agent to "find blocked high-priority issues in the current sprint and recommend what should move next." Arcade picks the right Jira actions without guessing project, issue, sprint, or transition identifiers.
Up to 100x fewer tokens
Jira list and search results return issue metadata and pagination-friendly records first, so the agent can identify the right issues without loading every comment, attachment, project, and sprint record into the model.
Complete the workflow end to end
Search an issue, read its comments, inspect available transitions, update its fields, and move it to the right sprint through one toolkit designed around the complete Jira task.
Make actions predictable and controlled
Arcade tools return structured results and useful errors across users and runs. Teams can apply scope restrictions, redaction, and approval policies so agents follow the same controls every time.
Securing Jira
The more capabilities agents get, the more useful they are. However, more capabilities bring more risks of undesired effects such as data loss and exfiltration.
This is why Arcade provides you with contextual rules that dictate how and when a tool is allowed to run. Arcade’s contextual access lets you govern tool visibility and behavior at every stage of execution and control who can see a tool, what inputs are allowed, and what comes back.
Learn about Contextual Access PoliciesFor Jira, you can implement some of these policies:
- Hide Jira.MoveIssuesFromSprintToBacklog from agents unless the roles your IDP marks as scrum masters or project leads are active, so an agent cannot remove committed work from a sprint.
- Restrict Jira.TransitionIssueToNewStatus to agents operating under your release-management role, so unapproved automation cannot close, reject, or otherwise advance issues.
- Deny Jira.AttachFileToIssue to agents outside your approved engineering roles, so an agent cannot publish confidential files or credentials in an issue.
- Hide Jira.CreateIssueComment from agents outside the roles your IDP authorizes to post project updates, so an agent cannot publish misleading status reports.
- Restrict Jira.TransitionIssue to agents operating under your release-management role, so unapproved automation cannot move issues past required review states.
- Require human approval before Jira.UpdateIssue runs on production projects or changes an issue's assignee, priority, or due date, so an agent cannot alter delivery commitments without review.
- Block Jira.AddCommentToIssue when the comment contains credentials, access tokens, customer data, or internal incident details, so an agent cannot publish sensitive information in your issue tracker.
- Require human approval before Jira.MoveIssuesFromSprintToBacklog runs, so removing committed work from an active sprint is visible to the team and cannot happen unprompted.
- Require human approval before Jira.CreateIssueComment runs on externally visible projects, so an agent cannot publish an unreviewed commitment or customer-facing update.
- Block Jira.TransitionIssue when the requested status is Done or Closed and the issue still has unresolved blockers, so an agent cannot hide incomplete work.
- Deny the output of Jira.DownloadAttachment for files marked confidential, under legal hold, or matching your secrets and credential patterns, so their contents never reach the model.
- Redact email addresses and other private contact fields from Jira.GetUsersWithoutId results before they reach the model, leaving only the identity data needed to match an assignee.
- Strip credentials, access tokens, customer contact details, and private incident notes from Jira.GetIssueComments results before the model sees them.
- Redact reporter and assignee email addresses, account identifiers, and internal contact fields from Jira.GetIssue results before they reach the model.
- Strip access tokens, credentials, customer contact details, and private incident notes from Jira.GetIssueComment results before the model sees the comment.
- Remove email addresses and phone numbers from Jira.SearchUsers results before they reach the model, leaving only the identity fields needed to select an assignee.
How to use Jira with your agent
Connect Jira to an MCP client, then authorize each user's Jira account. Follow the setup below to run your first issue workflow.
Your questions, answered
A Jira MCP server exposes Jira capabilities as structured tools that an AI agent can call through the Model Context Protocol. After a user authorizes their Atlassian account, the agent can search issues, inspect projects and sprints, update issues, and perform other permitted actions.
Jira's own MCP server provides a Jira-specific connection. Arcade adds per-user OAuth, an actions runtime, approval workflows, response redaction, tool visibility controls, and one MCP gateway that works across supported clients and frameworks.
Arcade agents can search and read issues, projects, boards, sprints, comments, users, attachments, priorities, and transitions. They can also create and update issues, add comments or attachments, change labels, move issues between sprints and the backlog, and transition issues to new statuses.
Arcade requests the Atlassian OAuth permissions needed for the Jira actions your workflow enables. Read-only issue and project workflows need read access, while creating or changing issues, comments, labels, attachments, sprints, and statuses requires the corresponding write permissions; grant the narrowest permissions that support the workflow.
Yes. Each user authorizes their own Atlassian account through OAuth. Jira actions run under that user's authorization, so the agent can access only the Jira projects, issues, and operations that account is permitted to use.
Yes. Contextual Access policies can require human approval before consequential Jira actions such as creating or updating an issue, adding a comment or attachment, changing sprint membership, or transitioning an issue. The call proceeds only after the policy's conditions have been satisfied.
Arcade proxies Jira API calls and does not persist Jira content as part of normal tool execution. OAuth credentials are brokered and stored encrypted at rest, and the model never receives raw credentials.
Any framework or client that can connect to Arcade's MCP gateway or tool APIs works, including LangChain, OpenAI Agents, CrewAI, Claude Desktop, Claude Code, Cursor, Visual Studio Code, Microsoft Copilot Studio, and GitHub Copilot.
Arcade refreshes Jira access while the user's Atlassian authorization remains valid. If the authorization is revoked, rotated, or can no longer be refreshed, Jira actions stop until the user reconnects their account.
Atlassian Jira rate limits, quotas, and account-level permissions still apply to actions performed through Arcade. Large issue, backlog, sprint, comment, user, and project reads may also require pagination, so agents should process results in pages rather than assuming one call returns everything.