# Jira — how to use (mcp.ai)

Jira via linguagem natural: crie, busque e atualize issues, transições, sprints e projetos. Plataforma fornece a aplicação OAuth, você só clica em Conectar e autoriza seu site Atlassian. Vários sites podem ser conectados no mesmo MCP.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_jira?ms=1788956880000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `jira_add_attachment`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/jira`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/jira/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/jira/add/attachment` — Uploads and attaches a file to a Jira issue.
  - body: { issue_key: string, file_to_upload: object }
- `POST https://api.mcp.ai/api/jira/add/comment` — Adds a comment using Atlassian Document Format (ADF) for rich text to an existing Jira issue.
  - body: { comment: string, issue_id_or_key: string, visibility_type?: string, visibility_value?: string, additional_properties?: object }
- `POST https://api.mcp.ai/api/jira/add/watcher/to/issue` — Adds a user to an issue's watcher list by account ID. Requires the authenticated user to have permission to view the issue and manage watchers; insufficient permissions may result in silent failure or
  - body: { account_id: string, issue_id_or_key: string }
- `POST https://api.mcp.ai/api/jira/assign/issue` — Assigns a Jira issue to a user, default assignee, or unassigns; supports email/name lookup.
  - body: { account_id?: string, assignee_name?: string, issue_id_or_key: string }
- `POST https://api.mcp.ai/api/jira/bulk/create/issue` — Creates multiple Jira issues (up to 50 per call) with full feature support including markdown, assignee resolution, and priority handling.
  - body: { issues: object[] }
- `POST https://api.mcp.ai/api/jira/create/issue` — Creates a new Jira issue (e.g., bug, task, story) in a specified project. IMPORTANT: Different Jira projects may have custom required fields beyond the standard ones (summary, project_key, issue_type)
  - body: { labels?: string[], parent?: string, summary: string, assignee?: string, due_date?: string, priority?: string, reporter?: string, versions?: string[], sprint_id?: integer, components?: string[], issue_type: string, description?: string|object, environment?: string|object, project_key: string, fix_versions?: string[], assignee_name?: string, additional_properties?: string }
- `POST https://api.mcp.ai/api/jira/create/issue/link` — Links two Jira issues using a specified link type with optional comment.
  - body: { comment?: string, link_type?: string, link_type_id?: string, inward_issue_key: string, outward_issue_key: string }
- `POST https://api.mcp.ai/api/jira/create/project` — Creates a new Jira project with required lead, template, and type configuration.
  - body: { key: string, url?: string, name: string, avatar_id?: integer, category_id?: integer, description?: string, assignee_type?: string, lead_account_id: string, project_type_key: string, permission_scheme?: integer, notification_scheme?: integer, project_template_key: string, additional_properties?: object, issue_security_scheme?: integer }
- `POST https://api.mcp.ai/api/jira/create/sprint` — Creates a new sprint on a Jira board with optional start/end dates and goal.
  - body: { goal?: string, name: string, end_date?: string, start_date?: string, origin_board_id: integer, additional_properties?: object }
- `POST https://api.mcp.ai/api/jira/create/version` — Creates a new version for releases or milestones in a Jira project.
  - body: { name: string, archived?: boolean, released?: boolean, project_id: integer, start_date?: string, description?: string, release_date?: string, additional_properties?: object }
- `POST https://api.mcp.ai/api/jira/delete/comment` — Deletes a specific comment from a Jira issue using its ID and the issue's ID/key; requires user permission to delete comments on the issue.
  - body: { id: string, issueIdOrKey: string }
- `POST https://api.mcp.ai/api/jira/delete/issue` — Permanently and irreversibly deletes a Jira issue by its ID or key. Obtain explicit user confirmation before calling.
  - body: { delete_subtasks?: boolean, issue_id_or_key: string }
- `POST https://api.mcp.ai/api/jira/delete/version` — Deletes a Jira version and optionally reassigns its issues.
  - body: { version_id: string, move_fix_issues_to?: string, move_affected_issues_to?: string }
- `POST https://api.mcp.ai/api/jira/delete/worklog` — Deletes a worklog from a Jira issue with estimate adjustment options.
  - body: { worklog_id: string, increase_by?: string, new_estimate?: string, notify_users?: boolean, adjust_estimate?: string, issue_id_or_key: string, override_editable_flag?: boolean }
- `POST https://api.mcp.ai/api/jira/edit/issue` — Updates an existing Jira issue with field values and operations. Supports direct field parameters (summary, description, assignee, priority, etc.) that are merged with the fields parameter. Direct par
  - body: { fields?: string, labels?: string[], update?: string, summary?: string, assignee?: string, due_date?: string, description?: string, notify_users?: boolean, return_issue?: boolean, issue_id_or_key: string, sprint_id_or_name?: string, priority_id_or_name?: string, additional_properties?: object, override_editable_flag?: boolean, override_screen_security?: boolean }
- `POST https://api.mcp.ai/api/jira/find/users` — DEPRECATED: Use JIRA_FIND_USERS2 instead. Searches for Jira users by email or display name to find account IDs; essential for assigning issues, adding watchers, and other user-related operations. Broa
  - body: { query?: string, active?: boolean, start_at?: integer, account_id?: string, max_results?: integer }
- `POST https://api.mcp.ai/api/jira/get/all/issue/type/schemes` — Retrieves all Jira issue type schemes with optional filtering and pagination.
  - body: { id?: integer[], start_at?: integer, max_results?: integer }
- `POST https://api.mcp.ai/api/jira/get/all/projects` — Retrieves all visible projects using the modern paginated Jira API with server-side filtering and pagination support. Results reflect only projects the authenticated user can access — small or empty r
  - body: { name?: string, query?: string, action?: string, expand?: string, status?: string[], orderBy?: string, startAt?: integer, categoryId?: integer, maxResults?: integer, properties?: string[] }
- `POST https://api.mcp.ai/api/jira/get/all/statuses` — Retrieves all issue statuses associated with workflows from Jira. Returns global statuses that may not be valid for every project or workflow scheme; verify a returned status is applicable to the spec
- `POST https://api.mcp.ai/api/jira/get/all/users` — Retrieves all users from the Jira instance including active, inactive, app accounts, and system accounts, with pagination support. On Jira Cloud, fields like `email_address` may be redacted due to pri
  - body: { start_at?: integer, max_results?: integer }
- `POST https://api.mcp.ai/api/jira/get/comment` — Retrieves a specific comment by ID from a Jira issue with optional expansions.
  - body: { expand?: string, comment_id: string, issue_id_or_key: string }
- `POST https://api.mcp.ai/api/jira/get/current/user` — Retrieves detailed information about the currently authenticated Jira user. The returned `accountId` is the correct identifier for fields like `lead_account_id` in JIRA_CREATE_PROJECT, JIRA_ADD_WATCHE
  - body: { expand?: string }
- `POST https://api.mcp.ai/api/jira/get/issue` — Retrieves a Jira issue by ID or key with customizable fields and expansions. Request only needed fields and expansions to avoid large responses. Use specific `customfield_*` keys in `fields` to verify
  - body: { expand?: string, fields?: string[], issue_key: string, properties?: string[], fields_by_keys?: boolean, update_history?: boolean }
- `POST https://api.mcp.ai/api/jira/get/issue/link/types` — Retrieves all configured issue link types from Jira.
- `POST https://api.mcp.ai/api/jira/get/issue/property` — Retrieves a custom property from a Jira issue by key.
  - body: { property_key: string, issue_id_or_key: string }
- `POST https://api.mcp.ai/api/jira/get/issue/resolutions` — Retrieves all available issue resolution types from Jira.
- `POST https://api.mcp.ai/api/jira/get/issue/types` — Retrieves all Jira issue types available to the user using the modern API v3 endpoint; results vary based on 'Administer Jira' global or 'Browse projects' project permissions. Response includes two sh
- `POST https://api.mcp.ai/api/jira/get/issue/watchers` — Retrieves users watching a Jira issue for update notifications. Watcher data access may be restricted by Jira permissions. Returns all watchers; filter client-side by `accountId` to check if a specifi
  - body: { issue_id_or_key: string }
- `POST https://api.mcp.ai/api/jira/get/issue/worklogs` — DEPRECATED: Use JIRA_GET_WORKLOG instead. This action is deprecated because it lacks the expand parameter for worklog properties. Use JIRA_GET_WORKLOG which provides the same functionality plus the ab
  - body: { start_at?: integer, max_results?: integer, started_after?: integer, started_before?: integer, issue_id_or_key: string }
- `POST https://api.mcp.ai/api/jira/get/project/versions` — Retrieves all versions for a Jira project with optional expansion. Use version IDs from the response (not names) when setting fixVersions or affectedVersions on issues — submitting names alone causes 
  - body: { expand?: string, project_id_or_key: string }
- `POST https://api.mcp.ai/api/jira/get/remote/issue/links` — Retrieves links from a Jira issue to external resources.
  - body: { global_id?: string, issue_id_or_key: string }
- `POST https://api.mcp.ai/api/jira/get/transitions` — Retrieves available workflow transitions for a Jira issue. Always use the numeric `id` from the response when calling JIRA_TRANSITION_ISSUE — transition IDs are project/workflow-specific and must not 
  - body: { expand?: string, transition_id?: string, issue_id_or_key: string, skip_remote_only_condition?: boolean, sort_by_ops_bar_and_status?: boolean, include_unavailable_transitions?: boolean }
- `POST https://api.mcp.ai/api/jira/get/votes` — Fetches voting details for a Jira issue; requires voting to be enabled in Jira's general settings.
  - body: { issue_id_or_key: string }
- `POST https://api.mcp.ai/api/jira/get/worklog` — Retrieves worklogs for a specified Jira issue.
  - body: { expand?: string, start_at?: integer, max_results?: integer, started_after?: integer, started_before?: integer, issue_id_or_key: string }
- `POST https://api.mcp.ai/api/jira/list/boards` — Retrieves paginated Jira boards with filtering and sorting options. Use `start_at` and `max_results` together, looping through pages to retrieve all results.
  - body: { name?: string, type?: string, order_by?: string, start_at?: integer, max_results?: integer, include_private?: boolean, project_key_or_id?: string }
- `POST https://api.mcp.ai/api/jira/list/issue/comments` — Retrieves paginated comments from a Jira issue with optional ordering. Paginate by incrementing `start_at` by `max_results` until the cumulative count reaches the `total` field in the response. A resp
  - body: { expand?: string, order_by?: string, start_at?: integer, max_results?: integer, issue_id_or_key: string }
- `POST https://api.mcp.ai/api/jira/list/sprints` — Retrieves paginated sprints from a Jira board with optional state filtering.
  - body: { state?: string, board_id: integer, start_at?: integer, max_results?: integer }
- `POST https://api.mcp.ai/api/jira/move/issue/to/sprint` — Moves one or more Jira issues to a specified active sprint.
  - body: { issues: string[], sprint_id: integer, rank_after_issue?: string, rank_before_issue?: string, rank_custom_field_id?: integer }
- `POST https://api.mcp.ai/api/jira/remove/watcher/from/issue` — Removes a user from an issue's watcher list by account ID.
  - body: { account_id: string, issue_id_or_key: string }
- `POST https://api.mcp.ai/api/jira/search/for/issues/using/jql/get` — Searches for Jira issues using JQL with pagination and field selection.
  - body: { jql?: string, expand?: string, fields?: string[], fail_fast?: boolean, properties?: string[], max_results?: integer, fields_by_keys?: boolean, next_page_token?: string, reconcile_issues?: integer[] }
- `POST https://api.mcp.ai/api/jira/search/for/issues/using/jql/post` — DEPRECATED: Use JIRA_SEARCH_ISSUES instead. Searches for Jira Cloud issues using Enhanced JQL via POST request; supports eventual consistency and token-based pagination. Use this POST endpoint for lon
  - body: { jql?: string, expand?: string, fields?: string[], maxResults?: integer, properties?: string[], fieldsByKeys?: boolean, nextPageToken?: string, reconcileIssues?: integer[] }
- `POST https://api.mcp.ai/api/jira/search/issues` — Advanced Jira issue search supporting structured filters and raw JQL. At least one filter parameter (e.g., jql, project_key, updated_after) is required; calls with no parameters will be rejected.
  - body: { jql?: string, fields?: string[], labels?: string[], assignee?: string, max_results?: integer, project_key?: string, text_search?: string, created_after?: string, updated_after?: string, created_before?: string, updated_before?: string, next_page_token?: string, sprint_id_or_name?: string, status_id_or_name?: string, preserved_order_by?: string, priority_id_or_name?: string, issue_type_id_or_name?: string }
- `POST https://api.mcp.ai/api/jira/send/notification/for/issue` — Sends a customized email notification for a Jira issue.
  - body: { to: object, subject: string, restrict?: object, html_body?: string, text_body: string, issue_id_or_key: string }
- `POST https://api.mcp.ai/api/jira/transition/issue` — Transitions a Jira issue to a different workflow state, with support for transition name lookup and user assignment by email. IMPORTANT: Only fields that are on the transition's screen can be set duri
  - body: { comment?: string, assignee?: string, resolution?: string, assignee_name?: string, issue_id_or_key: string, transition_fields?: object, additional_properties?: object, transition_id_or_name: string }
- `POST https://api.mcp.ai/api/jira/update/comment` — Updates text content or visibility of an existing Jira comment.
  - body: { comment_id: string, comment_text: string, notify_users?: boolean, issue_id_or_key: string, visibility_type?: string, visibility_value?: string, additional_properties?: string }

## Example prompts
- "Crie uma issue 'Erro no checkout' no projeto WEB com prioridade alta"
- "Liste minhas issues abertas atribuídas a mim"
- "Mova a issue WEB-204 para 'Em progresso'"

## More
- Page: https://mcp.ai/jira
- Agent spec (llms.txt): https://mcp.ai/jira/llms.txt
- Postman collection: https://mcp.ai/jira/postman.json
