@crypto512/jicon-mcp 2.1.0 → 2.2.0
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/README.md +288 -15
- package/TOOL_LIST.md +390 -87
- package/dist/config/constants.d.ts +12 -0
- package/dist/config/constants.d.ts.map +1 -1
- package/dist/config/constants.js +13 -0
- package/dist/config/constants.js.map +1 -1
- package/dist/config/loader.d.ts +8 -0
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +27 -1
- package/dist/config/loader.js.map +1 -1
- package/dist/config/types.d.ts +93 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +26 -0
- package/dist/config/types.js.map +1 -1
- package/dist/confluence/tools.d.ts +8 -1
- package/dist/confluence/tools.d.ts.map +1 -1
- package/dist/confluence/tools.js +61 -51
- package/dist/confluence/tools.js.map +1 -1
- package/dist/credentials/client-factory.d.ts +64 -0
- package/dist/credentials/client-factory.d.ts.map +1 -0
- package/dist/credentials/client-factory.js +110 -0
- package/dist/credentials/client-factory.js.map +1 -0
- package/dist/credentials/context.d.ts +25 -0
- package/dist/credentials/context.d.ts.map +1 -0
- package/dist/credentials/context.js +35 -0
- package/dist/credentials/context.js.map +1 -0
- package/dist/credentials/extractor.d.ts +21 -0
- package/dist/credentials/extractor.d.ts.map +1 -0
- package/dist/credentials/extractor.js +46 -0
- package/dist/credentials/extractor.js.map +1 -0
- package/dist/credentials/index.d.ts +9 -0
- package/dist/credentials/index.d.ts.map +1 -0
- package/dist/credentials/index.js +8 -0
- package/dist/credentials/index.js.map +1 -0
- package/dist/credentials/types.d.ts +21 -0
- package/dist/credentials/types.d.ts.map +1 -0
- package/dist/credentials/types.js +13 -0
- package/dist/credentials/types.js.map +1 -0
- package/dist/index.js +98 -75
- package/dist/index.js.map +1 -1
- package/dist/jira/activity-tools.d.ts +54 -1
- package/dist/jira/activity-tools.d.ts.map +1 -1
- package/dist/jira/activity-tools.js +737 -79
- package/dist/jira/activity-tools.js.map +1 -1
- package/dist/jira/client.d.ts +34 -2
- package/dist/jira/client.d.ts.map +1 -1
- package/dist/jira/client.js +119 -63
- package/dist/jira/client.js.map +1 -1
- package/dist/jira/tools.d.ts +58 -1
- package/dist/jira/tools.d.ts.map +1 -1
- package/dist/jira/tools.js +226 -27
- package/dist/jira/tools.js.map +1 -1
- package/dist/jira/types.d.ts +22 -0
- package/dist/jira/types.d.ts.map +1 -1
- package/dist/permissions/tool-registry.d.ts +10 -10
- package/dist/permissions/tool-registry.d.ts.map +1 -1
- package/dist/permissions/tool-registry.js +8 -4
- package/dist/permissions/tool-registry.js.map +1 -1
- package/dist/tempo/tools.d.ts +33 -1
- package/dist/tempo/tools.d.ts.map +1 -1
- package/dist/tempo/tools.js +141 -17
- package/dist/tempo/tools.js.map +1 -1
- package/dist/transport/http.d.ts +18 -0
- package/dist/transport/http.d.ts.map +1 -0
- package/dist/transport/http.js +66 -0
- package/dist/transport/http.js.map +1 -0
- package/dist/transport/index.d.ts +17 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +32 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/types.d.ts +15 -0
- package/dist/transport/types.d.ts.map +1 -0
- package/dist/transport/types.js +12 -0
- package/dist/transport/types.js.map +1 -0
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/buffer-pipeline/index.js +2 -2
- package/dist/utils/buffer-pipeline/index.js.map +1 -1
- package/dist/utils/buffer-pipeline/schema.d.ts +99 -99
- package/dist/utils/buffer-pipeline/schema.d.ts.map +1 -1
- package/dist/utils/buffer-tools.d.ts +91 -83
- package/dist/utils/buffer-tools.d.ts.map +1 -1
- package/dist/utils/buffer-tools.js +312 -139
- package/dist/utils/buffer-tools.js.map +1 -1
- package/dist/utils/jicon-help.d.ts +3 -3
- package/dist/utils/jicon-help.d.ts.map +1 -1
- package/dist/utils/jicon-help.js +141 -10
- package/dist/utils/jicon-help.js.map +1 -1
- package/dist/utils/json-structure.d.ts +11 -0
- package/dist/utils/json-structure.d.ts.map +1 -1
- package/dist/utils/json-structure.js +61 -0
- package/dist/utils/json-structure.js.map +1 -1
- package/dist/utils/plantuml/tools.d.ts +4 -4
- package/dist/utils/plantuml/tools.d.ts.map +1 -1
- package/dist/utils/plantuml/tools.js +29 -8
- package/dist/utils/plantuml/tools.js.map +1 -1
- package/dist/utils/plantuml/types.d.ts +4 -4
- package/dist/utils/response-formatter.d.ts.map +1 -1
- package/dist/utils/response-formatter.js +8 -4
- package/dist/utils/response-formatter.js.map +1 -1
- package/package.json +5 -2
package/TOOL_LIST.md
CHANGED
|
@@ -5,10 +5,10 @@ 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**: 79
|
|
9
|
+
- **Jira Tools**: 26 (21 read + 5 write)
|
|
10
10
|
- **Confluence Tools**: 21 (13 read + 8 write)
|
|
11
|
-
- **Tempo Tools**:
|
|
11
|
+
- **Tempo Tools**: 13 (10 read + 3 write)
|
|
12
12
|
- **Buffer Tools**: 11
|
|
13
13
|
- **Workload Tools**: 2
|
|
14
14
|
- **URL Tools**: 2
|
|
@@ -21,8 +21,6 @@ This document provides a comprehensive reference of all available tools in the J
|
|
|
21
21
|
- **XHTML**: Use `buffer_get_element` for element-based access
|
|
22
22
|
- **Search**: Use `buffer_grep` to search within any buffer
|
|
23
23
|
|
|
24
|
-
**Important**: `buffer_get_chunk` is blocked for JSON arrays and XHTML. Use the appropriate tool above.
|
|
25
|
-
|
|
26
24
|
---
|
|
27
25
|
|
|
28
26
|
## Agentic Workflow Patterns
|
|
@@ -139,7 +137,34 @@ When XHTML validation fails, the response includes element ID and suggested acti
|
|
|
139
137
|
|
|
140
138
|
---
|
|
141
139
|
|
|
142
|
-
## Jira Tools (
|
|
140
|
+
## Jira Tools (25)
|
|
141
|
+
|
|
142
|
+
### Localization / Non-English Jira
|
|
143
|
+
|
|
144
|
+
**IMPORTANT**: Jira field names, issue types, statuses, and priorities are localized.
|
|
145
|
+
|
|
146
|
+
| English | French | German |
|
|
147
|
+
|---------|--------|--------|
|
|
148
|
+
| Epic | Épopée | Epic |
|
|
149
|
+
| Story | Story | Story |
|
|
150
|
+
| Bug | Bogue | Fehler |
|
|
151
|
+
| Task | Tâche | Aufgabe |
|
|
152
|
+
| Sub-task | Sous-tâche | Unteraufgabe |
|
|
153
|
+
| Done | Terminé | Erledigt |
|
|
154
|
+
| In Progress | En cours | In Bearbeitung |
|
|
155
|
+
| To Do | À faire | Zu erledigen |
|
|
156
|
+
| Open | Ouvert | Offen |
|
|
157
|
+
| High | Haute | Hoch |
|
|
158
|
+
| Epic Link | Lien d'épopée | Epic-Link |
|
|
159
|
+
|
|
160
|
+
**Before writing JQL:**
|
|
161
|
+
1. `jira_get_issue_types()` - Discover actual type names
|
|
162
|
+
2. `jira_get_fields(search="epic")` - Discover field names and IDs
|
|
163
|
+
3. Use `cf[ID]` syntax for language-independent queries: `cf[10014] = PROJ-123`
|
|
164
|
+
|
|
165
|
+
The server automatically handles localized changelog field names for activity tracking.
|
|
166
|
+
|
|
167
|
+
---
|
|
143
168
|
|
|
144
169
|
### 1. jira_search_issues
|
|
145
170
|
**Description**: Search for Jira issues using JQL. Auto-fetches all results (up to 5000).
|
|
@@ -183,7 +208,7 @@ When XHTML validation fails, the response includes element ID and suggested acti
|
|
|
183
208
|
| fields | string[] | ✗ | Specific fields to return |
|
|
184
209
|
| expand | string[] | ✗ | Additional data (e.g., "changelog", "renderedFields") |
|
|
185
210
|
|
|
186
|
-
**Returns**: `bufferId` with metadata `{resourceType: "jira_issue", title: "PROJ-123: Summary", issueId, projectKey}`. Use `
|
|
211
|
+
**Returns**: `bufferId` with metadata `{resourceType: "jira_issue", title: "PROJ-123: Summary", issueId, projectKey}`. Use `buffer_get_items` to read, `buffer_grep` to search.
|
|
187
212
|
|
|
188
213
|
---
|
|
189
214
|
|
|
@@ -254,7 +279,7 @@ When XHTML validation fails, the response includes element ID and suggested acti
|
|
|
254
279
|
| issueKey | string | ✓ | Issue key |
|
|
255
280
|
| orderBy | string | ✗ | Sort order ("created" or "-created") |
|
|
256
281
|
|
|
257
|
-
**Returns**: `bufferId` with metadata `{resourceType: "jira_comments", title: "PROJ-123 comments", issueKey}`. Use `
|
|
282
|
+
**Returns**: `bufferId` with metadata `{resourceType: "jira_comments", title: "PROJ-123 comments", issueKey}`. Use `buffer_get_items` to read, `buffer_grep` to search.
|
|
258
283
|
|
|
259
284
|
---
|
|
260
285
|
|
|
@@ -267,7 +292,7 @@ When XHTML validation fails, the response includes element ID and suggested acti
|
|
|
267
292
|
| recent | boolean | ✗ | Only recent projects |
|
|
268
293
|
| expand | string[] | ✗ | Additional data to expand |
|
|
269
294
|
|
|
270
|
-
**Returns**: `bufferId` with metadata `{resourceType: "jira_projects", title: "All Projects"}`. Use `
|
|
295
|
+
**Returns**: `bufferId` with metadata `{resourceType: "jira_projects", title: "All Projects"}`. Use `buffer_get_items` to read, `buffer_grep` to search.
|
|
271
296
|
|
|
272
297
|
---
|
|
273
298
|
|
|
@@ -280,7 +305,7 @@ When XHTML validation fails, the response includes element ID and suggested acti
|
|
|
280
305
|
| projectKey | string | ✓ | Project key |
|
|
281
306
|
| expand | string[] | ✗ | Additional data to expand |
|
|
282
307
|
|
|
283
|
-
**Returns**: `bufferId` with metadata `{resourceType: "jira_project", title: "Project Name", projectKey}`. Use `
|
|
308
|
+
**Returns**: `bufferId` with metadata `{resourceType: "jira_project", title: "Project Name", projectKey}`. Use `buffer_get_items` to read, `buffer_grep` to search.
|
|
284
309
|
|
|
285
310
|
---
|
|
286
311
|
|
|
@@ -296,7 +321,29 @@ When XHTML validation fails, the response includes element ID and suggested acti
|
|
|
296
321
|
|
|
297
322
|
---
|
|
298
323
|
|
|
299
|
-
### 11.
|
|
324
|
+
### 11. jira_get_fields
|
|
325
|
+
**Description**: Get all available Jira fields (system and custom)
|
|
326
|
+
**Use Cases**: Discover field names in user's language, find custom field IDs for JQL, identify Epic Link field
|
|
327
|
+
|
|
328
|
+
| Parameter | Type | Required | Description |
|
|
329
|
+
|-----------|------|----------|-------------|
|
|
330
|
+
| filter | enum | ✗ | Filter: "all" (default), "custom", "system", or "navigable" |
|
|
331
|
+
| search | string | ✗ | Search in field name or ID (case-insensitive) |
|
|
332
|
+
|
|
333
|
+
**Returns**: List of fields with id, name, custom, clauseNames, schemaType
|
|
334
|
+
|
|
335
|
+
**Example workflow for Epic Link in any language**:
|
|
336
|
+
1. Call `jira_get_fields(search="epic")` to find the Epic Link field
|
|
337
|
+
2. Look for field with `schemaType = "com.pyxis.greenhopper.jira:gh-epic-link"`
|
|
338
|
+
3. Use either:
|
|
339
|
+
- Localized name: `"Lien d'épopée" = PROJ-123` (French)
|
|
340
|
+
- Language-independent: `cf[10014] = PROJ-123`
|
|
341
|
+
|
|
342
|
+
**Tip**: The `clauseNames` array shows all valid JQL names for a field. The `cf[ID]` syntax always works regardless of language.
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
### 12. jira_get_transitions
|
|
300
347
|
**Description**: Get available workflow transitions for an issue
|
|
301
348
|
**Use Cases**: Check what status changes are possible
|
|
302
349
|
|
|
@@ -306,7 +353,7 @@ When XHTML validation fails, the response includes element ID and suggested acti
|
|
|
306
353
|
|
|
307
354
|
---
|
|
308
355
|
|
|
309
|
-
###
|
|
356
|
+
### 13. jira_link_issues
|
|
310
357
|
**Description**: Create a link between two issues
|
|
311
358
|
**Use Cases**: Mark blockers, relate issues, create dependencies
|
|
312
359
|
|
|
@@ -319,7 +366,7 @@ When XHTML validation fails, the response includes element ID and suggested acti
|
|
|
319
366
|
|
|
320
367
|
---
|
|
321
368
|
|
|
322
|
-
###
|
|
369
|
+
### 14. jira_get_board
|
|
323
370
|
**Description**: Get Agile board information
|
|
324
371
|
**Use Cases**: View board details, get board configuration
|
|
325
372
|
|
|
@@ -327,11 +374,11 @@ When XHTML validation fails, the response includes element ID and suggested acti
|
|
|
327
374
|
|-----------|------|----------|-------------|
|
|
328
375
|
| boardId | number | ✓ | Board ID |
|
|
329
376
|
|
|
330
|
-
**Returns**: `bufferId` with metadata `{resourceType: "jira_board", title: "Board Name", boardId}`. Use `
|
|
377
|
+
**Returns**: `bufferId` with metadata `{resourceType: "jira_board", title: "Board Name", boardId}`. Use `buffer_get_items` to read, `buffer_grep` to search.
|
|
331
378
|
|
|
332
379
|
---
|
|
333
380
|
|
|
334
|
-
###
|
|
381
|
+
### 15. jira_get_sprints
|
|
335
382
|
**Description**: List all sprints for a board
|
|
336
383
|
**Use Cases**: View active sprints, check sprint schedules
|
|
337
384
|
|
|
@@ -340,11 +387,11 @@ When XHTML validation fails, the response includes element ID and suggested acti
|
|
|
340
387
|
| boardId | number | ✓ | Board ID |
|
|
341
388
|
| state | string | ✗ | Sprint state ("active", "future", "closed") |
|
|
342
389
|
|
|
343
|
-
**Returns**: `bufferId` with metadata `{resourceType: "jira_sprints", title: "Board #123 sprints", boardId}`. Use `
|
|
390
|
+
**Returns**: `bufferId` with metadata `{resourceType: "jira_sprints", title: "Board #123 sprints", boardId}`. Use `buffer_get_items` to read, `buffer_grep` to search.
|
|
344
391
|
|
|
345
392
|
---
|
|
346
393
|
|
|
347
|
-
###
|
|
394
|
+
### 16. jira_get_sprint_issues
|
|
348
395
|
**Description**: Get all issues in a specific sprint
|
|
349
396
|
**Use Cases**: View sprint backlog, check sprint progress
|
|
350
397
|
|
|
@@ -352,11 +399,11 @@ When XHTML validation fails, the response includes element ID and suggested acti
|
|
|
352
399
|
|-----------|------|----------|-------------|
|
|
353
400
|
| sprintId | number | ✓ | Sprint ID |
|
|
354
401
|
|
|
355
|
-
**Returns**: `bufferId` with metadata `{resourceType: "jira_sprint_issues", title: "Sprint #456 issues", sprintId}`. Use `
|
|
402
|
+
**Returns**: `bufferId` with metadata `{resourceType: "jira_sprint_issues", title: "Sprint #456 issues", sprintId}`. Use `buffer_get_items` to read, `buffer_grep` to search.
|
|
356
403
|
|
|
357
404
|
---
|
|
358
405
|
|
|
359
|
-
###
|
|
406
|
+
### 17. jira_get_issue_watchers
|
|
360
407
|
**Description**: Get list of watchers on an issue
|
|
361
408
|
**Use Cases**: See who's following an issue
|
|
362
409
|
|
|
@@ -366,7 +413,7 @@ When XHTML validation fails, the response includes element ID and suggested acti
|
|
|
366
413
|
|
|
367
414
|
---
|
|
368
415
|
|
|
369
|
-
###
|
|
416
|
+
### 18. jira_get_issue_worklogs
|
|
370
417
|
**Description**: Retrieve all worklogs from a Jira issue
|
|
371
418
|
**Use Cases**: Analyze time logged against an issue, see worklog history
|
|
372
419
|
|
|
@@ -374,11 +421,11 @@ When XHTML validation fails, the response includes element ID and suggested acti
|
|
|
374
421
|
|-----------|------|----------|-------------|
|
|
375
422
|
| issueKey | string | ✓ | Issue key (e.g., PROJ-123) |
|
|
376
423
|
|
|
377
|
-
**Returns**: `bufferId` with metadata `{resourceType: "jira_worklogs", title: "PROJ-123 worklogs", issueKey}`. Includes `worklogCount`, `totalTimeSpentSeconds`, `totalTimeSpent`, `worklogs`. Use `
|
|
424
|
+
**Returns**: `bufferId` with metadata `{resourceType: "jira_worklogs", title: "PROJ-123 worklogs", issueKey}`. Includes `worklogCount`, `totalTimeSpentSeconds`, `totalTimeSpent`, `worklogs`. Use `buffer_get_items` to read, `buffer_grep` to search.
|
|
378
425
|
|
|
379
426
|
---
|
|
380
427
|
|
|
381
|
-
###
|
|
428
|
+
### 19. jira_get_total_worklogs
|
|
382
429
|
**Description**: Get total worklogs for an issue and all its children recursively
|
|
383
430
|
**Use Cases**: Get total time spent on an Epic including all stories and sub-tasks
|
|
384
431
|
|
|
@@ -390,7 +437,30 @@ When XHTML validation fails, the response includes element ID and suggested acti
|
|
|
390
437
|
|
|
391
438
|
---
|
|
392
439
|
|
|
393
|
-
###
|
|
440
|
+
### 20. jira_list_epic_children
|
|
441
|
+
**Description**: List all children of an Epic/Initiative without needing JQL
|
|
442
|
+
**Use Cases**: Get Epic children, list Initiative epics, find issue hierarchy
|
|
443
|
+
|
|
444
|
+
Automatically detects Epic Link and Parent Link fields for language-independent queries. Handles:
|
|
445
|
+
- Initiative → Epic (via Parent Link)
|
|
446
|
+
- Epic → Story/Task/Bug (via Epic Link)
|
|
447
|
+
- Any parent → Subtasks
|
|
448
|
+
|
|
449
|
+
| Parameter | Type | Required | Description |
|
|
450
|
+
|-----------|------|----------|-------------|
|
|
451
|
+
| parentKey | string | ✓ | Parent issue key (Epic, Initiative, etc.) |
|
|
452
|
+
| type | string | ✗ | Filter by issue type (Story, Task, Bug, etc.) |
|
|
453
|
+
| status | "open" \| "closed" \| "all" | ✗ | Filter by status (default: "all") |
|
|
454
|
+
| recursive | boolean | ✗ | Include nested children recursively (default: false) |
|
|
455
|
+
| fields | string[] | ✗ | Specific fields to return |
|
|
456
|
+
|
|
457
|
+
**Returns**: `bufferId` with child issues (same format as `jira_search_issues`). Includes metadata `{resourceType: "jira_epic_children", parentKey, recursive, filters}`.
|
|
458
|
+
|
|
459
|
+
**Example**: `jira_list_epic_children(parentKey="PROJ-100", status="open", type="Story")`
|
|
460
|
+
|
|
461
|
+
---
|
|
462
|
+
|
|
463
|
+
### 21. jira_get_activity_digest
|
|
394
464
|
**Description**: Get recent activity across issues for LLM analysis. Returns DIRECTLY (not buffered).
|
|
395
465
|
**Use Cases**: Project activity summary, team updates, blocker detection, weekly reports
|
|
396
466
|
|
|
@@ -431,7 +501,7 @@ Fetches comments, status changes, priority changes, and assignee changes - forma
|
|
|
431
501
|
|
|
432
502
|
---
|
|
433
503
|
|
|
434
|
-
###
|
|
504
|
+
### 22. jira_get_recent_comments
|
|
435
505
|
**Description**: Get comments across multiple issues for discussion analysis. Returns DIRECTLY (not buffered).
|
|
436
506
|
**Use Cases**: Discussion summaries, finding comments about specific topics, tracking team communication
|
|
437
507
|
|
|
@@ -451,7 +521,7 @@ Fetches comments, status changes, priority changes, and assignee changes - forma
|
|
|
451
521
|
|
|
452
522
|
---
|
|
453
523
|
|
|
454
|
-
###
|
|
524
|
+
### 23. jira_get_changelog
|
|
455
525
|
**Description**: Get field changes across issues for tracking what happened. Returns DIRECTLY (not buffered).
|
|
456
526
|
**Use Cases**: Status change tracking, priority escalation analysis, assignment history
|
|
457
527
|
|
|
@@ -481,7 +551,7 @@ Fetches comments, status changes, priority changes, and assignee changes - forma
|
|
|
481
551
|
|
|
482
552
|
---
|
|
483
553
|
|
|
484
|
-
###
|
|
554
|
+
### 24. jira_analyze_epic
|
|
485
555
|
**Description**: Comprehensive Epic/Feature analysis for LLM insights. Returns DIRECTLY (not buffered).
|
|
486
556
|
**Use Cases**: Epic progress analysis, velocity tracking, time metrics, feature status
|
|
487
557
|
|
|
@@ -500,7 +570,7 @@ Fetches comments, status changes, priority changes, and assignee changes - forma
|
|
|
500
570
|
- **Linked Resources**: Confluence pages, related issues
|
|
501
571
|
- **Recent Discussions**: Comments from the last N days
|
|
502
572
|
|
|
503
|
-
**Example output
|
|
573
|
+
**Example output** *(status names will be in your Jira's language)*:
|
|
504
574
|
```markdown
|
|
505
575
|
# Epic Analysis: PROJ-100
|
|
506
576
|
**Payment Gateway Integration**
|
|
@@ -526,6 +596,140 @@ Currently **3 issues** are in progress.
|
|
|
526
596
|
|
|
527
597
|
---
|
|
528
598
|
|
|
599
|
+
### 25. jira_epic_summary
|
|
600
|
+
**Description**: Lightweight Epic/Initiative summary with hierarchy and status breakdown. Returns DIRECTLY (not buffered).
|
|
601
|
+
**Use Cases**: Quick Epic overview, status breakdown, cross-project dependencies
|
|
602
|
+
|
|
603
|
+
Provides quick overview without the heavy metrics of `jira_analyze_epic` - no time tracking, no comments, no Confluence links.
|
|
604
|
+
|
|
605
|
+
| Parameter | Type | Required | Description |
|
|
606
|
+
|-----------|------|----------|-------------|
|
|
607
|
+
| issueKey | string | ✓ | Epic or parent issue key (e.g., PROJ-123) |
|
|
608
|
+
| includeLinks | boolean | ✗ | Show cross-project dependencies (default: true) |
|
|
609
|
+
| maxDepth | number | ✗ | Maximum recursion depth (default: 3) |
|
|
610
|
+
|
|
611
|
+
**Returns**: Markdown summary including:
|
|
612
|
+
- Issue list (key, type, summary, status, assignee)
|
|
613
|
+
- Status breakdown by issue type
|
|
614
|
+
- Cross-project dependencies (links to issues outside hierarchy)
|
|
615
|
+
|
|
616
|
+
**Example output**:
|
|
617
|
+
```markdown
|
|
618
|
+
# Epic Summary: PROJ-100
|
|
619
|
+
**Payment Gateway Integration**
|
|
620
|
+
|
|
621
|
+
**Status**: In Progress | **Completion**: 65%
|
|
622
|
+
|
|
623
|
+
## Hierarchy (17 issues)
|
|
624
|
+
|
|
625
|
+
| Key | Type | Summary | Status | Assignee |
|
|
626
|
+
|-----|------|---------|--------|----------|
|
|
627
|
+
| PROJ-101 | Story | Stripe integration | Done | Alice |
|
|
628
|
+
| PROJ-102 | Story | PayPal support | In Progress | Bob |
|
|
629
|
+
|
|
630
|
+
## Status Breakdown
|
|
631
|
+
|
|
632
|
+
| Type | Total | Done | In Progress | To Do | Completion |
|
|
633
|
+
|------|-------|------|-------------|-------|------------|
|
|
634
|
+
| Story | 5 | 3 | 1 | 1 | 60% |
|
|
635
|
+
| Sub-task | 12 | 8 | 2 | 2 | 67% |
|
|
636
|
+
|
|
637
|
+
## Cross-Project Dependencies (3)
|
|
638
|
+
|
|
639
|
+
| Source | Relationship | Target | Project | Status |
|
|
640
|
+
|--------|--------------|--------|---------|--------|
|
|
641
|
+
| PROJ-102 | blocks | CORE-45 | CORE | Open |
|
|
642
|
+
```
|
|
643
|
+
|
|
644
|
+
---
|
|
645
|
+
|
|
646
|
+
### 26. jira_analyze_sprint
|
|
647
|
+
**Description**: Comprehensive Sprint analysis for LLM insights. Returns DIRECTLY (not buffered).
|
|
648
|
+
**Use Cases**: Sprint progress, risk assessment, team workload, daily standups
|
|
649
|
+
|
|
650
|
+
| Parameter | Type | Required | Description |
|
|
651
|
+
|-----------|------|----------|-------------|
|
|
652
|
+
| sprintId | number | ✓ | Sprint ID (from `jira_get_sprints`) |
|
|
653
|
+
| includeComments | boolean | ✗ | Include recent comments (default: true) |
|
|
654
|
+
| commentDays | number | ✗ | Days of comments to include (default: 7) |
|
|
655
|
+
| includeRisks | boolean | ✗ | Calculate risk indicators (default: true) |
|
|
656
|
+
|
|
657
|
+
**Finding sprintId**: Call `jira_get_sprints(boardId)` first. BoardId can be found in Jira URLs like `/secure/RapidBoard.jspa?rapidView=123`.
|
|
658
|
+
|
|
659
|
+
**Returns**: Comprehensive markdown analysis including:
|
|
660
|
+
- **Sprint Metadata**: Name, state, dates, duration, days remaining
|
|
661
|
+
- **Progress**: Completion percentage, status breakdown (Done/In Progress/To Do)
|
|
662
|
+
- **Issue Breakdown**: By type with status distribution
|
|
663
|
+
- **Time Metrics**: Estimated vs spent vs remaining, burn rate warning
|
|
664
|
+
- **Team Distribution**: Who's working on what, sorted by workload
|
|
665
|
+
- **Risk Indicators**: Stale issues (3+ days no update), blocked, high-priority unstarted
|
|
666
|
+
- **Recent Discussions**: Comments from last N days
|
|
667
|
+
|
|
668
|
+
**Example output**:
|
|
669
|
+
```markdown
|
|
670
|
+
# Sprint Analysis: Sprint 42
|
|
671
|
+
|
|
672
|
+
**State**: Active
|
|
673
|
+
**Period**: Jan 20 - Feb 3 (14 days)
|
|
674
|
+
**Progress**: Day 10 of 14 (4 days remaining)
|
|
675
|
+
|
|
676
|
+
---
|
|
677
|
+
## Sprint Progress
|
|
678
|
+
|
|
679
|
+
**Completion**: 65% (13 of 20 issues done)
|
|
680
|
+
|
|
681
|
+
| Status | Count | % |
|
|
682
|
+
|--------|-------|---|
|
|
683
|
+
| Done | 13 | 65% |
|
|
684
|
+
| In Progress | 4 | 20% |
|
|
685
|
+
| To Do | 3 | 15% |
|
|
686
|
+
|
|
687
|
+
## Issue Breakdown by Type
|
|
688
|
+
|
|
689
|
+
| Type | Total | Done | In Progress | To Do |
|
|
690
|
+
|------|-------|------|-------------|-------|
|
|
691
|
+
| Story | 8 | 5 | 2 | 1 |
|
|
692
|
+
| Bug | 6 | 4 | 1 | 1 |
|
|
693
|
+
| Task | 6 | 4 | 1 | 1 |
|
|
694
|
+
|
|
695
|
+
## Time Metrics
|
|
696
|
+
|
|
697
|
+
- **Estimated**: 120h (3w)
|
|
698
|
+
- **Spent**: 85h (2w 1d)
|
|
699
|
+
- **Remaining**: 35h (4d 3h)
|
|
700
|
+
- **Burn Rate**: 71% spent, 65% done
|
|
701
|
+
|
|
702
|
+
## Team Distribution
|
|
703
|
+
|
|
704
|
+
| Assignee | Total | Done | In Progress |
|
|
705
|
+
|----------|-------|------|-------------|
|
|
706
|
+
| Alice | 5 | 3 | 2 |
|
|
707
|
+
| Bob | 4 | 3 | 1 |
|
|
708
|
+
| Unassigned | 3 | 0 | 0 |
|
|
709
|
+
|
|
710
|
+
## Risk Indicators
|
|
711
|
+
|
|
712
|
+
⚠️ **3 issues at risk:**
|
|
713
|
+
- **PROJ-456**: In Progress for 5 days without update
|
|
714
|
+
- **PROJ-789**: High priority, still To Do
|
|
715
|
+
- **PROJ-012**: Blocked by PROJ-999 (In Progress) - external to sprint
|
|
716
|
+
|
|
717
|
+
## Recent Discussions (last 7 days)
|
|
718
|
+
|
|
719
|
+
- **PROJ-123** @alice (Jan 28): "Found edge case in payment flow..."
|
|
720
|
+
- **PROJ-456** @bob (Jan 27): "Blocked by API changes..."
|
|
721
|
+
|
|
722
|
+
---
|
|
723
|
+
## Summary
|
|
724
|
+
|
|
725
|
+
Sprint "Sprint 42" is **65% complete** with 4 issues in progress and 3 issues remaining.
|
|
726
|
+
**4 days remaining** in the sprint.
|
|
727
|
+
**3 issues** need attention.
|
|
728
|
+
Time tracking shows **71% of estimate used** for **65% completion**.
|
|
729
|
+
```
|
|
730
|
+
|
|
731
|
+
---
|
|
732
|
+
|
|
529
733
|
## Confluence Tools (21)
|
|
530
734
|
|
|
531
735
|
### 1. confluence_search_content
|
|
@@ -537,7 +741,7 @@ Currently **3 issues** are in progress.
|
|
|
537
741
|
| cql | string | ✓ | CQL query string |
|
|
538
742
|
| expand | string[] | ✗ | Additional data to expand |
|
|
539
743
|
|
|
540
|
-
**Returns**: `bufferId` with metadata `{resourceType: "confluence_search", title: "CQL: ..."}`. Use `
|
|
744
|
+
**Returns**: `bufferId` with metadata `{resourceType: "confluence_search", title: "CQL: ..."}`. Use `buffer_get_items` to read, `buffer_grep` to search.
|
|
541
745
|
|
|
542
746
|
---
|
|
543
747
|
|
|
@@ -640,7 +844,7 @@ buffer_edit(bufferId=pageBuffer, after=5, fromBufferId=newContentBuffer)
|
|
|
640
844
|
|-----------|------|----------|-------------|
|
|
641
845
|
| type | string | ✗ | Space type filter ("global" or "personal") |
|
|
642
846
|
|
|
643
|
-
**Returns**: `bufferId` with metadata `{resourceType: "confluence_spaces", title: "All Spaces"}`. Use `
|
|
847
|
+
**Returns**: `bufferId` with metadata `{resourceType: "confluence_spaces", title: "All Spaces"}`. Use `buffer_get_items` to read, `buffer_grep` to search.
|
|
644
848
|
|
|
645
849
|
---
|
|
646
850
|
|
|
@@ -653,7 +857,7 @@ buffer_edit(bufferId=pageBuffer, after=5, fromBufferId=newContentBuffer)
|
|
|
653
857
|
| spaceKey | string | ✓ | Space key |
|
|
654
858
|
| expand | string[] | ✗ | Additional data to expand |
|
|
655
859
|
|
|
656
|
-
**Returns**: `bufferId` with metadata `{resourceType: "confluence_space", title: "Space Name", spaceKey}`. Use `
|
|
860
|
+
**Returns**: `bufferId` with metadata `{resourceType: "confluence_space", title: "Space Name", spaceKey}`. Use `buffer_get_items` to read, `buffer_grep` to search.
|
|
657
861
|
|
|
658
862
|
---
|
|
659
863
|
|
|
@@ -666,7 +870,7 @@ buffer_edit(bufferId=pageBuffer, after=5, fromBufferId=newContentBuffer)
|
|
|
666
870
|
| pageId | string | ✓ | Parent page ID (accepts string or number) |
|
|
667
871
|
| expand | string[] | ✗ | Additional data to expand |
|
|
668
872
|
|
|
669
|
-
**Returns**: `bufferId` with metadata `{resourceType: "confluence_page_children", title: "Page 123 children", pageId}`. Use `
|
|
873
|
+
**Returns**: `bufferId` with metadata `{resourceType: "confluence_page_children", title: "Page 123 children", pageId}`. Use `buffer_get_items` to read, `buffer_grep` to search.
|
|
670
874
|
|
|
671
875
|
---
|
|
672
876
|
|
|
@@ -689,7 +893,7 @@ buffer_edit(bufferId=pageBuffer, after=5, fromBufferId=newContentBuffer)
|
|
|
689
893
|
|-----------|------|----------|-------------|
|
|
690
894
|
| pageId | string | ✓ | Page ID (accepts string or number) |
|
|
691
895
|
|
|
692
|
-
**Returns**: `bufferId` with metadata `{resourceType: "confluence_comments", title: "Page 123 comments", pageId}`. Use `
|
|
896
|
+
**Returns**: `bufferId` with metadata `{resourceType: "confluence_comments", title: "Page 123 comments", pageId}`. Use `buffer_get_items` to read, `buffer_grep` to search.
|
|
693
897
|
|
|
694
898
|
---
|
|
695
899
|
|
|
@@ -713,7 +917,7 @@ buffer_edit(bufferId=pageBuffer, after=5, fromBufferId=newContentBuffer)
|
|
|
713
917
|
|-----------|------|----------|-------------|
|
|
714
918
|
| pageId | string | ✓ | Page ID (accepts string or number) |
|
|
715
919
|
|
|
716
|
-
**Returns**: `bufferId` with metadata `{resourceType: "confluence_attachments", title: "Page 123 attachments", pageId}`. Use `
|
|
920
|
+
**Returns**: `bufferId` with metadata `{resourceType: "confluence_attachments", title: "Page 123 attachments", pageId}`. Use `buffer_get_items` to read, `buffer_grep` to search.
|
|
717
921
|
|
|
718
922
|
---
|
|
719
923
|
|
|
@@ -739,7 +943,7 @@ buffer_edit(bufferId=pageBuffer, after=5, fromBufferId=newContentBuffer)
|
|
|
739
943
|
|-----------|------|----------|-------------|
|
|
740
944
|
| spaceKey | string | ✗ | Filter by space key |
|
|
741
945
|
|
|
742
|
-
**Returns**: `bufferId` with metadata `{resourceType: "confluence_drafts", title: "All Drafts"}`. Includes `drafts` array with `draftId`, `title`, `spaceKey`, `spaceName`, `created`, `url`. Use `
|
|
946
|
+
**Returns**: `bufferId` with metadata `{resourceType: "confluence_drafts", title: "All Drafts"}`. Includes `drafts` array with `draftId`, `title`, `spaceKey`, `spaceName`, `created`, `url`. Use `buffer_get_items` to read, `buffer_grep` to search.
|
|
743
947
|
|
|
744
948
|
---
|
|
745
949
|
|
|
@@ -904,6 +1108,8 @@ buffer_edit(bufferId=pageBuffer, after=5, fromBufferId=newContentBuffer)
|
|
|
904
1108
|
|
|
905
1109
|
### JQL (Jira Query Language) Examples
|
|
906
1110
|
|
|
1111
|
+
> **Note**: Type, status, and priority names below are in English. Use `jira_get_issue_types()` and `jira_get_fields()` to discover actual names for your Jira instance. Functions like `currentUser()`, `openSprints()`, `startOfDay()` work in all languages.
|
|
1112
|
+
|
|
907
1113
|
```jql
|
|
908
1114
|
# Find open bugs assigned to you
|
|
909
1115
|
project = PROJ AND type = Bug AND status = Open AND assignee = currentUser()
|
|
@@ -924,6 +1130,8 @@ AND priority in (High, Critical) ORDER BY created DESC
|
|
|
924
1130
|
|
|
925
1131
|
### CQL (Confluence Query Language) Examples
|
|
926
1132
|
|
|
1133
|
+
> **Note**: CQL keywords (`type`, `space`, `label`, `text`) and type values (`page`, `blogpost`) are language-independent. Space keys, labels, and usernames are instance-specific.
|
|
1134
|
+
|
|
927
1135
|
```cql
|
|
928
1136
|
# Find pages by title keyword
|
|
929
1137
|
type=page AND title~"API Documentation"
|
|
@@ -1002,7 +1210,7 @@ AND lastModified >= now("-30d")
|
|
|
1002
1210
|
|
|
1003
1211
|
---
|
|
1004
1212
|
|
|
1005
|
-
## Tempo Tools (
|
|
1213
|
+
## Tempo Tools (13)
|
|
1006
1214
|
|
|
1007
1215
|
### 1. tempo_get_worklogs
|
|
1008
1216
|
**Description**: Get Tempo worklogs with filters
|
|
@@ -1018,7 +1226,7 @@ AND lastModified >= now("-30d")
|
|
|
1018
1226
|
|
|
1019
1227
|
**WARNING**: No workerKey = returns ALL worklogs.
|
|
1020
1228
|
|
|
1021
|
-
**Returns**: `bufferId` with metadata `{resourceType: "tempo_worklogs", title: "Worklogs 2024-01-01 to 2024-01-31"}`. Use `
|
|
1229
|
+
**Returns**: `bufferId` with metadata `{resourceType: "tempo_worklogs", title: "Worklogs 2024-01-01 to 2024-01-31"}`. Use `buffer_get_items` to read, `buffer_grep` to search.
|
|
1022
1230
|
|
|
1023
1231
|
---
|
|
1024
1232
|
|
|
@@ -1030,7 +1238,7 @@ AND lastModified >= now("-30d")
|
|
|
1030
1238
|
|-----------|------|----------|-------------|
|
|
1031
1239
|
| worklogId | number | ✓ | Tempo worklog ID |
|
|
1032
1240
|
|
|
1033
|
-
**Returns**: `bufferId` with metadata `{resourceType: "tempo_worklog", title: "PROJ-123 worklog #456", resourceId, issueKey}`. Use `
|
|
1241
|
+
**Returns**: `bufferId` with metadata `{resourceType: "tempo_worklog", title: "PROJ-123 worklog #456", resourceId, issueKey}`. Use `buffer_get_items` to read, `buffer_grep` to search.
|
|
1034
1242
|
|
|
1035
1243
|
---
|
|
1036
1244
|
|
|
@@ -1083,7 +1291,7 @@ AND lastModified >= now("-30d")
|
|
|
1083
1291
|
|-----------|------|----------|-------------|
|
|
1084
1292
|
| (none) | | | |
|
|
1085
1293
|
|
|
1086
|
-
**Returns**: `bufferId` with metadata `{resourceType: "tempo_accounts", title: "All Tempo Accounts"}`. Use `
|
|
1294
|
+
**Returns**: `bufferId` with metadata `{resourceType: "tempo_accounts", title: "All Tempo Accounts"}`. Use `buffer_get_items` to read, `buffer_grep` to search.
|
|
1087
1295
|
|
|
1088
1296
|
---
|
|
1089
1297
|
|
|
@@ -1095,7 +1303,7 @@ AND lastModified >= now("-30d")
|
|
|
1095
1303
|
|-----------|------|----------|-------------|
|
|
1096
1304
|
| accountKey | string | ✓ | Account key |
|
|
1097
1305
|
|
|
1098
|
-
**Returns**: `bufferId` with metadata `{resourceType: "tempo_account", title: "Account Name", accountKey}`. Use `
|
|
1306
|
+
**Returns**: `bufferId` with metadata `{resourceType: "tempo_account", title: "Account Name", accountKey}`. Use `buffer_get_items` to read, `buffer_grep` to search.
|
|
1099
1307
|
|
|
1100
1308
|
---
|
|
1101
1309
|
|
|
@@ -1107,7 +1315,7 @@ AND lastModified >= now("-30d")
|
|
|
1107
1315
|
|-----------|------|----------|-------------|
|
|
1108
1316
|
| (none) | | | |
|
|
1109
1317
|
|
|
1110
|
-
**Returns**: `bufferId` with metadata `{resourceType: "tempo_teams", title: "All Tempo Teams"}`. Use `
|
|
1318
|
+
**Returns**: `bufferId` with metadata `{resourceType: "tempo_teams", title: "All Tempo Teams"}`. Use `buffer_get_items` to read, `buffer_grep` to search.
|
|
1111
1319
|
|
|
1112
1320
|
---
|
|
1113
1321
|
|
|
@@ -1119,7 +1327,7 @@ AND lastModified >= now("-30d")
|
|
|
1119
1327
|
|-----------|------|----------|-------------|
|
|
1120
1328
|
| teamId | number | ✓ | Team ID |
|
|
1121
1329
|
|
|
1122
|
-
**Returns**: `bufferId` with metadata `{resourceType: "tempo_team", title: "Team Name", teamId}`. Use `
|
|
1330
|
+
**Returns**: `bufferId` with metadata `{resourceType: "tempo_team", title: "Team Name", teamId}`. Use `buffer_get_items` to read, `buffer_grep` to search.
|
|
1123
1331
|
|
|
1124
1332
|
---
|
|
1125
1333
|
|
|
@@ -1133,7 +1341,7 @@ AND lastModified >= now("-30d")
|
|
|
1133
1341
|
| dateFrom | string | ✓ | Start date (YYYY-MM-DD) |
|
|
1134
1342
|
| dateTo | string | ✓ | End date (YYYY-MM-DD) |
|
|
1135
1343
|
|
|
1136
|
-
**Returns**: `bufferId` with metadata `{resourceType: "tempo_team_worklogs", title: "Team #123 worklogs 2024-01-01 to 2024-01-31", teamId}`. Use `
|
|
1344
|
+
**Returns**: `bufferId` with metadata `{resourceType: "tempo_team_worklogs", title: "Team #123 worklogs 2024-01-01 to 2024-01-31", teamId}`. Use `buffer_get_items` to read, `buffer_grep` to search.
|
|
1137
1345
|
|
|
1138
1346
|
---
|
|
1139
1347
|
|
|
@@ -1159,7 +1367,38 @@ AND lastModified >= now("-30d")
|
|
|
1159
1367
|
| dateFrom | string | ✗ | Start date filter (YYYY-MM-DD) |
|
|
1160
1368
|
| dateTo | string | ✗ | End date filter (YYYY-MM-DD) |
|
|
1161
1369
|
|
|
1162
|
-
**Returns**: `bufferId` with metadata `{resourceType: "tempo_epic_worklogs", title: "PROJ-100 epic worklogs", epicKey}`. Includes `totalTimeSpent`, `totalWorklogCount`, `issueCount`, breakdown by issue, and full worklog list. Use `
|
|
1370
|
+
**Returns**: `bufferId` with metadata `{resourceType: "tempo_epic_worklogs", title: "PROJ-100 epic worklogs", epicKey}`. Includes `totalTimeSpent`, `totalWorklogCount`, `issueCount`, breakdown by issue, and full worklog list. Use `buffer_get_items` to read, `buffer_grep` to search. More efficient than `jira_get_total_worklogs` for Tempo instances.
|
|
1371
|
+
|
|
1372
|
+
---
|
|
1373
|
+
|
|
1374
|
+
### 13. tempo_get_top_worklogs
|
|
1375
|
+
**Description**: Get top issues or users by workload for a period. Returns DIRECTLY (not buffered).
|
|
1376
|
+
**Use Cases**: Top tickets by workload, most active contributors, time distribution analysis
|
|
1377
|
+
|
|
1378
|
+
Aggregates Tempo worklogs and returns ranked results in markdown format.
|
|
1379
|
+
|
|
1380
|
+
| Parameter | Type | Required | Description |
|
|
1381
|
+
|-----------|------|----------|-------------|
|
|
1382
|
+
| since | string | ✓ | Date expression: "today", "last_week", "this_month", "7d", "30d", etc. |
|
|
1383
|
+
| projectKey | string | ✗ | Filter by project key |
|
|
1384
|
+
| groupBy | "issue" \| "user" | ✗ | Group results by issue or user (default: "issue") |
|
|
1385
|
+
| limit | number | ✗ | Maximum results to return (default: 10) |
|
|
1386
|
+
|
|
1387
|
+
**Returns**: Markdown table with ranked results:
|
|
1388
|
+
```markdown
|
|
1389
|
+
# Top 10 Issues by Workload (MESH)
|
|
1390
|
+
**Period**: 2026-01-20 to 2026-01-31
|
|
1391
|
+
|
|
1392
|
+
| Rank | Issue | Time Spent | Entries | Contributors |
|
|
1393
|
+
|------|-------|------------|---------|--------------|
|
|
1394
|
+
| 1 | MESH-4898 | 16h | 8 | Alice, Bob |
|
|
1395
|
+
| 2 | MESH-4899 | 8h 30m | 4 | Charlie |
|
|
1396
|
+
|
|
1397
|
+
---
|
|
1398
|
+
**Total** (top 10): 45h 30m across 42 worklogs
|
|
1399
|
+
```
|
|
1400
|
+
|
|
1401
|
+
**Example**: `tempo_get_top_worklogs(since="last_week", projectKey="MESH", groupBy="issue", limit=10)`
|
|
1163
1402
|
|
|
1164
1403
|
---
|
|
1165
1404
|
|
|
@@ -1178,15 +1417,14 @@ Buffer tools are used for local content management. All buffer operations are in
|
|
|
1178
1417
|
|
|
1179
1418
|
**Content types**:
|
|
1180
1419
|
- **xhtml**: Confluence storage format. Returns element IDs for `buffer_edit`.
|
|
1181
|
-
- **json**: JSON data (array or object). Use `
|
|
1182
|
-
- **plain**: Raw text content.
|
|
1420
|
+
- **json**: JSON data (array or object). Use `buffer_get_items` to access, `buffer_pipeline` to transform.
|
|
1183
1421
|
|
|
1184
1422
|
**Use Cases**: Draft new Confluence pages, prepare content before persisting, create JSON arrays for aggregation
|
|
1185
1423
|
|
|
1186
1424
|
| Parameter | Type | Required | Description |
|
|
1187
1425
|
|-----------|------|----------|-------------|
|
|
1188
1426
|
| content | string \| object \| array | ✓ | Content: string for all types, or object/array for json (auto-stringified) |
|
|
1189
|
-
| contentType | enum | ✓ | Content type: `"xhtml"` for Confluence, `"
|
|
1427
|
+
| contentType | enum | ✓ | Content type: `"xhtml"` for Confluence, `"json"` for data |
|
|
1190
1428
|
| metadata | object | ✗ | Optional metadata to attach to the buffer |
|
|
1191
1429
|
|
|
1192
1430
|
**Auto-stringify for JSON**: When `contentType: "json"`, you can pass native objects/arrays directly instead of JSON strings:
|
|
@@ -1200,8 +1438,6 @@ buffer_create({ content: [{"key":"PROJ-1"}], contentType: "json" }) // Native
|
|
|
1200
1438
|
|
|
1201
1439
|
**Response for JSON includes**: `bufferId`, `contentType`, `bufferSizeBytes`, `structure` (type, itemCount/keys, preview), `hint` (suggested next tool)
|
|
1202
1440
|
|
|
1203
|
-
**Response for plain includes**: `bufferId`, `contentType`, `bufferSizeBytes`, `createdAt`, `expiresAt`
|
|
1204
|
-
|
|
1205
1441
|
**CDATA Detection**: For XHTML content, the tool detects if content is incorrectly wrapped in `<![CDATA[...]]>` and returns a clear error. CDATA should only be used inside `<ac:plain-text-body>` elements (for code blocks and PlantUML), never around the entire content.
|
|
1206
1442
|
|
|
1207
1443
|
**Example workflow for new Confluence page**:
|
|
@@ -1228,41 +1464,24 @@ buffer_create({ content: [{"key":"PROJ-1"}], contentType: "json" }) // Native
|
|
|
1228
1464
|
|
|
1229
1465
|
---
|
|
1230
1466
|
|
|
1231
|
-
### 2.
|
|
1232
|
-
**Description**: Retrieve
|
|
1233
|
-
**Use Cases**:
|
|
1234
|
-
|
|
1235
|
-
**BLOCKED FOR**: JSON arrays and XHTML content. Use instead:
|
|
1236
|
-
- JSON arrays: `buffer_get_items` - returns complete items
|
|
1237
|
-
- XHTML: `buffer_get_element` - returns element content
|
|
1467
|
+
### 2. buffer_get_items
|
|
1468
|
+
**Description**: Retrieve items from a JSON buffer (arrays by index, objects by key).
|
|
1469
|
+
**Use Cases**: Iterate through search results, access object properties, process items in batches
|
|
1238
1470
|
|
|
1239
1471
|
| Parameter | Type | Required | Description |
|
|
1240
1472
|
|-----------|------|----------|-------------|
|
|
1241
|
-
| bufferId | string | ✓ | Buffer ID
|
|
1242
|
-
|
|
|
1243
|
-
|
|
|
1473
|
+
| bufferId | string | ✓ | Buffer ID containing JSON array or object |
|
|
1474
|
+
| start | number | ✗ | Array: starting index (0-based, default: 0) |
|
|
1475
|
+
| count | number | ✗ | Array: number of items to return (default: 10, max: 100) |
|
|
1476
|
+
| keys | string[] | ✗ | Object: specific keys to retrieve (omit for all keys) |
|
|
1244
1477
|
|
|
1245
|
-
**
|
|
1478
|
+
**Type Requirement**: Buffer must have `contentType: "json"`. Returns error if buffer is XHTML.
|
|
1246
1479
|
|
|
1247
|
-
**
|
|
1248
|
-
|
|
1249
|
-
---
|
|
1480
|
+
**Response for arrays**: `bufferId`, `type: "array"`, `items`, `start`, `count`, `totalItems`, `hasMore`, `itemSchema`
|
|
1250
1481
|
|
|
1251
|
-
|
|
1252
|
-
**Description**: Retrieve complete JSON array items from a buffer. Unlike `buffer_get_chunk` which may truncate mid-item, this returns whole items.
|
|
1253
|
-
**Use Cases**: Iterate through search results, process items in batches, inspect specific items
|
|
1482
|
+
**Response for objects**: `bufferId`, `type: "object"`, `data`, `keys` (all available), `foundKeys`, `missingKeys` (if any)
|
|
1254
1483
|
|
|
1255
|
-
|
|
1256
|
-
|-----------|------|----------|-------------|
|
|
1257
|
-
| bufferId | string | ✓ | Buffer ID containing JSON array |
|
|
1258
|
-
| start | number | ✗ | Starting index (0-based, default: 0) |
|
|
1259
|
-
| count | number | ✗ | Number of items to return (default: 10, max: 100) |
|
|
1260
|
-
|
|
1261
|
-
**Type Requirement**: Buffer must have `contentType: "json"`. Returns error if buffer is XHTML or plain text.
|
|
1262
|
-
|
|
1263
|
-
**Response includes**: `bufferId`, `items` (array of parsed objects), `start`, `count`, `totalItems`, `hasMore`, `itemSchema` (field names in items)
|
|
1264
|
-
|
|
1265
|
-
**Example - Get first 10 items:**
|
|
1484
|
+
**Example - Array: Get first 10 items:**
|
|
1266
1485
|
```typescript
|
|
1267
1486
|
buffer_get_items({
|
|
1268
1487
|
bufferId: "buf_xxx",
|
|
@@ -1270,6 +1489,7 @@ buffer_get_items({
|
|
|
1270
1489
|
count: 10
|
|
1271
1490
|
})
|
|
1272
1491
|
// Returns: {
|
|
1492
|
+
// type: "array",
|
|
1273
1493
|
// items: [{key: "PROJ-1", ...}, {key: "PROJ-2", ...}, ...],
|
|
1274
1494
|
// start: 0,
|
|
1275
1495
|
// count: 10,
|
|
@@ -1279,23 +1499,42 @@ buffer_get_items({
|
|
|
1279
1499
|
// }
|
|
1280
1500
|
```
|
|
1281
1501
|
|
|
1282
|
-
**Example - Page through results:**
|
|
1502
|
+
**Example - Array: Page through results:**
|
|
1283
1503
|
```typescript
|
|
1284
1504
|
// Page 1
|
|
1285
1505
|
buffer_get_items({ bufferId: "buf_xxx", start: 0, count: 50 })
|
|
1286
1506
|
// Page 2
|
|
1287
1507
|
buffer_get_items({ bufferId: "buf_xxx", start: 50, count: 50 })
|
|
1288
|
-
// Page 3
|
|
1289
|
-
buffer_get_items({ bufferId: "buf_xxx", start: 100, count: 50 })
|
|
1290
1508
|
```
|
|
1291
1509
|
|
|
1292
|
-
**
|
|
1293
|
-
|
|
1294
|
-
|
|
1510
|
+
**Example - Object: Get specific keys:**
|
|
1511
|
+
```typescript
|
|
1512
|
+
buffer_get_items({
|
|
1513
|
+
bufferId: "buf_xxx",
|
|
1514
|
+
keys: ["name", "email"]
|
|
1515
|
+
})
|
|
1516
|
+
// Returns: {
|
|
1517
|
+
// type: "object",
|
|
1518
|
+
// data: { name: "John", email: "john@example.com" },
|
|
1519
|
+
// requestedKeys: ["name", "email"],
|
|
1520
|
+
// foundKeys: ["name", "email"],
|
|
1521
|
+
// availableKeys: ["name", "email", "age", "phone"]
|
|
1522
|
+
// }
|
|
1523
|
+
```
|
|
1524
|
+
|
|
1525
|
+
**Example - Object: Get all keys:**
|
|
1526
|
+
```typescript
|
|
1527
|
+
buffer_get_items({ bufferId: "buf_xxx" })
|
|
1528
|
+
// Returns: {
|
|
1529
|
+
// type: "object",
|
|
1530
|
+
// data: { name: "John", email: "john@example.com", age: 30, phone: "..." },
|
|
1531
|
+
// keys: ["name", "email", "age", "phone"]
|
|
1532
|
+
// }
|
|
1533
|
+
```
|
|
1295
1534
|
|
|
1296
1535
|
---
|
|
1297
1536
|
|
|
1298
|
-
###
|
|
1537
|
+
### 3. buffer_get_element
|
|
1299
1538
|
**Description**: Get the raw XHTML content of a specific element by ID. Use to inspect problematic elements when fixing XHTML parsing errors.
|
|
1300
1539
|
**Use Cases**: Debug XHTML validation errors, inspect element content before editing, targeted error recovery
|
|
1301
1540
|
|
|
@@ -1328,6 +1567,70 @@ buffer_get_element({
|
|
|
1328
1567
|
|
|
1329
1568
|
---
|
|
1330
1569
|
|
|
1570
|
+
### 4. buffer_set_items
|
|
1571
|
+
**Description**: Update or append items in a JSON buffer (arrays by ID/append, objects by key).
|
|
1572
|
+
**Use Cases**: Modify JSON data after processing, update specific fields, append new items to arrays, merge new data into objects
|
|
1573
|
+
|
|
1574
|
+
| Parameter | Type | Required | Description |
|
|
1575
|
+
|-----------|------|----------|-------------|
|
|
1576
|
+
| bufferId | string | ✓ | Buffer ID containing JSON array or object |
|
|
1577
|
+
| itemId | number | ✗ | Array: ID of the item to update (from buffer structure) |
|
|
1578
|
+
| append | boolean | ✗ | Array: append new item instead of updating existing |
|
|
1579
|
+
| data | object | ✓ | Data to set/merge/append |
|
|
1580
|
+
|
|
1581
|
+
**Type Requirement**: Buffer must have `contentType: "json"`. Returns error if buffer is XHTML.
|
|
1582
|
+
|
|
1583
|
+
**For Arrays - Update**: Update an item by its `__jicon_id` (visible in buffer structure). The `data` object replaces the existing item.
|
|
1584
|
+
|
|
1585
|
+
**For Arrays - Append**: Set `append=true` to add a new item to the array. Returns the new item's ID.
|
|
1586
|
+
|
|
1587
|
+
**For Objects**: Merge the `data` object into the root object. Existing keys are updated, new keys are added.
|
|
1588
|
+
|
|
1589
|
+
**Response for array update**: `bufferId`, `type: "array"`, `action: "replace"`, `itemId`, `totalItems`
|
|
1590
|
+
|
|
1591
|
+
**Response for array append**: `bufferId`, `type: "array"`, `action: "append"`, `appendedId`, `totalItems`
|
|
1592
|
+
|
|
1593
|
+
**Response for objects**: `bufferId`, `type: "object"`, `action: "merge"`, `updatedKeys`, `addedKeys`, `keys`
|
|
1594
|
+
|
|
1595
|
+
**Example - Array: Update item by ID:**
|
|
1596
|
+
```typescript
|
|
1597
|
+
// Buffer structure shows items with IDs: [{id: 1, ...}, {id: 2, ...}]
|
|
1598
|
+
buffer_set_items({
|
|
1599
|
+
bufferId: "buf_xxx",
|
|
1600
|
+
itemId: 1,
|
|
1601
|
+
data: { status: "completed", updatedAt: "2024-01-15" }
|
|
1602
|
+
})
|
|
1603
|
+
// Returns: { type: "array", action: "replace", itemId: 1, totalItems: 2 }
|
|
1604
|
+
```
|
|
1605
|
+
|
|
1606
|
+
**Example - Array: Append new item:**
|
|
1607
|
+
```typescript
|
|
1608
|
+
buffer_set_items({
|
|
1609
|
+
bufferId: "buf_xxx",
|
|
1610
|
+
append: true,
|
|
1611
|
+
data: { key: "PROJ-123", summary: "New issue" }
|
|
1612
|
+
})
|
|
1613
|
+
// Returns: { type: "array", action: "append", appendedId: 3, totalItems: 3 }
|
|
1614
|
+
```
|
|
1615
|
+
|
|
1616
|
+
**Example - Object: Update/add keys:**
|
|
1617
|
+
```typescript
|
|
1618
|
+
// Buffer contains: { name: "Alice", age: 30 }
|
|
1619
|
+
buffer_set_items({
|
|
1620
|
+
bufferId: "buf_xxx",
|
|
1621
|
+
data: { age: 31, email: "alice@example.com" }
|
|
1622
|
+
})
|
|
1623
|
+
// Returns: {
|
|
1624
|
+
// type: "object",
|
|
1625
|
+
// action: "merge",
|
|
1626
|
+
// updatedKeys: ["age"],
|
|
1627
|
+
// addedKeys: ["email"],
|
|
1628
|
+
// keys: ["name", "age", "email"]
|
|
1629
|
+
// }
|
|
1630
|
+
```
|
|
1631
|
+
|
|
1632
|
+
---
|
|
1633
|
+
|
|
1331
1634
|
### 5. buffer_list
|
|
1332
1635
|
**Description**: List all active buffers with their metadata
|
|
1333
1636
|
**Use Cases**: View active buffers, check expiration times
|
|
@@ -1676,9 +1979,9 @@ buffer_pipeline({
|
|
|
1676
1979
|
| Parameter | Type | Required | Description |
|
|
1677
1980
|
|-----------|------|----------|-------------|
|
|
1678
1981
|
| bufferId | string | ✓ | Buffer ID to modify |
|
|
1679
|
-
|
|
|
1680
|
-
|
|
|
1681
|
-
|
|
|
1982
|
+
| oldString | string | ✓ | Exact text to replace |
|
|
1983
|
+
| newString | string | ✓ | Replacement text |
|
|
1984
|
+
| replaceAll | boolean | ✗ | Replace all occurrences (default: false) |
|
|
1682
1985
|
|
|
1683
1986
|
**Plain/JSON Parameters (append):**
|
|
1684
1987
|
|
|
@@ -2205,7 +2508,7 @@ Tools enforce type-safe buffer access - each tool only accepts buffers of the ty
|
|
|
2205
2508
|
|-------------|------------------------------|
|
|
2206
2509
|
| **json** | `buffer_pipeline`, `buffer_get_items` |
|
|
2207
2510
|
| **xhtml** | `buffer_get_structure`, `buffer_get_element`, `buffer_validate_xhtml`, `confluence_draft_create` (with bufferId), `confluence_draft_save` |
|
|
2208
|
-
| **any** | `buffer_grep`, `
|
|
2511
|
+
| **any** | `buffer_grep`, `buffer_list`, `buffer_clear`, `buffer_edit` (string mode) |
|
|
2209
2512
|
|
|
2210
2513
|
**Error Messages**: When you use a tool with the wrong buffer type, you get a helpful error:
|
|
2211
2514
|
```
|