@crypto512/jicon-mcp 2.0.0 → 2.1.1
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/PROMPT.md +16 -197
- package/README.md +26 -25
- package/TOOL_LIST.md +213 -22
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/jira/activity-tools.d.ts +160 -0
- package/dist/jira/activity-tools.d.ts.map +1 -0
- package/dist/jira/activity-tools.js +971 -0
- package/dist/jira/activity-tools.js.map +1 -0
- package/dist/jira/client.d.ts +39 -1
- package/dist/jira/client.d.ts.map +1 -1
- package/dist/jira/client.js +70 -0
- package/dist/jira/client.js.map +1 -1
- package/dist/jira/types.d.ts +44 -0
- package/dist/jira/types.d.ts.map +1 -1
- package/dist/permissions/filter.d.ts.map +1 -1
- package/dist/permissions/filter.js +8 -4
- package/dist/permissions/filter.js.map +1 -1
- package/dist/permissions/tool-registry.d.ts +8 -6
- package/dist/permissions/tool-registry.d.ts.map +1 -1
- package/dist/permissions/tool-registry.js +14 -4
- package/dist/permissions/tool-registry.js.map +1 -1
- package/dist/tempo/client.d.ts +6 -0
- package/dist/tempo/client.d.ts.map +1 -1
- package/dist/tempo/client.js +15 -1
- package/dist/tempo/client.js.map +1 -1
- package/dist/tempo/tools.d.ts +6 -2
- package/dist/tempo/tools.d.ts.map +1 -1
- package/dist/tempo/tools.js +15 -6
- package/dist/tempo/tools.js.map +1 -1
- package/dist/utils/buffer-pipeline/schema.d.ts +26 -26
- package/dist/utils/buffer-tools.d.ts +10 -10
- package/dist/utils/buffer-tools.js +2 -2
- package/dist/utils/buffer-tools.js.map +1 -1
- package/dist/utils/date-tools.d.ts +78 -0
- package/dist/utils/date-tools.d.ts.map +1 -0
- package/dist/utils/date-tools.js +312 -0
- package/dist/utils/date-tools.js.map +1 -0
- package/dist/utils/jicon-help.d.ts +5 -5
- package/dist/utils/jicon-help.d.ts.map +1 -1
- package/dist/utils/jicon-help.js +166 -5
- package/dist/utils/jicon-help.js.map +1 -1
- package/dist/utils/plantuml/validation-helper.d.ts +2 -2
- package/dist/utils/plantuml/validation-helper.js +2 -2
- package/dist/utils/xhtml/plantuml.d.ts +4 -4
- package/dist/utils/xhtml/plantuml.js +5 -5
- package/dist/utils/xhtml/plantuml.js.map +1 -1
- package/dist/utils/xhtml/validator.d.ts +2 -2
- package/dist/utils/xhtml/validator.js +4 -4
- package/dist/utils/xhtml/validator.js.map +1 -1
- package/package.json +1 -1
package/PROMPT.md
CHANGED
|
@@ -1,214 +1,33 @@
|
|
|
1
1
|
# Jicon MCP Agent Prompt
|
|
2
2
|
|
|
3
|
-
You are an assistant with access to the Jicon MCP server for Jira, Confluence, and Tempo operations.
|
|
3
|
+
You are an assistant with access to the Jicon MCP server for Jira, Confluence, and Tempo operations.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Before ANY Operation: Call Help
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
**Always start by reading the help documentation:**
|
|
8
8
|
|
|
9
|
-
**Before ANY jicon operation, you MUST read the relevant help documentation.**
|
|
10
|
-
|
|
11
|
-
### Step 1: Initial Orientation
|
|
12
9
|
```
|
|
13
|
-
help() ←
|
|
10
|
+
help() ← Returns workflow decision tree and quick reference
|
|
14
11
|
```
|
|
15
12
|
|
|
16
|
-
|
|
13
|
+
Then use topic-specific help for your task:
|
|
17
14
|
|
|
18
|
-
| Task |
|
|
19
|
-
|
|
20
|
-
| Search Jira
|
|
15
|
+
| Task | Help Command |
|
|
16
|
+
|------|--------------|
|
|
17
|
+
| Search Jira | `help(topic="jql")` |
|
|
21
18
|
| Search Confluence | `help(topic="cql")` |
|
|
22
19
|
| Edit Confluence pages | `help(topic="buffers")` then `help(topic="storage")` |
|
|
23
|
-
|
|
|
24
|
-
| Work with large content | `help(topic="buffers")` |
|
|
25
|
-
|
|
26
|
-
**DO NOT proceed with operations until you have read the relevant help topic.**
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## PlantUML Protocol (STRICT)
|
|
31
|
-
|
|
32
|
-
PlantUML operations require a specific workflow. Deviations cause errors.
|
|
33
|
-
|
|
34
|
-
### Mandatory Workflow
|
|
35
|
-
|
|
36
|
-
```
|
|
37
|
-
1. plantuml_validate(code="@startuml\n...\n@enduml")
|
|
38
|
-
↓
|
|
39
|
-
If errors → FIX and re-validate (see Error Handling below)
|
|
40
|
-
↓
|
|
41
|
-
2. buffer_edit(bufferId, after=ID, plantuml="@startuml\n...\n@enduml")
|
|
42
|
-
↓
|
|
43
|
-
3. confluence_draft_save(draftId, bufferId)
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
### Critical Rules
|
|
47
|
-
|
|
48
|
-
1. **ALWAYS validate first** - Even for "simple" diagrams
|
|
49
|
-
2. **Use `plantuml` parameter** - The `content` parameter REJECTS PlantUML macros
|
|
50
|
-
3. **Include markers required** - Every diagram needs `@startuml` and `@enduml`
|
|
51
|
-
4. **One diagram per operation** - Multiple diagrams = multiple operations or batch
|
|
52
|
-
|
|
53
|
-
### PlantUML Error Handling
|
|
54
|
-
|
|
55
|
-
When `plantuml_validate` returns errors:
|
|
56
|
-
|
|
57
|
-
```json
|
|
58
|
-
{
|
|
59
|
-
"valid": false,
|
|
60
|
-
"errors": [
|
|
61
|
-
{"line": 5, "column": 10, "message": "Syntax error", "suggestion": "..."}
|
|
62
|
-
]
|
|
63
|
-
}
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
**You MUST:**
|
|
67
|
-
1. Read the error location (line, column)
|
|
68
|
-
2. Read the suggestion if provided
|
|
69
|
-
3. Fix the PlantUML code at that location
|
|
70
|
-
4. Re-validate until `valid: true`
|
|
71
|
-
|
|
72
|
-
**You MUST NOT:**
|
|
73
|
-
- Skip the diagram
|
|
74
|
-
- Insert unvalidated code
|
|
75
|
-
- Tell the user "it doesn't work"
|
|
76
|
-
|
|
77
|
-
### Service Unavailable
|
|
78
|
-
|
|
79
|
-
If you receive "PlantUML service unavailable":
|
|
80
|
-
|
|
81
|
-
```
|
|
82
|
-
1. plantuml_status() ← Check what's wrong
|
|
83
|
-
2. Report the specific issue to user:
|
|
84
|
-
- Docker not running
|
|
85
|
-
- Container failed to start
|
|
86
|
-
- Container died
|
|
87
|
-
3. Suggest: "Please ensure Docker is running and restart the session"
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
## Buffer & Element ID Editing
|
|
93
|
-
|
|
94
|
-
Confluence content is edited via buffers using stable element IDs.
|
|
95
|
-
|
|
96
|
-
### Workflow
|
|
97
|
-
|
|
98
|
-
```
|
|
99
|
-
1. Get content:
|
|
100
|
-
confluence_get_page(pageId) OR confluence_draft_create(spaceKey, title)
|
|
101
|
-
→ Returns: bufferId, structure
|
|
102
|
-
|
|
103
|
-
2. Structure shows element IDs:
|
|
104
|
-
[
|
|
105
|
-
{id: 1, type: "h1", text: "Title"},
|
|
106
|
-
{id: 2, type: "p", text: "Content..."},
|
|
107
|
-
{id: 3, type: "plantuml", text: "Diagram"}
|
|
108
|
-
]
|
|
20
|
+
| PlantUML diagrams | `help(topic="plantuml")` |
|
|
109
21
|
|
|
110
|
-
|
|
111
|
-
buffer_edit(bufferId, after=1, content="<p>New paragraph</p>")
|
|
112
|
-
buffer_edit(bufferId, replace=3, plantuml="@startuml...@enduml")
|
|
113
|
-
buffer_edit(bufferId, remove=2)
|
|
114
|
-
|
|
115
|
-
4. Save:
|
|
116
|
-
confluence_draft_save(draftId, bufferId)
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
### Batch Operations (Preferred for Multiple Edits)
|
|
120
|
-
|
|
121
|
-
```
|
|
122
|
-
buffer_edit(bufferId, operations=[
|
|
123
|
-
{after: 1, content: "<h2>Section</h2>"},
|
|
124
|
-
{after: 2, plantuml: "@startuml\nA -> B\n@enduml"},
|
|
125
|
-
{remove: 5}
|
|
126
|
-
])
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
Benefits: Single parse, single validation, atomic execution.
|
|
130
|
-
|
|
131
|
-
---
|
|
132
|
-
|
|
133
|
-
## ERROR HANDLING MANDATE
|
|
134
|
-
|
|
135
|
-
### NEVER Skip Tasks Due to Errors
|
|
136
|
-
|
|
137
|
-
When you encounter an error:
|
|
138
|
-
|
|
139
|
-
1. **READ** the full error message (includes diagnostics)
|
|
140
|
-
2. **ANALYZE** the cause using error details
|
|
141
|
-
3. **FIX** the issue based on error guidance
|
|
142
|
-
4. **RETRY** the operation
|
|
143
|
-
5. **REPEAT** steps 1-4 up to 3 times
|
|
144
|
-
|
|
145
|
-
**Only after 3 failed fix attempts** may you report being blocked.
|
|
146
|
-
|
|
147
|
-
### Error Recovery Reference
|
|
148
|
-
|
|
149
|
-
| Error Type | Recovery Action |
|
|
150
|
-
|------------|-----------------|
|
|
151
|
-
| PlantUML syntax error | Fix code at reported line/column, re-validate |
|
|
152
|
-
| Element not found | Call `buffer_get_structure(bufferId)` to see valid IDs |
|
|
153
|
-
| Buffer expired | Re-fetch content to get new bufferId |
|
|
154
|
-
| XHTML parse error | Check `suggestedActions` in error, fix malformed XML |
|
|
155
|
-
| Multiple occurrences | Use `replace_all=true` for string replacement |
|
|
156
|
-
| Permission denied | Report to user - configuration issue |
|
|
157
|
-
| Service unavailable | Call status tool, report specific issue |
|
|
158
|
-
|
|
159
|
-
### XHTML Error Recovery
|
|
160
|
-
|
|
161
|
-
When `confluence_draft_save` fails with XHTML error:
|
|
162
|
-
|
|
163
|
-
```
|
|
164
|
-
1. Error includes: errorLocation (element ID), suggestedActions
|
|
165
|
-
2. buffer_get_element(bufferId, elementId) ← Inspect problem element
|
|
166
|
-
3. buffer_edit(bufferId, replace=elementId, content="<fixed XHTML>")
|
|
167
|
-
4. Retry save
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
---
|
|
171
|
-
|
|
172
|
-
## Quick Reference
|
|
173
|
-
|
|
174
|
-
### Help Topics
|
|
22
|
+
## Available Topics
|
|
175
23
|
|
|
176
24
|
| Topic | Content |
|
|
177
25
|
|-------|---------|
|
|
178
26
|
| (none) | Workflow decision tree, core patterns |
|
|
179
|
-
| `jql` | Jira Query Language syntax
|
|
180
|
-
| `cql` | Confluence Query Language syntax
|
|
181
|
-
| `storage` | Confluence XHTML format
|
|
182
|
-
| `plantuml` | PlantUML validation workflow
|
|
183
|
-
| `buffers` | Element ID system, buffer operations
|
|
184
|
-
|
|
185
|
-
### Common PlantUML Fixes
|
|
186
|
-
|
|
187
|
-
| Error | Fix |
|
|
188
|
-
|-------|-----|
|
|
189
|
-
| Missing @startuml | Add `@startuml` at start |
|
|
190
|
-
| Missing @enduml | Add `@enduml` at end |
|
|
191
|
-
| Unexpected token | Check syntax at reported line |
|
|
192
|
-
| Unknown entity | Verify class/actor/component name spelling |
|
|
193
|
-
| C4 not recognized | Add `!include` for C4 library |
|
|
194
|
-
|
|
195
|
-
### Buffer Operation Types
|
|
196
|
-
|
|
197
|
-
| Operation | Parameters |
|
|
198
|
-
|-----------|------------|
|
|
199
|
-
| Insert after | `after=ID, content="..." OR plantuml="..."` |
|
|
200
|
-
| Insert before | `before=ID, content="..." OR plantuml="..."` |
|
|
201
|
-
| Replace | `replace=ID, content="..." OR plantuml="..."` |
|
|
202
|
-
| Remove | `remove=ID` |
|
|
203
|
-
| Append | `append=true, content="..." OR plantuml="..."` |
|
|
204
|
-
|
|
205
|
-
---
|
|
206
|
-
|
|
207
|
-
## Core Principles
|
|
27
|
+
| `jql` | Jira Query Language syntax |
|
|
28
|
+
| `cql` | Confluence Query Language syntax |
|
|
29
|
+
| `storage` | Confluence XHTML format |
|
|
30
|
+
| `plantuml` | PlantUML validation workflow |
|
|
31
|
+
| `buffers` | Element ID system, buffer operations |
|
|
208
32
|
|
|
209
|
-
|
|
210
|
-
2. **Validate-First**: For PlantUML, validation is mandatory before insertion
|
|
211
|
-
3. **Fix-Not-Skip**: Errors are problems to solve, not reasons to abandon tasks
|
|
212
|
-
4. **ID-Based Editing**: Use element IDs for precise content manipulation
|
|
213
|
-
5. **Batch When Possible**: Multiple edits should use operations array
|
|
214
|
-
6. **Retry With Fixes**: Failed operations require analysis and correction, not abandonment
|
|
33
|
+
The help system provides complete guidance for all operations. Read it before proceeding.
|
package/README.md
CHANGED
|
@@ -31,9 +31,11 @@ Once configured, just ask in natural language:
|
|
|
31
31
|
|
|
32
32
|
### Jira
|
|
33
33
|
- *"Find all high-priority bugs assigned to me"*
|
|
34
|
+
- *"What happened on project ACME this week?"* (Activity digest)
|
|
34
35
|
- *"Create a task for implementing user authentication"*
|
|
35
36
|
- *"Move PROJ-123 to Done and add a comment that it's deployed"*
|
|
36
37
|
- *"Show me the current sprint's progress"*
|
|
38
|
+
- *"Summarize recent discussions about authentication"* (Comment analysis)
|
|
37
39
|
- *"Link PROJ-456 as blocking PROJ-789"*
|
|
38
40
|
|
|
39
41
|
### Confluence
|
|
@@ -136,7 +138,7 @@ All configuration is done through environment variables.
|
|
|
136
138
|
| `JICON_PERMISSIONS_WHITELIST` | comma-separated | - | Tools to allow (custom mode) |
|
|
137
139
|
| `JICON_PERMISSIONS_BLACKLIST` | comma-separated | - | Tools to deny (custom mode) |
|
|
138
140
|
| `JICON_CONFLUENCE_WRITE_HOME` | `true`\|`false` | `false` | Restrict Confluence writes to personal space |
|
|
139
|
-
| `
|
|
141
|
+
| `JICON_PLANTUML_SERVER_URL` | string | - | PlantUML server URL (e.g., `http://localhost:8080`) |
|
|
140
142
|
| `JICON_MAX_OUTPUT` | number | `16000` | Maximum output characters |
|
|
141
143
|
|
|
142
144
|
**Note:** Tempo uses the same Jira credentials - no separate configuration needed.
|
|
@@ -207,34 +209,20 @@ This configuration allows:
|
|
|
207
209
|
|
|
208
210
|
**Individual tools** (for blacklist): See [TOOL_LIST.md](TOOL_LIST.md) for all tool names
|
|
209
211
|
|
|
210
|
-
###
|
|
212
|
+
### PlantUML Configuration
|
|
211
213
|
|
|
212
|
-
PlantUML validation requires
|
|
214
|
+
PlantUML validation requires an external PlantUML server. If not configured, PlantUML tools are disabled.
|
|
213
215
|
|
|
214
|
-
**
|
|
216
|
+
**Configure PlantUML server**:
|
|
215
217
|
```json
|
|
216
218
|
{
|
|
217
219
|
"env": {
|
|
218
|
-
"
|
|
220
|
+
"JICON_PLANTUML_SERVER_URL": "http://localhost:8080"
|
|
219
221
|
}
|
|
220
222
|
}
|
|
221
223
|
```
|
|
222
224
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
### PlantUML Include Expansion
|
|
226
|
-
|
|
227
|
-
C4-PlantUML, AWS icons, and Azure diagrams require `!include` directives. By default, Jicon expands these includes client-side before validation and sending to Confluence.
|
|
228
|
-
|
|
229
|
-
**Whitelisted URLs:**
|
|
230
|
-
- `https://raw.githubusercontent.com/plantuml-stdlib/` - C4, Azure, Kubernetes, etc.
|
|
231
|
-
- `https://raw.githubusercontent.com/plantuml/` - Official PlantUML stdlib
|
|
232
|
-
- `https://raw.githubusercontent.com/awslabs/aws-icons-for-plantuml/` - AWS icons
|
|
233
|
-
|
|
234
|
-
**Disable include expansion** (if you encounter issues):
|
|
235
|
-
```json
|
|
236
|
-
{ "plantumlInclude": false }
|
|
237
|
-
```
|
|
225
|
+
You can use the public PlantUML server (`http://www.plantuml.com/plantuml`) or run your own with Docker: `docker run -d -p 8080:8080 plantuml/plantuml-server:jetty`.
|
|
238
226
|
|
|
239
227
|
## Authentication
|
|
240
228
|
|
|
@@ -257,7 +245,7 @@ C4-PlantUML, AWS icons, and Azure diagrams require `!include` directives. By def
|
|
|
257
245
|
- **Jira** Server/Data Center or Cloud with API access
|
|
258
246
|
- **Confluence** (optional) Server/Data Center or Cloud
|
|
259
247
|
- **Tempo** (optional) Timesheets plugin
|
|
260
|
-
- **
|
|
248
|
+
- **PlantUML Server** (optional) External server for diagram validation
|
|
261
249
|
|
|
262
250
|
## API Limitations
|
|
263
251
|
|
|
@@ -290,15 +278,28 @@ This achieves "draft before publish" semantics within API constraints.
|
|
|
290
278
|
|
|
291
279
|
## Features
|
|
292
280
|
|
|
293
|
-
###
|
|
281
|
+
### 75 Tools Across 3 Services
|
|
294
282
|
|
|
295
283
|
| Service | Capabilities |
|
|
296
284
|
|---------|--------------|
|
|
297
|
-
| **Jira** (
|
|
285
|
+
| **Jira** (22 tools) | Search, create, update, transition issues; manage comments, links, watchers; access boards, sprints, worklogs; **LLM-powered analysis** |
|
|
298
286
|
| **Confluence** (21 tools) | Search, create, edit pages via drafts; manage spaces, comments, attachments; PlantUML diagrams; review workflow |
|
|
299
287
|
| **Tempo** (12 tools) | Log time, view/update worklogs, team tracking, accounts |
|
|
300
288
|
|
|
301
|
-
Plus utility tools for content buffering, time calculations, URL generation, and built-in help.
|
|
289
|
+
Plus utility tools for content buffering, time calculations, URL generation, date resolution, and built-in help.
|
|
290
|
+
|
|
291
|
+
### LLM-Powered Analysis Tools
|
|
292
|
+
|
|
293
|
+
These **intelligent entry points** are designed for AI synthesis - they return pre-processed content directly to the LLM (not buffered) for analysis and insight generation:
|
|
294
|
+
|
|
295
|
+
| Tool | Purpose |
|
|
296
|
+
|------|---------|
|
|
297
|
+
| **Activity Digest** | Fetches comments, status/priority/assignee changes across issues. Ask: *"What happened on project X this week?"* |
|
|
298
|
+
| **Recent Comments** | Aggregates comments across multiple issues. Ask: *"Any blockers mentioned in recent discussions?"* |
|
|
299
|
+
| **Changelog** | Tracks field changes across issues. Ask: *"What issues had priority escalations?"* |
|
|
300
|
+
| **Analyze Epic** | Comprehensive Epic analysis: hierarchy breakdown, time metrics, velocity, linked Confluence pages, recent discussions. Ask: *"Analyze Epic PROJ-100 for progress and risks"* |
|
|
301
|
+
|
|
302
|
+
These tools return **markdown formatted for LLM comprehension** with pre-computed summaries (counts, breakdowns), enabling the AI to focus on **insight and synthesis** rather than data extraction.
|
|
302
303
|
|
|
303
304
|
### Buffered Responses
|
|
304
305
|
|
|
@@ -329,7 +330,7 @@ This means the AI assistant **never directly modifies** existing pages - all cha
|
|
|
329
330
|
|
|
330
331
|
### PlantUML Diagrams
|
|
331
332
|
|
|
332
|
-
Create and validate UML diagrams directly in Confluence pages.
|
|
333
|
+
Create and validate UML diagrams directly in Confluence pages. Configure `JICON_PLANTUML_SERVER_URL` to enable diagram validation. If not configured, PlantUML tools return clear errors explaining how to enable them.
|
|
333
334
|
|
|
334
335
|
## Tool Reference
|
|
335
336
|
|
package/TOOL_LIST.md
CHANGED
|
@@ -5,14 +5,15 @@ This document provides a comprehensive reference of all available tools in the J
|
|
|
5
5
|
|
|
6
6
|
## Summary
|
|
7
7
|
|
|
8
|
-
**Total Tools**:
|
|
9
|
-
- **Jira Tools**:
|
|
8
|
+
**Total Tools**: 75
|
|
9
|
+
- **Jira Tools**: 22 (17 read + 5 write)
|
|
10
10
|
- **Confluence Tools**: 21 (13 read + 8 write)
|
|
11
11
|
- **Tempo Tools**: 12 (9 read + 3 write)
|
|
12
12
|
- **Buffer Tools**: 11
|
|
13
13
|
- **Workload Tools**: 2
|
|
14
14
|
- **URL Tools**: 2
|
|
15
15
|
- **Jicon Help Tools**: 1
|
|
16
|
+
- **Date Tools**: 1
|
|
16
17
|
- **PlantUML Tools**: 3
|
|
17
18
|
|
|
18
19
|
**Note**: All data-heavy tools (search, list, get) **always** return buffered responses with metadata for origin tracking:
|
|
@@ -138,7 +139,7 @@ When XHTML validation fails, the response includes element ID and suggested acti
|
|
|
138
139
|
|
|
139
140
|
---
|
|
140
141
|
|
|
141
|
-
## Jira Tools (
|
|
142
|
+
## Jira Tools (21)
|
|
142
143
|
|
|
143
144
|
### 1. jira_search_issues
|
|
144
145
|
**Description**: Search for Jira issues using JQL. Auto-fetches all results (up to 5000).
|
|
@@ -389,6 +390,142 @@ When XHTML validation fails, the response includes element ID and suggested acti
|
|
|
389
390
|
|
|
390
391
|
---
|
|
391
392
|
|
|
393
|
+
### 19. jira_get_activity_digest
|
|
394
|
+
**Description**: Get recent activity across issues for LLM analysis. Returns DIRECTLY (not buffered).
|
|
395
|
+
**Use Cases**: Project activity summary, team updates, blocker detection, weekly reports
|
|
396
|
+
|
|
397
|
+
Fetches comments, status changes, priority changes, and assignee changes - formatted for LLM synthesis.
|
|
398
|
+
|
|
399
|
+
| Parameter | Type | Required | Description |
|
|
400
|
+
|-----------|------|----------|-------------|
|
|
401
|
+
| projectKey | string | ✗ | Filter by project key |
|
|
402
|
+
| jql | string | ✗ | Full JQL query for flexible scoping |
|
|
403
|
+
| issueKeys | string[] | ✗ | Specific issue keys to include |
|
|
404
|
+
| since | string | ✗ | Time range: "1d", "7d", "30d", or ISO date (default: "7d") |
|
|
405
|
+
| includeComments | boolean | ✗ | Include comments (default: true) |
|
|
406
|
+
| includeStatusChanges | boolean | ✗ | Include status changes (default: true) |
|
|
407
|
+
| includePriorityChanges | boolean | ✗ | Include priority changes (default: true) |
|
|
408
|
+
| includeAssigneeChanges | boolean | ✗ | Include assignee changes (default: true) |
|
|
409
|
+
| maxActivities | number | ✗ | Maximum activities to return (default: 50) |
|
|
410
|
+
| commentMaxLength | number | ✗ | Max length for comment text (default: 500) |
|
|
411
|
+
|
|
412
|
+
**At least one scoping parameter required**: `projectKey`, `jql`, or `issueKeys`
|
|
413
|
+
|
|
414
|
+
**Returns**: Markdown-formatted activity digest with pre-computed summary:
|
|
415
|
+
```markdown
|
|
416
|
+
# Activity Digest: Project ACME (Last 7 days)
|
|
417
|
+
|
|
418
|
+
## ACME-123: Payment gateway integration
|
|
419
|
+
- **status**: "In Progress" → "In Review" (Jan 28, by @john)
|
|
420
|
+
**Comments (2)**:
|
|
421
|
+
- @john (Jan 28 14:30): "Completed Stripe integration..."
|
|
422
|
+
- @sarah (Jan 29 09:15): "Found edge case with refunds..."
|
|
423
|
+
|
|
424
|
+
---
|
|
425
|
+
## Summary
|
|
426
|
+
- **Issues with activity**: 12
|
|
427
|
+
- **Status changes**: 8 (3 to Done/Closed)
|
|
428
|
+
- **Priority changes**: 2
|
|
429
|
+
- **Comments**: 15
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
---
|
|
433
|
+
|
|
434
|
+
### 20. jira_get_recent_comments
|
|
435
|
+
**Description**: Get comments across multiple issues for discussion analysis. Returns DIRECTLY (not buffered).
|
|
436
|
+
**Use Cases**: Discussion summaries, finding comments about specific topics, tracking team communication
|
|
437
|
+
|
|
438
|
+
| Parameter | Type | Required | Description |
|
|
439
|
+
|-----------|------|----------|-------------|
|
|
440
|
+
| projectKey | string | ✗ | Filter by project key |
|
|
441
|
+
| jql | string | ✗ | Full JQL query for flexible scoping |
|
|
442
|
+
| issueKeys | string[] | ✗ | Specific issue keys to include |
|
|
443
|
+
| since | string | ✗ | Time range: "1d", "7d", "30d", or ISO date (default: "7d") |
|
|
444
|
+
| authorKey | string | ✗ | Filter by comment author username |
|
|
445
|
+
| maxComments | number | ✗ | Maximum comments to return (default: 30) |
|
|
446
|
+
| includeContext | boolean | ✗ | Include issue summary/status (default: true) |
|
|
447
|
+
|
|
448
|
+
**At least one scoping parameter required**: `projectKey`, `jql`, or `issueKeys`
|
|
449
|
+
|
|
450
|
+
**Returns**: Markdown-formatted comments grouped by issue with summary statistics.
|
|
451
|
+
|
|
452
|
+
---
|
|
453
|
+
|
|
454
|
+
### 21. jira_get_changelog
|
|
455
|
+
**Description**: Get field changes across issues for tracking what happened. Returns DIRECTLY (not buffered).
|
|
456
|
+
**Use Cases**: Status change tracking, priority escalation analysis, assignment history
|
|
457
|
+
|
|
458
|
+
| Parameter | Type | Required | Description |
|
|
459
|
+
|-----------|------|----------|-------------|
|
|
460
|
+
| projectKey | string | ✗ | Filter by project key |
|
|
461
|
+
| jql | string | ✗ | Full JQL query for flexible scoping |
|
|
462
|
+
| issueKeys | string[] | ✗ | Specific issue keys to include |
|
|
463
|
+
| since | string | ✗ | Time range: "1d", "7d", "30d", or ISO date (default: "7d") |
|
|
464
|
+
| fields | string[] | ✗ | Fields to track (default: ["status", "priority", "assignee", "resolution"]) |
|
|
465
|
+
| maxChanges | number | ✗ | Maximum changes to return (default: 50) |
|
|
466
|
+
|
|
467
|
+
**At least one scoping parameter required**: `projectKey`, `jql`, or `issueKeys`
|
|
468
|
+
|
|
469
|
+
**Returns**: Markdown-formatted changelog with field breakdown:
|
|
470
|
+
```markdown
|
|
471
|
+
# Changelog: Project ACME (Last 7 days)
|
|
472
|
+
|
|
473
|
+
## ACME-123: Payment gateway integration
|
|
474
|
+
- Jan 28 14:00: **status**: "In Progress" → "In Review" (by @john)
|
|
475
|
+
- Jan 25 09:00: **assignee**: "Unassigned" → "@john" (by @lead)
|
|
476
|
+
|
|
477
|
+
---
|
|
478
|
+
**Total**: 12 changes across 6 issues
|
|
479
|
+
**By field**: status (7), priority (3), assignee (2)
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
---
|
|
483
|
+
|
|
484
|
+
### 22. jira_analyze_epic
|
|
485
|
+
**Description**: Comprehensive Epic/Feature analysis for LLM insights. Returns DIRECTLY (not buffered).
|
|
486
|
+
**Use Cases**: Epic progress analysis, velocity tracking, time metrics, feature status
|
|
487
|
+
|
|
488
|
+
| Parameter | Type | Required | Description |
|
|
489
|
+
|-----------|------|----------|-------------|
|
|
490
|
+
| issueKey | string | ✓ | Epic or parent issue key (e.g., PROJ-123) |
|
|
491
|
+
| includeComments | boolean | ✗ | Include recent comments (default: true) |
|
|
492
|
+
| commentDays | number | ✗ | Days of comments to include (default: 14) |
|
|
493
|
+
| maxComments | number | ✗ | Max comments per issue (default: 5) |
|
|
494
|
+
|
|
495
|
+
**Returns**: Comprehensive markdown analysis including:
|
|
496
|
+
- **Issue Hierarchy**: Breakdown by type (Epic, Story, Task, Sub-task) with completion percentages
|
|
497
|
+
- **Time Metrics**: Time spent, original estimate, remaining, burn rate, overrun warnings
|
|
498
|
+
- **Progress Indicators**: Completion rate, in-flight issues, projected total
|
|
499
|
+
- **Architecture Context**: Components and labels across all issues
|
|
500
|
+
- **Linked Resources**: Confluence pages, related issues
|
|
501
|
+
- **Recent Discussions**: Comments from the last N days
|
|
502
|
+
|
|
503
|
+
**Example output**:
|
|
504
|
+
```markdown
|
|
505
|
+
# Epic Analysis: PROJ-100
|
|
506
|
+
**Payment Gateway Integration**
|
|
507
|
+
|
|
508
|
+
## Issue Hierarchy
|
|
509
|
+
|
|
510
|
+
| Type | Total | Done | In Progress | To Do | Completion |
|
|
511
|
+
|------|-------|------|-------------|-------|------------|
|
|
512
|
+
| Story | 5 | 3 | 1 | 1 | 60% |
|
|
513
|
+
| Sub-task | 12 | 8 | 2 | 2 | 67% |
|
|
514
|
+
| **TOTAL** | **17** | **11** | **3** | **3** | **65%** |
|
|
515
|
+
|
|
516
|
+
## Time Metrics
|
|
517
|
+
- **Time Spent**: 2w 3d
|
|
518
|
+
- **Original Estimate**: 3w
|
|
519
|
+
- **Remaining Estimate**: 1w 2d
|
|
520
|
+
- **Burn Rate**: 77% of estimate consumed
|
|
521
|
+
|
|
522
|
+
## Analysis Summary
|
|
523
|
+
This Epic contains **17 issues** with **65% completion**.
|
|
524
|
+
Currently **3 issues** are in progress.
|
|
525
|
+
```
|
|
526
|
+
|
|
527
|
+
---
|
|
528
|
+
|
|
392
529
|
## Confluence Tools (21)
|
|
393
530
|
|
|
394
531
|
### 1. confluence_search_content
|
|
@@ -1678,7 +1815,7 @@ buffer_get_structure({ bufferId: "buf_xxx" })
|
|
|
1678
1815
|
| Parameter | Type | Required | Description |
|
|
1679
1816
|
|-----------|------|----------|-------------|
|
|
1680
1817
|
| bufferId | string | ✓ | Buffer ID containing XHTML content |
|
|
1681
|
-
| validatePlantUml | boolean | ✗ | Validate PlantUML syntax via
|
|
1818
|
+
| validatePlantUml | boolean | ✗ | Validate PlantUML syntax via PlantUML server (default: true) |
|
|
1682
1819
|
|
|
1683
1820
|
**Type Requirement**: Buffer must have `contentType: "xhtml"`. Returns error if buffer is JSON or plain text.
|
|
1684
1821
|
|
|
@@ -1687,11 +1824,11 @@ buffer_get_structure({ bufferId: "buf_xxx" })
|
|
|
1687
1824
|
- Required attributes on Confluence elements (ac:name, ri:space-key, etc.)
|
|
1688
1825
|
- Valid layout section types (single, two_equal, etc.)
|
|
1689
1826
|
- Known macro names (warns for unknown macros)
|
|
1690
|
-
- PlantUML syntax (via
|
|
1827
|
+
- PlantUML syntax (via PlantUML server, if configured)
|
|
1691
1828
|
|
|
1692
1829
|
**PlantUML validation**:
|
|
1693
|
-
- If
|
|
1694
|
-
- If not
|
|
1830
|
+
- If PlantUML server is configured, validates all PlantUML macros
|
|
1831
|
+
- If not configured, adds warning (set `JICON_PLANTUML_SERVER_URL` to enable)
|
|
1695
1832
|
|
|
1696
1833
|
**Response includes**: `valid`, `errorCount`, `warningCount`, `errors`, `warnings`
|
|
1697
1834
|
|
|
@@ -1804,12 +1941,13 @@ Unified help system for all Jicon workflows and syntax guides. Always available
|
|
|
1804
1941
|
|
|
1805
1942
|
| Parameter | Type | Required | Description |
|
|
1806
1943
|
|-----------|------|----------|-------------|
|
|
1807
|
-
| topic | string | ✗ | Topic for detailed help: jql, cql, storage, plantuml, buffers |
|
|
1944
|
+
| topic | string | ✗ | Topic for detailed help: jql, cql, storage, plantuml, buffers, analysis |
|
|
1808
1945
|
|
|
1809
1946
|
**Default (no topic)**: Compact workflow guide with decision trees showing:
|
|
1810
1947
|
- Confluence workflows (create page, update page, draft workflow, search)
|
|
1811
1948
|
- Jira workflows (search issues, create issue, worklogs)
|
|
1812
1949
|
- Tempo workflows (log work, get worklogs)
|
|
1950
|
+
- LLM-powered analysis tools (activity digest, comments, changelog, epic analysis)
|
|
1813
1951
|
- Buffer patterns for large responses and editing
|
|
1814
1952
|
- Utility tools (fullurl, workload_convert)
|
|
1815
1953
|
- Decision tree for when to call each topic
|
|
@@ -1823,6 +1961,7 @@ Unified help system for all Jicon workflows and syntax guides. Always available
|
|
|
1823
1961
|
| `storage` | Confluence storage format + structure editing (element IDs) |
|
|
1824
1962
|
| `plantuml` | PlantUML syntax for Confluence diagrams |
|
|
1825
1963
|
| `buffers` | Buffer management and element ID editing guide |
|
|
1964
|
+
| `analysis` | LLM-powered analysis tools for AI synthesis |
|
|
1826
1965
|
|
|
1827
1966
|
**Examples**:
|
|
1828
1967
|
```typescript
|
|
@@ -1831,20 +1970,73 @@ help(topic="jql") // JQL syntax guide
|
|
|
1831
1970
|
help(topic="storage") // Basic Confluence formatting
|
|
1832
1971
|
help(topic="plantuml") // PlantUML diagram syntax
|
|
1833
1972
|
help(topic="buffers") // Buffer management guide
|
|
1973
|
+
help(topic="analysis") // LLM analysis tools guide
|
|
1974
|
+
```
|
|
1975
|
+
|
|
1976
|
+
**Tip**: Start with `help()` to understand the overall workflow. For AI analysis tasks (e.g., "What happened on project X?"), check `help(topic="analysis")`.
|
|
1977
|
+
|
|
1978
|
+
---
|
|
1979
|
+
|
|
1980
|
+
## Date Tools (1)
|
|
1981
|
+
|
|
1982
|
+
Date resolution utility for pre-computing date ranges. Always available with any Jira, Confluence, or Tempo action.
|
|
1983
|
+
|
|
1984
|
+
### 1. date_resolve
|
|
1985
|
+
**Description**: Resolve date expressions to concrete dates with business day counts
|
|
1986
|
+
**Use Cases**: Pre-compute date ranges for reports, time tracking, activity analysis
|
|
1987
|
+
|
|
1988
|
+
| Parameter | Type | Required | Description |
|
|
1989
|
+
|-----------|------|----------|-------------|
|
|
1990
|
+
| expression | string | ✓ | Date expression (see below) |
|
|
1991
|
+
| businessDays | boolean | ✗ | Use business days (Mon-Fri) for weeks (default: true) |
|
|
1992
|
+
|
|
1993
|
+
**Supported Expressions**:
|
|
1994
|
+
|
|
1995
|
+
| Expression | Description |
|
|
1996
|
+
|------------|-------------|
|
|
1997
|
+
| `today` | Current day |
|
|
1998
|
+
| `yesterday` | Previous day |
|
|
1999
|
+
| `this_week` | Current week (Mon to today, business days by default) |
|
|
2000
|
+
| `last_week` | Previous full week |
|
|
2001
|
+
| `this_month` | Current month (1st to today) |
|
|
2002
|
+
| `last_month` | Previous full month |
|
|
2003
|
+
| `this_quarter` | Current quarter (Q start to today) |
|
|
2004
|
+
| `last_quarter` | Previous full quarter |
|
|
2005
|
+
| `last_7d`, `last_14d`, `last_30d`, `last_90d` | Last N days |
|
|
2006
|
+
| `ytd` | Year to date |
|
|
2007
|
+
| `Nd` (e.g., `5d`, `10d`) | Last N days |
|
|
2008
|
+
|
|
2009
|
+
**Returns**:
|
|
2010
|
+
```json
|
|
2011
|
+
{
|
|
2012
|
+
"dateFrom": "2026-01-27",
|
|
2013
|
+
"dateTo": "2026-01-31",
|
|
2014
|
+
"businessDays": 5,
|
|
2015
|
+
"calendarDays": 5,
|
|
2016
|
+
"description": "This week (Mon Jan 27 - Fri Jan 31, 2026)",
|
|
2017
|
+
"expression": "this_week"
|
|
2018
|
+
}
|
|
2019
|
+
```
|
|
2020
|
+
|
|
2021
|
+
**Examples**:
|
|
2022
|
+
```typescript
|
|
2023
|
+
date_resolve(expression="last_week") // Get last week's date range
|
|
2024
|
+
date_resolve(expression="7d") // Last 7 days
|
|
2025
|
+
date_resolve(expression="this_month") // Current month to date
|
|
1834
2026
|
```
|
|
1835
2027
|
|
|
1836
|
-
**Tip**:
|
|
2028
|
+
**Tip**: Use the returned `dateFrom` and `dateTo` directly in Jira/Tempo queries.
|
|
1837
2029
|
|
|
1838
2030
|
---
|
|
1839
2031
|
|
|
1840
2032
|
## PlantUML Tools (3)
|
|
1841
2033
|
|
|
1842
|
-
|
|
2034
|
+
PlantUML validation and rendering via external server. Configure with `JICON_PLANTUML_SERVER_URL` environment variable.
|
|
1843
2035
|
|
|
1844
|
-
**
|
|
1845
|
-
-
|
|
1846
|
-
-
|
|
1847
|
-
-
|
|
2036
|
+
**Server Configuration**:
|
|
2037
|
+
- Set `JICON_PLANTUML_SERVER_URL` to your PlantUML server URL (e.g., `http://localhost:8080`)
|
|
2038
|
+
- If not set, PlantUML tools are disabled and return clear error messages
|
|
2039
|
+
- Public server: `http://www.plantuml.com/plantuml` (rate limited)
|
|
1848
2040
|
|
|
1849
2041
|
**Stdlib Includes (C4, AWS, Azure):**
|
|
1850
2042
|
```
|
|
@@ -1896,20 +2088,19 @@ plantuml_render({
|
|
|
1896
2088
|
---
|
|
1897
2089
|
|
|
1898
2090
|
### 3. plantuml_status
|
|
1899
|
-
**Description**: Check PlantUML
|
|
1900
|
-
**Use Cases**: Verify
|
|
2091
|
+
**Description**: Check PlantUML server status
|
|
2092
|
+
**Use Cases**: Verify PlantUML server is available, troubleshoot connection issues
|
|
1901
2093
|
|
|
1902
2094
|
| Parameter | Type | Required | Description |
|
|
1903
2095
|
|-----------|------|----------|-------------|
|
|
1904
2096
|
| (none) | | | |
|
|
1905
2097
|
|
|
1906
|
-
**Response includes**: `available`, `disabled`, `
|
|
2098
|
+
**Response includes**: `available`, `disabled`, `serverDied`, `error`, `serverUrl`, `message`
|
|
1907
2099
|
|
|
1908
2100
|
**Status States**:
|
|
1909
|
-
- `available: true` -
|
|
1910
|
-
- `disabled: true` -
|
|
1911
|
-
- `
|
|
1912
|
-
- `containerDied: true` - Container stopped after startup (restart MCP)
|
|
2101
|
+
- `available: true` - Server is reachable and healthy
|
|
2102
|
+
- `disabled: true` - Not configured (`JICON_PLANTUML_SERVER_URL` not set)
|
|
2103
|
+
- `serverDied: true` - Server became unreachable after initial connection
|
|
1913
2104
|
|
|
1914
2105
|
---
|
|
1915
2106
|
|
|
@@ -2162,7 +2353,7 @@ buffer_validate_xhtml({
|
|
|
2162
2353
|
- Required attributes on Confluence elements (ac:name, ri:space-key, etc.)
|
|
2163
2354
|
- Valid layout section types
|
|
2164
2355
|
- Known macro names (warnings for unknown macros)
|
|
2165
|
-
- PlantUML syntax (requires
|
|
2356
|
+
- PlantUML syntax (requires PlantUML server - returns error if unavailable)
|
|
2166
2357
|
|
|
2167
2358
|
**Automatic Validation:**
|
|
2168
2359
|
XHTML content is automatically validated before Confluence writes (`confluence_draft_create`, `confluence_draft_save`).
|