> ## Documentation Index
> Fetch the complete documentation index at: https://docs.routemcp.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Jira

> Atlassian Jira — issue tracking, agile project management, and software delivery. 97 tools covering issues, projects, boards, sprints, comments, attachments, users, and webhooks — accessible through the MCP runtime endpoint.

<img src="https://icon.horse/icon/atlassian.com" alt="Jira" style={{ width: "48px", height: "48px", marginBottom: "16px" }} />

## Overview

| Property   | Value                            |
| ---------- | -------------------------------- |
| Slug       | `jira`                           |
| Category   | Project Management               |
| Auth       | OAuth 2.0 (Atlassian 3LO) + PKCE |
| Base URL   | `https://api.atlassian.com`      |
| Tool count | 97                               |
| Rate limit | 10 req/sec, 100 req/min          |

## Tool catalogue

Jira tools are surfaced through the **MCP runtime** (`POST /api/v1/mcp/:serverId`) and the **HTTP chat** endpoint (`POST /api/v1/mcp/:serverId/chat`). In router mode the model uses `SEARCH_TOOLS` to discover the right slug at runtime. The catalogue covers:

| Area                           | Sample slugs                                                                                                                        | Approx. count |
| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------- | ------------- |
| Issues — read & search         | `JIRA_GET_ISSUE`, `JIRA_FETCH_BULK_ISSUES`, `JIRA_SEARCH_ISSUES_USING_JQL_ENHANCED_SEARCH`, `JIRA_PARSE_JQL_QUERIES`                | 20+           |
| Issues — write                 | `JIRA_CREATE_ISSUE`, `JIRA_BULK_CREATE_ISSUE`, `JIRA_EDIT_ISSUE`, `JIRA_DELETE_ISSUE`, `JIRA_ASSIGN_ISSUE`, `JIRA_TRANSITION_ISSUE` | 15+           |
| Comments & worklog             | `JIRA_ADD_COMMENT`, `JIRA_GET_COMMENTS`, `JIRA_ADD_WORKLOG`, `JIRA_GET_WORKLOGS`                                                    | 10+           |
| Attachments                    | `JIRA_ADD_ATTACHMENT`, `JIRA_GET_ATTACHMENT`, `JIRA_DELETE_ATTACHMENT`                                                              | 5+            |
| Watchers, votes, links         | `JIRA_ADD_WATCHER_TO_ISSUE`, `JIRA_REMOVE_WATCHER_FROM_ISSUE`, `JIRA_CREATE_ISSUE_LINK`                                             | 8+            |
| Projects, components, versions | `JIRA_GET_PROJECT`, `JIRA_LIST_PROJECTS`, `JIRA_GET_PROJECT_COMPONENTS`, `JIRA_GET_PROJECT_VERSIONS`                                | 12+           |
| Users, groups, permissions     | `JIRA_GET_CURRENT_USER`, `JIRA_FIND_USERS`, `JIRA_FIND_USERS_FOR_PICKER`, `JIRA_ADD_USER_TO_GROUP`, `JIRA_CHECK_PERMISSIONS`        | 10+           |
| Roles & project membership     | `JIRA_ADD_USERS_TO_PROJECT_ROLE`, `JIRA_GET_PROJECT_ROLE_DETAILS`                                                                   | 5+            |
| Notifications & webhooks       | `JIRA_SEND_NOTIFICATION_FOR_ISSUE`, `JIRA_REGISTER_DYNAMIC_WEBHOOKS`                                                                | 5+            |
| JQL & expression evaluation    | `JIRA_EVALUATE_JIRA_EXPRESSION`, `JIRA_ANALYSE_EXPRESSION`, `JIRA_PARSE_JQL_QUERIES`                                                | 4+            |

Discover the full list at runtime:

```bash theme={null}
curl -N -X POST "https://api.routemcp.io/api/v1/mcp/<workspace_id>/chat" \
  -H "x-api-key: <YOUR_API_KEY>" \
  -H "x-session-id: <SESSION_ID>" \
  -H "content-type: application/json" \
  -d '{"message": "List every Jira tool that can transition or assign issues."}'
```

The model will call `SEARCH_TOOLS({query: "transition assign issue"})` and stream the matched slugs back.

## Connect setup

Jira uses Atlassian OAuth 2.0 (3LO) with PKCE against an app registered in the Atlassian developer console.

<Steps>
  <Step title="Register an Atlassian OAuth 2.0 (3LO) app">
    Go to [developer.atlassian.com/console/myapps](https://developer.atlassian.com/console/myapps) → **Create** → **OAuth 2.0 integration**. Under **Authorization**, add the callback URL:

    ```
    https://api.routemcp.io/api/v1/connect/oauth/callback
    ```

    Copy the **Client ID** and **Secret** shown under **Settings**.
  </Step>

  <Step title="Enable Jira API permissions">
    On the app's **Permissions** tab, add the **Jira platform REST API** and the **Jira Software API**, then grant these scopes:

    * `read:jira-work`
    * `write:jira-work`
    * `read:jira-user`
    * `manage:jira-project`
    * `manage:jira-configuration`
    * `manage:jira-webhook`
    * `offline_access` — required to receive refresh tokens
  </Step>

  <Step title="Connect via the widget">
    The end user opens the Connect widget, picks Jira, and is sent through Atlassian's consent screen.
  </Step>
</Steps>

## Usage

### Through the chat endpoint (recommended)

```bash theme={null}
curl -N -X POST "https://api.routemcp.io/api/v1/mcp/<workspace_id>/chat" \
  -H "x-api-key: sk_live_your_key" \
  -H "x-session-id: user-42" \
  -H "content-type: application/json" \
  -d '{"message": "Create a Jira issue in project ENG titled `Fix login redirect`, type Bug, assigned to me."}'
```

The agent loop picks `JIRA_CREATE_ISSUE`, executes it against the connected user's site, and streams the result back as SSE.

### Direct MCP JSON-RPC (Claude Desktop / Cursor / custom MCP clients)

```json theme={null}
{
  "mcpServers": {
    "routemcp": {
      "url": "https://api.routemcp.io/api/v1/mcp/<workspace_id>",
      "headers": {
        "x-api-key": "<YOUR_API_KEY>",
        "x-session-id": "<SESSION_ID>"
      }
    }
  }
}
```

Once connected, MCP clients can invoke any of the 97 tools by slug via the standard `tools/call` JSON-RPC method.
