jira-pilot 2.0.1 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +5 -5
- package/README.md +465 -373
- package/bin/jira.js +62 -55
- package/package.json +90 -90
- package/src/commands/ai-actions/plan.js +119 -0
- package/src/commands/ai-actions/review.js +102 -0
- package/src/commands/ai-actions/standup.js +42 -0
- package/src/commands/ai.js +212 -209
- package/src/commands/board.js +75 -66
- package/src/commands/bulk.js +108 -0
- package/src/commands/config.js +224 -154
- package/src/commands/dashboard.js +89 -0
- package/src/commands/git.js +59 -63
- package/src/commands/issue.js +925 -707
- package/src/commands/mcp.js +27 -20
- package/src/commands/project.js +59 -50
- package/src/commands/sprint.js +153 -78
- package/src/server/mcp-server.js +332 -332
- package/src/services/ai-service.js +165 -107
- package/src/services/api-service.js +115 -115
- package/src/utils/adf-parser.js +49 -49
- package/src/utils/config.js +97 -60
- package/src/utils/error-handler.js +41 -41
- package/src/utils/text-to-adf.js +34 -34
- package/src/utils/validators.js +88 -88
package/README.md
CHANGED
|
@@ -1,373 +1,465 @@
|
|
|
1
|
-
# Jira Pilot ✈️
|
|
2
|
-
|
|
3
|
-
**The AI-Powered Jira CLI for Humans and Agents.**
|
|
4
|
-
|
|
5
|
-
`jira-pilot` is a next-generation
|
|
6
|
-
|
|
7
|
-
- **For Humans:** A beautiful, interactive CLI to manage issues, sprints, boards, and code
|
|
8
|
-
- **For Agents:** A fully compliant **Model Context Protocol (MCP)** server with 8 tools that lets AI assistants (like Claude Desktop or Gemini) interact with your Jira instance safely.
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## Features at a Glance
|
|
13
|
-
|
|
14
|
-
### 👤 Human-Centric Features
|
|
15
|
-
| Feature | Description |
|
|
16
|
-
|---------|-------------|
|
|
17
|
-
| **Issue Management** | Create, view, list, transition, assign, and comment on issues |
|
|
18
|
-
| **
|
|
19
|
-
| **
|
|
20
|
-
| **
|
|
21
|
-
| **
|
|
22
|
-
| **
|
|
23
|
-
| **
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
| **
|
|
30
|
-
| **
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
| **
|
|
37
|
-
| **
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
npm
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
jira config
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
#
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
jira issue
|
|
155
|
-
jira issue
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
jira
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
#
|
|
183
|
-
jira
|
|
184
|
-
|
|
185
|
-
#
|
|
186
|
-
jira
|
|
187
|
-
jira
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
####
|
|
191
|
-
```bash
|
|
192
|
-
#
|
|
193
|
-
jira
|
|
194
|
-
|
|
195
|
-
#
|
|
196
|
-
jira
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
---
|
|
214
|
-
|
|
215
|
-
###
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
#
|
|
229
|
-
jira
|
|
230
|
-
|
|
231
|
-
#
|
|
232
|
-
jira
|
|
233
|
-
jira
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
####
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
jira
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
```
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
1
|
+
# Jira Pilot ✈️
|
|
2
|
+
|
|
3
|
+
**The AI-Powered Jira CLI and MCP Server for Humans and Agents.**
|
|
4
|
+
|
|
5
|
+
`jira-pilot` is a next-generation CLI that combines traditional developer tools with modern AI capabilities.
|
|
6
|
+
|
|
7
|
+
- **For Humans:** A beautiful, interactive CLI to manage issues, sprints, boards, and code. Now with **AI Code Reviews**, **Epic Planning**, **Daily Standups**, and **Natural Language JQL**.
|
|
8
|
+
- **For Agents:** A fully compliant **Model Context Protocol (MCP)** server with 8 tools that lets AI assistants (like Claude Desktop or Gemini) interact with your Jira instance safely.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Features at a Glance
|
|
13
|
+
|
|
14
|
+
### 👤 Human-Centric Features
|
|
15
|
+
| Feature | Description |
|
|
16
|
+
|---------|-------------|
|
|
17
|
+
| **Issue Management** | Create, edit, view, list, transition, assign, and comment on issues |
|
|
18
|
+
| **Power Tools** | Bulk transition, issue linking, watching, and quick search |
|
|
19
|
+
| **Interactive Wizards** | Step-by-step prompts with `enquirer` — no flags required |
|
|
20
|
+
| **Board & Sprint Management** | List boards, view active sprint issues |
|
|
21
|
+
| **Git Integration** | Create feature branches from issues with smart naming |
|
|
22
|
+
| **AI Copilot** | **Pro:** Code review, epic breakdown (plan), standups.<br>**Standard:** Summarize, draft, suggest, NL JQL. |
|
|
23
|
+
| **Rich Visualization** | Dashboard overview, spinners, and formatted output |
|
|
24
|
+
| **Export** | Output to JSON or Markdown files, pipeable JSON output |
|
|
25
|
+
|
|
26
|
+
### 🤖 Agentic Features (MCP)
|
|
27
|
+
| Feature | Description |
|
|
28
|
+
|---------|-------------|
|
|
29
|
+
| **8 MCP Tools** | list_issues, get_issue, create_issue, transition_issue, assign_issue, add_comment, list_projects, list_sprints |
|
|
30
|
+
| **LLM-Optimized** | Clean, structured JSON responses for efficient token usage |
|
|
31
|
+
| **Stdio Transport** | Standard MCP stdio server — works with any MCP client |
|
|
32
|
+
|
|
33
|
+
### 🧠 Multi-Provider AI
|
|
34
|
+
| Provider | Model |
|
|
35
|
+
|----------|-------|
|
|
36
|
+
| **OpenAI** | GPT-4o |
|
|
37
|
+
| **Google Gemini** | gemini-2.0-flash |
|
|
38
|
+
| **Anthropic** | claude-sonnet (claude-sonnet-4-20250514) |
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 🚀 Installation
|
|
43
|
+
|
|
44
|
+
### Global Install (Recommended)
|
|
45
|
+
```bash
|
|
46
|
+
npm install -g jira-pilot
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
After installing, the `jira` command is available globally.
|
|
50
|
+
|
|
51
|
+
### Local Development
|
|
52
|
+
```bash
|
|
53
|
+
git clone https://github.com/Aarul5/jira-pilot.git
|
|
54
|
+
cd jira-pilot
|
|
55
|
+
npm install
|
|
56
|
+
npm link # Makes 'jira' command available globally
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## ⚙️ Configuration
|
|
62
|
+
|
|
63
|
+
Before using the tool, set up your credentials. You can get an API Token from [Atlassian Account Settings](https://id.atlassian.com/manage-profile/security/api-tokens).
|
|
64
|
+
|
|
65
|
+
### Initial Setup
|
|
66
|
+
```bash
|
|
67
|
+
jira config setup
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
You will be prompted for:
|
|
71
|
+
1. **Jira Site URL** — e.g., `https://your-company.atlassian.net`
|
|
72
|
+
2. **Email** — Your Atlassian account email
|
|
73
|
+
3. **API Token** — The token you generated from Atlassian
|
|
74
|
+
4. **Enable AI** — Toggle AI features on/off
|
|
75
|
+
5. **AI Provider** — Choose between `openai`, `gemini`, or `anthropic`
|
|
76
|
+
6. **AI API Key** — Your API key for the selected provider
|
|
77
|
+
|
|
78
|
+
### View / Clear Configuration
|
|
79
|
+
```bash
|
|
80
|
+
jira config view # Show current configuration (keys are masked)
|
|
81
|
+
jira config clear # Remove all stored credentials
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Config Profiles
|
|
85
|
+
Manage credentials for multiple environments (e.g., Work vs. Personal, Prod vs. Dev).
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
jira config save work # Save current creds as profile 'work'
|
|
89
|
+
jira config use personal # Switch to profile 'personal'
|
|
90
|
+
jira config profiles # List all saved profiles
|
|
91
|
+
jira config delete-profile work
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
> **Note:** Credentials are stored securely using the `conf` library in your system's config directory.
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 📖 Usage
|
|
99
|
+
|
|
100
|
+
### 📋 Issue Management
|
|
101
|
+
|
|
102
|
+
#### List Issues
|
|
103
|
+
```bash
|
|
104
|
+
# List issues assigned to you in active sprints
|
|
105
|
+
jira issue list
|
|
106
|
+
|
|
107
|
+
# List with custom JQL
|
|
108
|
+
jira issue list --jql "project = PROJ AND priority = High"
|
|
109
|
+
|
|
110
|
+
# Filter by project, assignee, or status
|
|
111
|
+
jira issue list --project PROJ --assignee "john.doe" --status "In Progress"
|
|
112
|
+
|
|
113
|
+
# Limit results
|
|
114
|
+
jira issue list --limit 20
|
|
115
|
+
|
|
116
|
+
# Natural Language JQL (AI)
|
|
117
|
+
jira issue list --ask "high priority bugs assigned to me"
|
|
118
|
+
|
|
119
|
+
# Export results to file
|
|
120
|
+
jira issue list --export json # Creates issues-TIMESTAMP.json
|
|
121
|
+
jira issue list --export md # Creates issues-TIMESTAMP.md
|
|
122
|
+
|
|
123
|
+
# Pipeable JSON output (to stdout)
|
|
124
|
+
jira issue list --output json | jq .
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
#### Search Issues
|
|
128
|
+
Quick text search using JQL `text ~ "query"`:
|
|
129
|
+
```bash
|
|
130
|
+
jira issue search "login bug"
|
|
131
|
+
jira issue search "error 500" --project PROJ
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
#### Dashboard Overview
|
|
135
|
+
Get a high-level view of your work:
|
|
136
|
+
```bash
|
|
137
|
+
jira dashboard # Shows your open issues (by priority) and recent activity
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
#### View Issue Details
|
|
141
|
+
```bash
|
|
142
|
+
jira issue view PROJ-123
|
|
143
|
+
```
|
|
144
|
+
Displays: summary, status, priority, assignee, description, and recent comments.
|
|
145
|
+
|
|
146
|
+
#### Create Issue
|
|
147
|
+
```bash
|
|
148
|
+
# Interactive wizard (recommended)
|
|
149
|
+
jira issue create
|
|
150
|
+
|
|
151
|
+
# Non-interactive with flags
|
|
152
|
+
jira issue create -p PROJ -s "Fix login bug"
|
|
153
|
+
jira issue create -p PROJ -t Bug -s "Crash on save" --priority High
|
|
154
|
+
jira issue create -p PROJ -t Story -s "Add dark mode" -d "Users want a dark theme" -a me
|
|
155
|
+
jira issue create -p PROJ -s "New feature" -a me
|
|
156
|
+
|
|
157
|
+
# Edit Issue
|
|
158
|
+
jira issue edit PROJ-123 -s "New Summary" --priority High
|
|
159
|
+
jira issue edit PROJ-123 # Interactive field picker
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
**Interactive Wizard Steps:**
|
|
163
|
+
1. **Select Project** — Choose from your accessible projects
|
|
164
|
+
2. **Select Issue Type** — Bug, Story, Task, Epic, etc.
|
|
165
|
+
3. **Enter Summary** — Required issue title
|
|
166
|
+
4. **Enter Description** — Optional, converted to Jira ADF format
|
|
167
|
+
5. **Select Priority** — High, Medium, Low, etc.
|
|
168
|
+
6. **Assign** — Myself, Unassigned, or search by name/email
|
|
169
|
+
|
|
170
|
+
#### Transition Issue Status
|
|
171
|
+
```bash
|
|
172
|
+
# Interactive — shows available transitions
|
|
173
|
+
jira issue transition PROJ-123
|
|
174
|
+
|
|
175
|
+
# Direct — specify target status
|
|
176
|
+
jira issue transition PROJ-123 --status "In Progress"
|
|
177
|
+
jira issue transition PROJ-123 -s Done
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
#### Assign / Reassign Issue
|
|
181
|
+
```bash
|
|
182
|
+
# Interactive — choose Myself, Unassign, or Search
|
|
183
|
+
jira issue assign PROJ-123
|
|
184
|
+
|
|
185
|
+
# Quick assign
|
|
186
|
+
jira issue assign PROJ-123 -a me # Assign to yourself
|
|
187
|
+
jira issue assign PROJ-123 -a none # Unassign
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
#### Add Comment
|
|
191
|
+
```bash
|
|
192
|
+
# Interactive — prompts for comment text
|
|
193
|
+
jira issue comment PROJ-123
|
|
194
|
+
|
|
195
|
+
# Inline comment
|
|
196
|
+
jira issue comment PROJ-123 -m "Fixed in latest build"
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
#### Link, Watch, & Bulk
|
|
200
|
+
```bash
|
|
201
|
+
# Link Issues
|
|
202
|
+
jira issue link PROJ-123 PROJ-456 # Link two issues (interactive type)
|
|
203
|
+
jira issue link PROJ-123 PROJ-456 -t Blocks
|
|
204
|
+
|
|
205
|
+
# Watchers
|
|
206
|
+
jira issue watch PROJ-123 # Start watching
|
|
207
|
+
jira issue unwatch PROJ-123 # Stop watching
|
|
208
|
+
|
|
209
|
+
# Bulk Transition
|
|
210
|
+
jira bulk transition -j "project = PROJ AND status = Validated" -s Closed
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
### 📂 Projects & Boards
|
|
216
|
+
|
|
217
|
+
#### List Projects
|
|
218
|
+
```bash
|
|
219
|
+
jira project list
|
|
220
|
+
```
|
|
221
|
+
Displays: project key, name, lead, and style in a formatted table.
|
|
222
|
+
|
|
223
|
+
#### List Boards
|
|
224
|
+
```bash
|
|
225
|
+
# List all boards
|
|
226
|
+
jira board list
|
|
227
|
+
|
|
228
|
+
# Filter by project
|
|
229
|
+
jira board list -p PROJ
|
|
230
|
+
|
|
231
|
+
# Filter by type
|
|
232
|
+
jira board list -t scrum
|
|
233
|
+
jira board list -t kanban
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
#### List Sprints
|
|
237
|
+
```bash
|
|
238
|
+
# List active and future sprints
|
|
239
|
+
jira sprint list --board 5
|
|
240
|
+
|
|
241
|
+
# List by board name
|
|
242
|
+
jira sprint list --board "My Team Board"
|
|
243
|
+
|
|
244
|
+
# List issues in active sprint
|
|
245
|
+
jira sprint issues --board "My Team Board"
|
|
246
|
+
jira sprint issues --board 123 --output json
|
|
247
|
+
|
|
248
|
+
# Filter by state
|
|
249
|
+
jira sprint list --board 5 --state active
|
|
250
|
+
jira sprint list --board 5 --state closed
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
### 🌿 Git Integration
|
|
256
|
+
|
|
257
|
+
Create feature branches automatically named from the issue summary:
|
|
258
|
+
```bash
|
|
259
|
+
jira git branch PROJ-123
|
|
260
|
+
# Output: Switched to a new branch 'feature/PROJ-123-fix-login-modal'
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
### 🤖 AI Features
|
|
266
|
+
|
|
267
|
+
> **Requires:** AI features must be enabled via `jira config setup` with a valid API key for your chosen provider (OpenAI, Gemini, or Anthropic).
|
|
268
|
+
|
|
269
|
+
#### Summarize an Issue
|
|
270
|
+
Get an AI-generated TL;DR of long issue threads with comments:
|
|
271
|
+
```bash
|
|
272
|
+
jira ai summarize PROJ-123
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
#### Draft an Issue Description
|
|
276
|
+
Generate a structured issue description from rough notes or bullet points:
|
|
277
|
+
```bash
|
|
278
|
+
# Interactive — prompts for your notes
|
|
279
|
+
jira ai draft
|
|
280
|
+
|
|
281
|
+
# Inline with issue type context
|
|
282
|
+
jira ai draft -i "login fails, returns 500, only on mobile" -t bug
|
|
283
|
+
jira ai draft -i "add dark mode toggle to settings" -t story
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
#### Suggest Next Actions
|
|
287
|
+
Analyze an issue and get AI-powered suggestions for what to do next:
|
|
288
|
+
```bash
|
|
289
|
+
jira ai suggest PROJ-123
|
|
290
|
+
```
|
|
291
|
+
Returns: **Immediate Next Action**, **Potential Blockers**, **Suggested Status Transition**, and **Recommendations**.
|
|
292
|
+
|
|
293
|
+
#### AI Code Review
|
|
294
|
+
Analyze linked PRs/code changes against issue requirements:
|
|
295
|
+
```bash
|
|
296
|
+
jira ai review PROJ-123
|
|
297
|
+
```
|
|
298
|
+
*Requires `githubToken` in config.*
|
|
299
|
+
|
|
300
|
+
#### AI Epic Planning
|
|
301
|
+
Break down an Epic into child Stories/Tasks and bulk create them:
|
|
302
|
+
```bash
|
|
303
|
+
jira ai plan EPIC-123 # Interactive selection of proposed tasks
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
#### AI Standup Report
|
|
307
|
+
Generate a daily standup based on your recent activity:
|
|
308
|
+
```bash
|
|
309
|
+
jira ai standup
|
|
310
|
+
```
|
|
311
|
+
Outputs: **Yesterday**, **Today**, **Blockers**.
|
|
312
|
+
|
|
313
|
+
---
|
|
314
|
+
|
|
315
|
+
## 🧠 Using with AI Agents (MCP)
|
|
316
|
+
|
|
317
|
+
`jira-pilot` implements the **Model Context Protocol (MCP)**, making it plug-and-play for AI assistants.
|
|
318
|
+
|
|
319
|
+
### Starting the MCP Server
|
|
320
|
+
```bash
|
|
321
|
+
jira mcp
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
### Available MCP Tools
|
|
325
|
+
|
|
326
|
+
| Tool | Description | Required Args |
|
|
327
|
+
|------|-------------|---------------|
|
|
328
|
+
| `jira_list_issues` | Search issues via JQL | `jql` |
|
|
329
|
+
| `jira_get_issue` | Get full issue details | `issueKey` |
|
|
330
|
+
| `jira_create_issue` | Create a new issue (ADF) | `projectKey`, `summary` |
|
|
331
|
+
| `jira_transition_issue` | List or execute transitions | `issueKey` |
|
|
332
|
+
| `jira_assign_issue` | Assign/unassign an issue | `issueKey` |
|
|
333
|
+
| `jira_add_comment` | Add a comment (ADF) | `issueKey`, `body` |
|
|
334
|
+
| `jira_list_projects` | List accessible projects | — |
|
|
335
|
+
| `jira_list_sprints` | List sprints for a board | `boardId` |
|
|
336
|
+
|
|
337
|
+
### Claude Desktop Configuration
|
|
338
|
+
|
|
339
|
+
Add the following to your `claude_desktop_config.json`:
|
|
340
|
+
|
|
341
|
+
```json
|
|
342
|
+
{
|
|
343
|
+
"mcpServers": {
|
|
344
|
+
"jira": {
|
|
345
|
+
"command": "node",
|
|
346
|
+
"args": ["/absolute/path/to/jira-pilot/bin/jira.js", "mcp"]
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
### VS Code / Cursor Configuration
|
|
353
|
+
|
|
354
|
+
Add to your `.vscode/mcp.json` or equivalent:
|
|
355
|
+
|
|
356
|
+
```json
|
|
357
|
+
{
|
|
358
|
+
"servers": {
|
|
359
|
+
"jira-pilot": {
|
|
360
|
+
"command": "jira",
|
|
361
|
+
"args": ["mcp"]
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
### Example Agent Prompts
|
|
368
|
+
Once connected, you can ask your AI assistant things like:
|
|
369
|
+
- *"Show me my high-priority Jira issues"*
|
|
370
|
+
- *"Create a bug for the login crash on mobile in project PROJ"*
|
|
371
|
+
- *"Transition PROJ-123 to In Progress and assign it to me"*
|
|
372
|
+
- *"Add a comment to PROJ-456 saying the fix is deployed"*
|
|
373
|
+
- *"What sprints are active on board 5?"*
|
|
374
|
+
|
|
375
|
+
---
|
|
376
|
+
|
|
377
|
+
## 🧪 Testing & Verification
|
|
378
|
+
|
|
379
|
+
### Testing the MCP Server
|
|
380
|
+
You can test the MCP server functionality using the official [MCP Inspector](https://github.com/modelcontextprotocol/inspector):
|
|
381
|
+
|
|
382
|
+
```bash
|
|
383
|
+
npx @modelcontextprotocol/inspector node ./bin/jira.js mcp
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
This will launch a web interface where you can:
|
|
387
|
+
1. View all 8 available tools and their schemas
|
|
388
|
+
2. Execute tools with custom arguments
|
|
389
|
+
3. Inspect request/response logs
|
|
390
|
+
|
|
391
|
+
---
|
|
392
|
+
|
|
393
|
+
## 📦 CLI Command Reference
|
|
394
|
+
|
|
395
|
+
```
|
|
396
|
+
jira [command]
|
|
397
|
+
|
|
398
|
+
Commands:
|
|
399
|
+
config Configure Jira credentials & profiles
|
|
400
|
+
issue Manage Jira issues
|
|
401
|
+
project Manage Jira projects
|
|
402
|
+
board Manage Jira boards
|
|
403
|
+
sprint Manage Sprints
|
|
404
|
+
bulk Bulk operations on Jira issues
|
|
405
|
+
dashboard Show a quick overview of your Jira activity
|
|
406
|
+
git Git integration for Jira
|
|
407
|
+
ai AI Helper commands
|
|
408
|
+
mcp Start MCP Agent Server (Stdio)
|
|
409
|
+
|
|
410
|
+
Config Subcommands:
|
|
411
|
+
config setup Interactive setup
|
|
412
|
+
config view View current configuration
|
|
413
|
+
config clear Clear configuration
|
|
414
|
+
config save Save current config as a profile
|
|
415
|
+
config use Switch to a saved profile
|
|
416
|
+
config profiles List saved profiles
|
|
417
|
+
|
|
418
|
+
Issue Subcommands:
|
|
419
|
+
issue list List issues (JQL, filters, export)
|
|
420
|
+
issue view View issue details
|
|
421
|
+
issue create Create a new issue (wizard or flags)
|
|
422
|
+
issue edit Edit issue fields (interactive or flags)
|
|
423
|
+
issue transition Transition issue status
|
|
424
|
+
issue assign Assign or reassign an issue
|
|
425
|
+
issue comment Add a comment to an issue
|
|
426
|
+
issue search Quick text search
|
|
427
|
+
issue link Link two issues
|
|
428
|
+
issue watch Start watching an issue
|
|
429
|
+
issue unwatch Stop watching an issue
|
|
430
|
+
|
|
431
|
+
AI Subcommands:
|
|
432
|
+
ai summarize Summarize an issue using AI
|
|
433
|
+
ai draft Draft issue description from notes
|
|
434
|
+
ai suggest Suggest next actions for an issue
|
|
435
|
+
ai review AI code review of linked PR
|
|
436
|
+
ai plan Break down Epic into stories
|
|
437
|
+
ai standup Generate daily standup report
|
|
438
|
+
|
|
439
|
+
Board Subcommands:
|
|
440
|
+
board list List Jira boards
|
|
441
|
+
|
|
442
|
+
Sprint Subcommands:
|
|
443
|
+
sprint list List sprints for a board
|
|
444
|
+
sprint issues List issues in active sprint
|
|
445
|
+
|
|
446
|
+
Bulk Subcommands:
|
|
447
|
+
bulk transition Bulk transition issues matching JQL
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
---
|
|
451
|
+
|
|
452
|
+
## 🤝 Contributing
|
|
453
|
+
|
|
454
|
+
Contributions are welcome! Please open an issue or submit a pull request.
|
|
455
|
+
|
|
456
|
+
```bash
|
|
457
|
+
git clone https://github.com/Aarul5/jira-pilot.git
|
|
458
|
+
cd jira-pilot
|
|
459
|
+
npm install
|
|
460
|
+
npm link
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
## 📄 License
|
|
464
|
+
|
|
465
|
+
ISC
|