# Jira MCP connector

The Jira connector brings your projects, issues, comments, and attachments into Claude, ChatGPT, Cursor, and any MCP client, so anyone on your team can search, create, and update Jira issues while signed in as themselves.

Source: https://elaichi.ai/connectors/jira/

## Facts

| | |
| --- | --- |
| Application | Jira |
| Category | Ticketing |
| AI tools | 40 |
| Authentication | OAuth or API key |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. 40 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once Jira is connected

- Summarize the issues created in Jira this week.
- Which Jira issues are unassigned and still open?
- Add a comment to the top three blocked issues.

## Connect Jira in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Jira.
2. Optionally set Share with, then press Connect.
3. Approve it in Jira. Jira's own window opens. Whoever approves it decides what this connection can reach.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Jira tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Jira to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Jira to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Jira to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Jira to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Jira tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Jira through Elaichi

### Turn a bug report into a Jira issue

Engineering. Describe the problem in plain language and have the issue created in the right Jira project, with the right labels and the screenshot attached, without opening a form.

### Check where a customer's ticket stands

Support. Ask what happened on the Jira issue linked to a customer complaint and get the latest comments and status back, then post an update for the engineer while the customer is still on the line.

### Summarize what shipped this sprint

Product. Search a Jira project for everything closed in the last two weeks and get a readable summary by label, ready to paste into release notes or a stakeholder update.

### Clean up stale issues in a project

IT. Find Jira issues nobody has touched in ninety days, add a comment asking the owner to confirm, and update the ones that should be closed.

### See who owns what across projects

Program management. List the Jira projects a group is working in, look up who holds which role, and spot issues with no assignee before the weekly review.

### Review Jira access and license use

Compliance. Pull the Jira audit log for a date range, check which users and groups exist, and see how many licenses are in use before a renewal or an access review.

## Frequently asked questions

### How do I connect Jira to Claude?

Connect Jira in Elaichi first: pick Jira from the catalog and either sign in with your Atlassian account or paste a Jira API key, whichever your organization prefers. There is no OAuth application to register and no client ID or secret to generate. Then in Claude open Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. Claude will ask you to sign in to Elaichi, and from then on Jira is available in your conversations.

### Does Jira work with ChatGPT and Cursor as well as Claude?

Yes. Once Jira is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client, and the Elaichi Agent. You connect Jira once and every client you use picks it up.

### What can an AI agent actually do with my Jira data?

With Jira connected, an agent can search issues, read and write comments, create and update issues, attach files, and look up projects, users, groups, labels, roles, audit logs, and license counts. In practice that means asking what is blocking a release, having a bug written up from a chat message, or getting a summary of everything closed last week. Because Jira offers a lot of actions, short concrete asks such as "create an issue in the Billing project for the failed invoice export" work better than long instructions.

### Does connecting Jira give the AI access to every project?

No. Every call to Jira runs as the person who signed in, so an agent only sees the projects and issues that person can already see in Jira and cannot do anything their Jira permissions forbid. Elaichi can narrow that further, for example limiting a team to reading issues without editing them, but it can never grant more than the person already has in Jira.

### Can my team share one Jira connection?

Yes. One person connects Jira in Elaichi and shares the connection with a team, and nobody else ever handles the API key or signs in to Jira separately. Each teammate still signs in to Elaichi as themselves, so the audit log names the actual person behind every issue created or comment posted in Jira.

### Can I stop an agent from deleting or changing things in Jira?

Yes. Restrictions in Elaichi work per action, so you can allow searching and reading Jira issues while blocking deleting issues, deleting comments, or editing anything at all. A blocked action is never shown to Claude, ChatGPT, or any other client, so no prompt, however worded, can reach it.

### What happens to a Jira connection when someone leaves?

Offboarding a person in Elaichi ends their access to Jira through every client at once, with no need to hunt through Claude, ChatGPT, or Cursor settings. If they connected a shared Jira account, that connection keeps working for everyone else on the team. Disconnecting Jira once in Elaichi removes it from every client for everyone.

## All 40 Jira tools

Every tool below is callable through https://api.elaichi.ai/mcp once Jira is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Jira accessible resources** (List). Get list of accessible resources in Jira. Returns id, name, url, scopes, and avatarUrl for each resource.
- **Create a Jira issue attachment** (Create). Add one or more attachments to an issue in Jira using issueIdOrKey. Returns attachment details including id, filename, mimeType, size, content URL, author info, and creation timestamp.
- **Get single Jira issue attachment by ID** (Get). Get metadata for an attachment by id in Jira. Returns author details, content URL, creation date, filename, mimeType, size, thumbnail URL, and self link.
- **List all Jira issue attachments** (List). Get details about a specific issue in Jira by id. Returns key fields including attachments with author info, filename, size, and content URL.
- **List all Jira issue comments** (List). Get all comments for an issue in Jira by issue_id_or_key. Returns author, body, created, id, updateAuthor, updated, and visibility fields for each comment.
- **Get single Jira issue comment by ID** (Get). Get comment for issue with issue_id_or_key and id in Jira. Returns author, body, created, updated, and visibility fields of the comment.
- **Create a Jira issue comment** (Create). Add a comment to an issue in Jira using issueIdOrKey. Returns the comment id, author, body, created and updated timestamps, and visibility details.
- **Update a Jira issue comment by ID** (Update). Update comment by issue_id_or_key and id in Jira. Returns author, body, created, id, updateAuthor, updated, and visibility fields of the updated comment.
- **Delete a Jira issue comment by ID** (Delete). Delete comment by id for issue identified by issue_id_or_key in Jira. Returns no content on success.
- **List all Jira search** (List). Search issues using JQL in Jira. Requires jql parameter. Returns issues array with key fields like id, key, fields (including watcher, attachment, description, project, comment, issuelinks, worklog, timetracking).
- **Get single Jira issue by ID** (Get). Get details for a specific issue in Jira by id. Returns key fields including status, project info, description, comments, attachments, and worklog.
- **Create a Jira issue** (Create). Create an issue or subtask in Jira. Requires fields and update parameters to define issue content. Returns details about the created issue including key and id.
- **Update a Jira issue by ID** (Update). Edit an issue in Jira by issue id. Updates issue fields and properties. Returns the updated issue if returnIssue is true. Note: issue transition is not supported here.
- **Delete a Jira issue by ID** (Delete). Delete an issue by id in Jira. If the issue has subtasks, set deleteSubtasks to true to delete them along with the issue. Returns no content on success.
- **List all Jira projects** (List). Get a paginated list of projects visible to the user in Jira. Returns project id, key, name, category, avatar URLs, and insight fields including totalIssueCount and lastIssueUpdateTime.
- **Get single Jira project by ID** (Get). Get project details in Jira. Requires id. Returns fields such as assigneeType, avatarUrls, components, description, id, insight, issueTypes, key, lead, name, projectCategory, properties, roles, self, simplified, style, url, and versions.
- **List all Jira users** (List). Get all users including active, inactive, and deleted users in Jira. Returns accountId, accountType, active status, avatarUrls, and displayName for each user.
- **Get single Jira user by ID** (Get). Get user details by accountId in Jira. Returns accountId, displayName, emailAddress, avatarUrls, groups, applicationRoles, active status, and timeZone as permitted by user privacy settings.
- **List all Jira groups** (List). Get user groups by accountId in Jira. Returns groupId, name, and self URL for each group the user belongs to.
- **List all Jira labels** (List). Get all labels in Jira. Returns a list of label names including 'values' array, with pagination details such as 'isLast', 'maxResults', 'startAt', and 'total'.
- **List all Jira roles** (List). Get all project roles in Jira. Returns an array of project roles with details including id, name, description, scope, and actors (users and groups) associated with each role.
- **Get single Jira role by ID** (Get). Get project role details and default actors by id in Jira. Returns actors with displayName and type, role description, id, name, and project scope.
- **List all Jira audit logs** (List). Get audit records filtered by filter, from, and to parameters in Jira. Returns records with fields id, summary, category, eventSource, objectItem, changedValues, authorAccountId, created, and remoteAddress.
- **List all Jira licenses** (List). Get licensing information for the Jira instance. Returns applications array with id and plan fields indicating license details.
- **Get single Jira license count by ID** (Get). Get approximate application license count for a Jira license using applicationKey. Returns total approximate number of user accounts, cached with a 7-day lifecycle.
- **List all Jira issue createmeta** (List). Get create issue metadata including projects and issue types with their create screen fields in Jira. Returns projects with id, key, name, avatarUrls, and issue types with id, name, description, iconUrl, and required fields.
- **List all Jira status** (List). Get a paginated list of statuses filtered by projectId, searchString, and statusCategory in Jira. Returns id, name, description, statusCategory, usages, and workflowUsages for each status.
- **List all Jira priorities** (List). Get a list of priorities in Jira filtered by id or projectId. Returns fields id, name, description, isDefault, iconUrl, and statusColor for each priority.
- **List all Jira application roles** (List). Get all application roles in Jira. Returns key fields including key, name, userCount, numberOfSeats, remainingSeats, and associated groups for each application role.
- **List all Jira groups picker** (List). Find groups whose names contain query string in Jira. Returns groups with groupId, name, and html highlighting matched query. Response includes header showing count and total matching groups.
- **List all Jira user groups** (List). Get user groups for a user in Jira by account_id. Returns groupId, name, and self URL for each group the user belongs to.
- **List all Jira users default** (List). Get all users including active, inactive, and deleted users in Jira. Returns accountId, accountType, active status, avatarUrls, displayName, and self link for each user.
- **List all Jira versions** (List). Get a paginated list of all versions for a project in Jira using project_id_or_key. Returns fields like id, name, description, releaseDate, released, and overdue for each version.
- **Get single Jira version by ID** (Get). Get version details by id in Jira. Returns fields including archived, description, id, name, overdue, projectId, releaseDate, released, self, and userReleaseDate.
- **Create a Jira webhook** (Create). Register dynamic webhooks with url and webhooks list in Jira. Returns createdWebhookId or errors for each webhook registration.
- **List all Jira webhooks** (List). Get dynamic webhooks registered by the calling app in Jira. Returns webhook id, events, expirationDate, and filters like jqlFilter and fieldIdsFilter.
- **Delete a Jira webhook by ID** (Delete). Delete webhooks by webhookIds in Jira. Only webhooks registered by the calling app are removed. 
- **Jira webhooks refresh** (Refresh). Extend webhook life by refreshing webhooks with webhookIds in Jira. Returns expirationDate indicating the new expiry date of the refreshed webhooks. Unrecognized webhook IDs are ignored.
- **List all Jira plans** (List). Get a paginated list of plans in Jira. Returns fields id, name, scenarioId, status, and issueSources for each plan. Supports includeTrashed and includeArchived filters.
- **List all Jira search users** (List). Find active users matching query, accountId, or property in Jira. Returns user accountId, displayName, active status, avatarUrls, and self link. Requires query, accountId, or property parameter.
