VX Agents

OpenAPI Marketplace · Productivity & Project Management

Jira Issues

v1.0.0 · 13 endpoints · 0 connections · shared by vx.ai

Lets an agent work Jira Cloud issues: search with JQL, read issues and comments, create and edit issues, assign them, comment, and move them through their workflow. Curated from Atlassian's official OpenAPI specification.

Connect this API to an AI agent Browse all specs

What you can do with Jira Issues via MCP

Every endpoint below becomes a governed tool your AI agent (Claude, ChatGPT, or a customer-facing VX agent) can call — with scoped permissions, sandbox testing, and audit logs.

MethodPathOperationDescription
GET /rest/api/3/myself getCurrentUser Get the Jira user the credential acts as
GET /rest/api/3/project/search searchProjects List or search the projects you can see
GET /rest/api/3/issue/createmeta/{projectIdOrKey}/issuetypes getCreateIssueTypes List the issue types you can create in a project
GET /rest/api/3/user/assignable/search findAssignableUsers Find people who can be assigned issues in a project or issue
GET /rest/api/3/search/jql searchIssuesWithJql Search issues with a JQL query (e.g. open bugs assigned to me)
GET /rest/api/3/issue/{issueIdOrKey} getIssue Get one issue with its fields
PUT /rest/api/3/issue/{issueIdOrKey} editIssue Update an issue's fields (summary, description, labels, priority)
GET /rest/api/3/issue/{issueIdOrKey}/comment getIssueComments List the comments on an issue
POST /rest/api/3/issue/{issueIdOrKey}/comment addIssueComment Add a comment to an issue
GET /rest/api/3/issue/{issueIdOrKey}/transitions getIssueTransitions List the status changes available for an issue
POST /rest/api/3/issue/{issueIdOrKey}/transitions transitionIssue Move an issue to another status (e.g. In Progress, Done)
POST /rest/api/3/issue createIssue Create a new issue (task, bug, story) in a project
PUT /rest/api/3/issue/{issueIdOrKey}/assignee assignIssue Assign an issue to a person (or unassign it)

Authentication

basicAuth

HTTP Basic

HTTP Basic auth with your Atlassian account email as the username and an API token as the password.

How to get a credential

  1. Sign in at https://id.atlassian.com/manage-profile/security/api-tokens with the account the agent should act as (ideally a dedicated bot account).
  2. Click Create API token, name it (for example VX Agents) and pick an expiry.
  3. Copy the token (it is shown once).
  4. Make sure the account has access to the Jira projects the agent should work in (Browse, Create, Edit, Assign, Transition and Add comments project permissions).
  5. Note your site name: the acme in https://acme.atlassian.net. Set it as the site server variable.

Permissions used

Access follows the account's project permissions (OAuth apps use the matching classic scopes).

Permission / scope Operations
Browse projects (read:jira-work, read:jira-user) getCurrentUser, searchProjects, getCreateIssueTypes, findAssignableUsers, searchIssuesWithJql, getIssue, getIssueComments, getIssueTransitions
Create issues (write:jira-work) createIssue
Edit issues (write:jira-work) editIssue
Assign issues (write:jira-work) assignIssue
Add comments (write:jira-work) addIssueComment
Transition issues (write:jira-work) transitionIssue

Common errors

  • 401 Unauthorized: wrong email/token pair, expired token, or the site name is wrong. Recreate the token and check site.
  • 403 Forbidden: the account lacks the project permission for that action (e.g. Assign or Transition).
  • 400 Bad Request: invalid JQL, a missing required field, or a field not on the screen. Call getCreateIssueTypes / getIssue with expand=editmeta to see allowed fields.
  • 404 Not Found: unknown issue key or project, or the account cannot see it.
  • 429 Too Many Requests: Atlassian rate limit; wait for Retry-After and retry.

Store the email and API token as a VX Agents credential (Basic auth) for this spec; never paste the token into chat.

Usage guide

Setup

  • Credential: Basic auth with the Atlassian account email + API token (id.atlassian.com > Security > API tokens). The agent sees and changes only what that account can.
  • Set the site server variable to your site name (acme for https://acme.atlassian.net). The default your-domain will not work.
  • Worth pinning: the project key you work in (e.g. ENG) and its usual issue type id.

Triage and update issues

  1. searchIssuesWithJql with jql (e.g. project = ENG AND status != Done AND assignee = currentUser() ORDER BY priority DESC), fields=summary,status,assignee,priority and maxResults (max 100). Page with nextPageToken.
  2. getIssue and getIssueComments to read an issue before acting.
  3. findAssignableUsers (issueKey or project + query) to get an accountId, then assignIssue with {"accountId": "..."} (null unassigns).
  4. addIssueComment with a body in Atlassian Document Format (below).
  5. To change status: getIssueTransitions, then transitionIssue with {"transition": {"id": "31"}}.
  6. editIssue with {"fields": {...}} or {"update": {"labels": [{"add": "urgent"}]}}.

Create an issue

  1. searchProjects to find the project key, getCreateIssueTypes for the issue type id.
  2. createIssue with {"fields": {"project": {"key": "ENG"}, "issuetype": {"id": "10001"}, "summary": "...", "description": <ADF>}}.

Confirm before writing: show the user the change (new issue, comment text, assignee, target status, edited fields) and wait for approval before createIssue, editIssue, assignIssue, addIssueComment or transitionIssue. Comments and assignments notify watchers.

Good to know

  • API v3 rich text (description, comment body) is Atlassian Document Format: {"type": "doc", "version": 1, "content": [{"type": "paragraph", "content": [{"type": "text", "text": "Hello"}]}]}.
  • issueIdOrKey accepts ENG-123 or the numeric id. Users are identified by accountId, never email.
  • JQL dates: created >= -7d, updated >= "2026-10-01". Use currentUser() for "me".
  • Search is eventually consistent: a just-created issue may take a few seconds to appear.
  • 429 means rate limited: wait Retry-After seconds.

How to use this spec

  1. Create a free VX Agents account (sandbox tools included).
  2. Open the marketplace and connect “Jira Issues” to an agent.
  3. Expose it as an MCP server for Claude/ChatGPT, or chat with it directly.

Related APIs