@crypto512/jicon-mcp 2.3.27 → 2.4.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/README.md +4 -0
- package/TOOL_LIST.md +123 -92
- package/dist/config/types.d.ts +65 -214
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +3 -3
- package/dist/config/types.js.map +1 -1
- package/dist/confluence/tools.d.ts +52 -165
- package/dist/confluence/tools.d.ts.map +1 -1
- package/dist/confluence/tools.js +69 -57
- package/dist/confluence/tools.js.map +1 -1
- package/dist/index.js +16 -10
- package/dist/index.js.map +1 -1
- package/dist/jira/activity-tools.d.ts +19 -95
- package/dist/jira/activity-tools.d.ts.map +1 -1
- package/dist/jira/activity-tools.js +13 -13
- package/dist/jira/activity-tools.js.map +1 -1
- package/dist/jira/tools.d.ts +64 -216
- package/dist/jira/tools.d.ts.map +1 -1
- package/dist/jira/tools.js +65 -37
- package/dist/jira/tools.js.map +1 -1
- package/dist/permissions/filter.js +6 -6
- package/dist/permissions/filter.js.map +1 -1
- package/dist/permissions/tool-registry.d.ts +24 -24
- package/dist/permissions/tool-registry.d.ts.map +1 -1
- package/dist/permissions/tool-registry.js +26 -26
- package/dist/permissions/tool-registry.js.map +1 -1
- package/dist/permissions/write-home-validator.js +7 -7
- package/dist/tempo/tools.d.ts +24 -103
- package/dist/tempo/tools.d.ts.map +1 -1
- package/dist/tempo/tools.js +24 -21
- package/dist/tempo/tools.js.map +1 -1
- package/dist/transport/http.d.ts +4 -4
- package/dist/transport/http.d.ts.map +1 -1
- package/dist/transport/index.d.ts +2 -2
- package/dist/transport/index.js +2 -2
- package/dist/utils/buffer-tools.d.ts +24 -178
- package/dist/utils/buffer-tools.d.ts.map +1 -1
- package/dist/utils/buffer-tools.js +13 -13
- package/dist/utils/buffer-tools.js.map +1 -1
- package/dist/utils/date-tools.d.ts +8 -7
- package/dist/utils/date-tools.d.ts.map +1 -1
- package/dist/utils/date-tools.js +14 -0
- package/dist/utils/date-tools.js.map +1 -1
- package/dist/utils/http-client.js +1 -1
- package/dist/utils/http-client.js.map +1 -1
- package/dist/utils/jicon-help.d.ts +12 -9
- package/dist/utils/jicon-help.d.ts.map +1 -1
- package/dist/utils/jicon-help.js +53 -53
- package/dist/utils/jicon-help.js.map +1 -1
- package/dist/utils/mcp-schema.d.ts +19 -0
- package/dist/utils/mcp-schema.d.ts.map +1 -0
- package/dist/utils/mcp-schema.js +19 -0
- package/dist/utils/mcp-schema.js.map +1 -0
- package/dist/utils/plantuml/tools.d.ts +9 -20
- package/dist/utils/plantuml/tools.d.ts.map +1 -1
- package/dist/utils/plantuml/tools.js +4 -4
- package/dist/utils/plantuml/tools.js.map +1 -1
- package/dist/utils/plantuml/types.d.ts +21 -21
- package/dist/utils/plantuml/types.d.ts.map +1 -1
- package/dist/utils/response-formatter.js +1 -1
- package/dist/utils/response-formatter.js.map +1 -1
- package/dist/utils/sandbox/schema.d.ts +3 -29
- package/dist/utils/sandbox/schema.d.ts.map +1 -1
- package/dist/utils/sandbox/schema.js +1 -1
- package/dist/utils/sandbox/schema.js.map +1 -1
- package/dist/utils/schemas/jira.d.ts +2 -2
- package/dist/utils/schemas/jira.js +2 -2
- package/dist/utils/schemas/tempo.d.ts +4 -4
- package/dist/utils/schemas/tempo.js +4 -4
- package/dist/utils/url-tools.d.ts +5 -13
- package/dist/utils/url-tools.d.ts.map +1 -1
- package/dist/utils/url-tools.js +11 -11
- package/dist/utils/url-tools.js.map +1 -1
- package/dist/utils/whoami-tools.d.ts +8 -11
- package/dist/utils/whoami-tools.d.ts.map +1 -1
- package/dist/utils/whoami-tools.js +3 -3
- package/dist/utils/whoami-tools.js.map +1 -1
- package/dist/utils/workload-tools.d.ts +13 -31
- package/dist/utils/workload-tools.d.ts.map +1 -1
- package/dist/utils/xhtml/plantuml.js +2 -2
- package/dist/utils/xhtml/plantuml.js.map +1 -1
- package/dist/utils/xhtml/types.d.ts +45 -35
- package/dist/utils/xhtml/types.d.ts.map +1 -1
- package/dist/utils/xhtml/types.js +1 -1
- package/dist/utils/xhtml/types.js.map +1 -1
- package/package.json +9 -9
package/TOOL_LIST.md
CHANGED
|
@@ -3,6 +3,37 @@
|
|
|
3
3
|
## Overview
|
|
4
4
|
This document provides a comprehensive reference of all available tools in the Jira, Confluence, and Tempo MCP server.
|
|
5
5
|
|
|
6
|
+
## ⚠️ Breaking changes in 2.4.1
|
|
7
|
+
|
|
8
|
+
Tool names and a few parameters were standardized for consistency (every tool is now
|
|
9
|
+
`<module>_<verb>_<noun>`). Update any saved prompts, automations, or permission configs.
|
|
10
|
+
|
|
11
|
+
| Old name | New name |
|
|
12
|
+
|----------|----------|
|
|
13
|
+
| `fullurl` | `url_build` |
|
|
14
|
+
| `parseurl` | `url_parse` |
|
|
15
|
+
| `help` | `jicon_help` |
|
|
16
|
+
| `whoami` | `user_whoami` |
|
|
17
|
+
| `resolve_user` | `user_resolve` |
|
|
18
|
+
| `jira_get_sprints` | `jira_list_sprints` |
|
|
19
|
+
| `jira_get_issue_types` | `jira_list_issue_types` |
|
|
20
|
+
| `jira_get_fields` | `jira_search_fields` |
|
|
21
|
+
| `tempo_get_accounts` | `tempo_list_accounts` |
|
|
22
|
+
| `tempo_get_teams` | `tempo_list_teams` |
|
|
23
|
+
| `confluence_draft_create` | `confluence_create_draft` |
|
|
24
|
+
| `confluence_draft_save` | `confluence_save_draft` |
|
|
25
|
+
| `confluence_draft_open` | `confluence_open_draft` |
|
|
26
|
+
| `confluence_draft_list` | `confluence_list_drafts` |
|
|
27
|
+
| `confluence_draft_delete` | `confluence_delete_draft` |
|
|
28
|
+
| `confluence_review_publish` | `confluence_publish_review` |
|
|
29
|
+
| `confluence_review_discard` | `confluence_discard_review` |
|
|
30
|
+
| `confluence_review_list` | `confluence_list_reviews` |
|
|
31
|
+
|
|
32
|
+
**Parameter changes:** the result-cap parameter is now `limit` everywhere (was
|
|
33
|
+
`maxResults`/`maxActivities`/`maxComments`/`maxChanges`); all numeric id parameters accept a
|
|
34
|
+
number or a numeric string; Tempo `dateFrom`/`dateTo` accept date expressions (e.g.
|
|
35
|
+
`"last_week"`) in addition to `YYYY-MM-DD`.
|
|
36
|
+
|
|
6
37
|
## Summary
|
|
7
38
|
|
|
8
39
|
**Tool Categories**:
|
|
@@ -75,7 +106,7 @@ jira_update_issue({ issueKey: "PROJ-123", fields: {...}, autoRetry: true })
|
|
|
75
106
|
|
|
76
107
|
**Tools supporting autoRetry:**
|
|
77
108
|
- `jira_update_issue` - Auto-retries on 409 (refetches issue)
|
|
78
|
-
- `
|
|
109
|
+
- `confluence_publish_review` - Auto-retries on 409 (refetches page version)
|
|
79
110
|
- `tempo_update_worklog` - Auto-retries on 409 (refetches worklog)
|
|
80
111
|
|
|
81
112
|
**Response on successful retry:**
|
|
@@ -115,7 +146,7 @@ When XHTML validation fails, the response includes element ID and suggested acti
|
|
|
115
146
|
2. buffer_transform(inputs, code) → tableBufferId (98% token reduction)
|
|
116
147
|
3. confluence_load(pageId) → pageBufferId, structure
|
|
117
148
|
4. buffer_edit(pageBufferId, after=ID, fromBufferId=tableBufferId)
|
|
118
|
-
5.
|
|
149
|
+
5. confluence_create_draft(pageId, pageBufferId, autoRetry=true) → draft URL
|
|
119
150
|
```
|
|
120
151
|
|
|
121
152
|
#### Tempo Time Report
|
|
@@ -132,8 +163,8 @@ When XHTML validation fails, the response includes element ID and suggested acti
|
|
|
132
163
|
2. buffer_edit(bufferId, after=ID, content) → updated structure
|
|
133
164
|
3. buffer_validate_xhtml(bufferId) → check before publish
|
|
134
165
|
- If errors: buffer_get_element(elementId) → inspect → buffer_edit(replace=ID) → retry
|
|
135
|
-
4.
|
|
136
|
-
5.
|
|
166
|
+
4. confluence_create_draft(pageId, bufferId) → draft for review
|
|
167
|
+
5. confluence_publish_review(reviewDraftId, autoRetry=true) → published
|
|
137
168
|
```
|
|
138
169
|
|
|
139
170
|
#### Batch Confluence Page Summarization
|
|
@@ -165,8 +196,8 @@ When XHTML validation fails, the response includes element ID and suggested acti
|
|
|
165
196
|
| Epic Link | Lien d'épopée | Epic-Link |
|
|
166
197
|
|
|
167
198
|
**Before writing JQL:**
|
|
168
|
-
1. `
|
|
169
|
-
2. `
|
|
199
|
+
1. `jira_list_issue_types()` - Discover actual type names
|
|
200
|
+
2. `jira_search_fields(search="epic")` - Discover field names and IDs
|
|
170
201
|
3. Use `cf[ID]` syntax for language-independent queries: `cf[10014] = PROJ-123`
|
|
171
202
|
|
|
172
203
|
The server automatically handles localized changelog field names for activity tracking.
|
|
@@ -327,7 +358,7 @@ The server automatically handles localized changelog field names for activity tr
|
|
|
327
358
|
|
|
328
359
|
---
|
|
329
360
|
|
|
330
|
-
###
|
|
361
|
+
### jira_list_issue_types
|
|
331
362
|
**Description**: Get all available issue types in this Jira instance
|
|
332
363
|
**Use Cases**: Discover type names before filtering by type in JQL, find localized or custom type names
|
|
333
364
|
|
|
@@ -339,7 +370,7 @@ The server automatically handles localized changelog field names for activity tr
|
|
|
339
370
|
|
|
340
371
|
---
|
|
341
372
|
|
|
342
|
-
###
|
|
373
|
+
### jira_search_fields
|
|
343
374
|
**Description**: Get Jira fields (system and custom). Requires a search term or "all".
|
|
344
375
|
**Use Cases**: Discover field names in user's language, find custom field IDs for JQL, identify Epic Link field
|
|
345
376
|
|
|
@@ -351,7 +382,7 @@ The server automatically handles localized changelog field names for activity tr
|
|
|
351
382
|
**Returns**: List of fields with id, name, custom, clauseNames, schemaType
|
|
352
383
|
|
|
353
384
|
**Example workflow for Epic Link in any language**:
|
|
354
|
-
1. Call `
|
|
385
|
+
1. Call `jira_search_fields(search="epic")` — matches name, id, clauseNames, AND schemaType
|
|
355
386
|
2. Look for field with `schemaType = "com.pyxis.greenhopper.jira:gh-epic-link"`
|
|
356
387
|
3. Use `cf[ID]` from clauseNames in JQL: `cf[10014] IS EMPTY`
|
|
357
388
|
|
|
@@ -366,7 +397,7 @@ The server automatically handles localized changelog field names for activity tr
|
|
|
366
397
|
| Parameter | Type | Required | Description |
|
|
367
398
|
|-----------|------|----------|-------------|
|
|
368
399
|
| query | string | ✓ | Search text (display name, username, or email) |
|
|
369
|
-
|
|
|
400
|
+
| limit | number | ✗ | Maximum results (default: 20) |
|
|
370
401
|
|
|
371
402
|
**Returns**: Inline list of matching users with `key`, `name`, `displayName`, `emailAddress`.
|
|
372
403
|
|
|
@@ -432,7 +463,7 @@ jira_list_boards(type="scrum") # Only Scrum boards
|
|
|
432
463
|
|
|
433
464
|
---
|
|
434
465
|
|
|
435
|
-
###
|
|
466
|
+
### jira_list_sprints
|
|
436
467
|
**Description**: List all sprints for a board
|
|
437
468
|
**Use Cases**: View active sprints, check sprint schedules
|
|
438
469
|
|
|
@@ -530,7 +561,7 @@ Fetches comments, status changes, priority changes, and assignee changes - forma
|
|
|
530
561
|
| includeStatusChanges | boolean | ✗ | Include status changes (default: true) |
|
|
531
562
|
| includePriorityChanges | boolean | ✗ | Include priority changes (default: true) |
|
|
532
563
|
| includeAssigneeChanges | boolean | ✗ | Include assignee changes (default: true) |
|
|
533
|
-
|
|
|
564
|
+
| limit | number | ✗ | Maximum activities to return (default: 50) |
|
|
534
565
|
| commentMaxLength | number | ✗ | Max length for comment text (default: 500) |
|
|
535
566
|
|
|
536
567
|
**At least one scoping parameter required**: `projectKey`, `jql`, or `issueKeys`
|
|
@@ -566,7 +597,7 @@ Fetches comments, status changes, priority changes, and assignee changes - forma
|
|
|
566
597
|
| issueKeys | string[] | ✗ | Specific issue keys to include |
|
|
567
598
|
| since | string | ✗ | Time range: "7d", "30d", "365d", or ISO date (default: "30d"). Provide explicitly for accurate results. |
|
|
568
599
|
| authorKey | string | ✗ | Filter by comment author username |
|
|
569
|
-
|
|
|
600
|
+
| limit | number | ✗ | Maximum comments to return (default: all) |
|
|
570
601
|
|
|
571
602
|
**At least one scoping parameter required**: `projectKey`, `jql`, or `issueKeys`
|
|
572
603
|
|
|
@@ -586,7 +617,7 @@ Fetches comments, status changes, priority changes, and assignee changes - forma
|
|
|
586
617
|
| issueKeys | string[] | ✗ | Specific issue keys to include |
|
|
587
618
|
| since | string | ✗ | Time range: "7d", "30d", "365d", or ISO date (default: "30d"). Provide explicitly for accurate results. |
|
|
588
619
|
| fields | string[] | ✗ | Fields to track (default: ["status", "priority", "assignee", "resolution"]) |
|
|
589
|
-
|
|
|
620
|
+
| limit | number | ✗ | Maximum changes to return (default: 50) |
|
|
590
621
|
|
|
591
622
|
**At least one scoping parameter required**: `projectKey`, `jql`, or `issueKeys`
|
|
592
623
|
|
|
@@ -614,7 +645,7 @@ Fetches comments, status changes, priority changes, and assignee changes - forma
|
|
|
614
645
|
| issueKey | string | ✓ | Epic or parent issue key (e.g., PROJ-123) |
|
|
615
646
|
| includeComments | boolean | ✗ | Include recent comments (default: true) |
|
|
616
647
|
| commentDays | number | ✗ | Days of comments to include (default: 14) |
|
|
617
|
-
|
|
|
648
|
+
| limit | number | ✗ | Max comments per issue (default: 5) |
|
|
618
649
|
|
|
619
650
|
**Returns**: Comprehensive markdown analysis including:
|
|
620
651
|
- **Issue Hierarchy**: Breakdown by type (Epic, Story, Task, Sub-task) with completion percentages
|
|
@@ -703,12 +734,12 @@ Provides quick overview without the heavy metrics of `jira_analyze_epic` - no ti
|
|
|
703
734
|
|
|
704
735
|
| Parameter | Type | Required | Description |
|
|
705
736
|
|-----------|------|----------|-------------|
|
|
706
|
-
| sprintId | number | ✓ | Sprint ID (from `
|
|
737
|
+
| sprintId | number | ✓ | Sprint ID (from `jira_list_sprints`) |
|
|
707
738
|
| includeComments | boolean | ✗ | Include recent comments (default: true) |
|
|
708
739
|
| commentDays | number | ✗ | Days of comments to include (default: 7) |
|
|
709
740
|
| includeRisks | boolean | ✗ | Calculate risk indicators (default: true) |
|
|
710
741
|
|
|
711
|
-
**Finding sprintId**: Call `
|
|
742
|
+
**Finding sprintId**: Call `jira_list_sprints(boardId)` first. BoardId can be found in Jira URLs like `/secure/RapidBoard.jspa?rapidView=123`.
|
|
712
743
|
|
|
713
744
|
**Returns**: Comprehensive markdown analysis including:
|
|
714
745
|
- **Sprint Metadata**: Name, state, dates, duration, days remaining
|
|
@@ -789,7 +820,7 @@ Time tracking shows **71% of estimate used** for **65% completion**.
|
|
|
789
820
|
### confluence_search_content
|
|
790
821
|
**Description**: Search Confluence content using CQL. Auto-fetches all results.
|
|
791
822
|
**Use Cases**: Find pages, search by keyword, filter by space
|
|
792
|
-
**CQL Syntax**: See `
|
|
823
|
+
**CQL Syntax**: See `jicon_help(topic="cql")` for valid fields and examples.
|
|
793
824
|
|
|
794
825
|
| Parameter | Type | Required | Description |
|
|
795
826
|
|-----------|------|----------|-------------|
|
|
@@ -811,7 +842,7 @@ Time tracking shows **71% of estimate used** for **65% completion**.
|
|
|
811
842
|
|
|
812
843
|
**Response includes**: `pageId`, `version`, `bufferId`, `contentSize`, metadata
|
|
813
844
|
|
|
814
|
-
**Usage**: Content is stored in buffer with `contentType: "xhtml"` and returns `structure` with element IDs. Use `buffer_edit(bufferId, after=ID, content/plantuml/fromBufferId)` to add content, then `
|
|
845
|
+
**Usage**: Content is stored in buffer with `contentType: "xhtml"` and returns `structure` with element IDs. Use `buffer_edit(bufferId, after=ID, content/plantuml/fromBufferId)` to add content, then `confluence_create_draft(pageId, bufferId)` for user review.
|
|
815
846
|
|
|
816
847
|
---
|
|
817
848
|
|
|
@@ -827,7 +858,7 @@ Time tracking shows **71% of estimate used** for **65% completion**.
|
|
|
827
858
|
|
|
828
859
|
**Response includes**: `pageId`, `version`, `bufferId`, `contentSize`, metadata
|
|
829
860
|
|
|
830
|
-
**Usage**: Content is stored in buffer with `contentType: "xhtml"` and returns `structure` with element IDs. Use `buffer_edit(bufferId, after=ID, content/plantuml/fromBufferId)` to add content, then `
|
|
861
|
+
**Usage**: Content is stored in buffer with `contentType: "xhtml"` and returns `structure` with element IDs. Use `buffer_edit(bufferId, after=ID, content/plantuml/fromBufferId)` to add content, then `confluence_create_draft(pageId, bufferId)` for user review.
|
|
831
862
|
|
|
832
863
|
---
|
|
833
864
|
|
|
@@ -835,7 +866,7 @@ Time tracking shows **71% of estimate used** for **65% completion**.
|
|
|
835
866
|
**Description**: Load an EXISTING page or draft into a buffer for editing. Auto-resolves URLs, pageIds, draftIds, or SPACE/Title.
|
|
836
867
|
**Use Cases**: Load any Confluence content with a single tool, handle URL input from users
|
|
837
868
|
|
|
838
|
-
**For NEW pages**: `buffer_create(contentType="xhtml")` → `
|
|
869
|
+
**For NEW pages**: `buffer_create(contentType="xhtml")` → `confluence_create_draft(spaceKey, title, bufferId)`
|
|
839
870
|
|
|
840
871
|
| Parameter | Type | Required | Description |
|
|
841
872
|
|-----------|------|----------|-------------|
|
|
@@ -862,7 +893,7 @@ Time tracking shows **71% of estimate used** for **65% completion**.
|
|
|
862
893
|
```
|
|
863
894
|
1. confluence_load("URL or SPACE/Title") → bufferId, structure, pageId
|
|
864
895
|
2. buffer_edit(bufferId, after=ID, content/plantuml/fromBufferId) → add content
|
|
865
|
-
3.
|
|
896
|
+
3. confluence_create_draft(pageId=..., bufferId=...) → draft for review (links to original page)
|
|
866
897
|
4. User publishes via Confluence UI (updates original page)
|
|
867
898
|
5. For more edits: confluence_load(same input) → auto-resolves
|
|
868
899
|
```
|
|
@@ -876,10 +907,10 @@ buffer_edit(bufferId=pageBuffer, after=5, fromBufferId=newContentBuffer)
|
|
|
876
907
|
|
|
877
908
|
> **Note**: All page content changes go through the draft workflow.
|
|
878
909
|
> AI creates/edits drafts; user publishes manually via Confluence UI:
|
|
879
|
-
> - **Edit existing**: `confluence_load(input)` → `buffer_edit(bufferId, ...)` → `buffer_validate_xhtml(bufferId)` → `
|
|
880
|
-
> - **Create new**: `buffer_create(content, contentType="xhtml")` → `buffer_validate_xhtml(bufferId)` → `
|
|
910
|
+
> - **Edit existing**: `confluence_load(input)` → `buffer_edit(bufferId, ...)` → `buffer_validate_xhtml(bufferId)` → `confluence_create_draft(pageId, bufferId)` → user publishes
|
|
911
|
+
> - **Create new**: `buffer_create(content, contentType="xhtml")` → `buffer_validate_xhtml(bufferId)` → `confluence_create_draft(spaceKey, title, bufferId)` → user publishes
|
|
881
912
|
> - **After publish**: Draft ID becomes invalid; use `confluence_load("SPACE/Title")` to edit again
|
|
882
|
-
> - **XHTML syntax**: Call `
|
|
913
|
+
> - **XHTML syntax**: Call `jicon_help(topic="storage")` for HTML vs XHTML differences
|
|
883
914
|
|
|
884
915
|
---
|
|
885
916
|
|
|
@@ -939,7 +970,7 @@ buffer_edit(bufferId=pageBuffer, after=5, fromBufferId=newContentBuffer)
|
|
|
939
970
|
|
|
940
971
|
**Notes**:
|
|
941
972
|
- This is the **default space** when the user does not specify a target space
|
|
942
|
-
- Use the returned `spaceKey` with `
|
|
973
|
+
- Use the returned `spaceKey` with `confluence_create_draft(spaceKey=...)` or `confluence_search_content(cql="space=...")`
|
|
943
974
|
- Returns 404 if user has no personal space configured
|
|
944
975
|
|
|
945
976
|
---
|
|
@@ -1021,7 +1052,7 @@ confluence_get_pages(pageIds=["111", "222", "333"])
|
|
|
1021
1052
|
|
|
1022
1053
|
---
|
|
1023
1054
|
|
|
1024
|
-
###
|
|
1055
|
+
### confluence_list_drafts
|
|
1025
1056
|
**Description**: List user's UNPUBLISHED draft pages (work-in-progress content)
|
|
1026
1057
|
**Use Cases**: View pending drafts, find drafts to continue editing
|
|
1027
1058
|
**NOTE**: To find published pages you edited, use `confluence_search_content(cql="contributor=currentUser()")`
|
|
@@ -1034,7 +1065,7 @@ confluence_get_pages(pageIds=["111", "222", "333"])
|
|
|
1034
1065
|
|
|
1035
1066
|
---
|
|
1036
1067
|
|
|
1037
|
-
###
|
|
1068
|
+
### confluence_open_draft
|
|
1038
1069
|
**Description**: Load existing draft into buffer for editing
|
|
1039
1070
|
**Use Cases**: Continue editing a draft, prepare draft for publishing
|
|
1040
1071
|
|
|
@@ -1044,11 +1075,11 @@ confluence_get_pages(pageIds=["111", "222", "333"])
|
|
|
1044
1075
|
|
|
1045
1076
|
**Response includes**: `draftId`, `bufferId`, `structure` (element IDs), `title`, `spaceKey`, `version`, `url`, `contentPreview`
|
|
1046
1077
|
|
|
1047
|
-
**Usage**: Content is stored in buffer with element IDs. Use `buffer_edit(bufferId, after=ID, content/plantuml/fromBufferId)` to modify, then `
|
|
1078
|
+
**Usage**: Content is stored in buffer with element IDs. Use `buffer_edit(bufferId, after=ID, content/plantuml/fromBufferId)` to modify, then `confluence_save_draft` to checkpoint.
|
|
1048
1079
|
|
|
1049
1080
|
---
|
|
1050
1081
|
|
|
1051
|
-
###
|
|
1082
|
+
### confluence_create_draft
|
|
1052
1083
|
**Description**: Create a draft for user review - either a new page or as an edit to an existing page
|
|
1053
1084
|
**Use Cases**: Start new page as draft, edit existing page through draft workflow
|
|
1054
1085
|
|
|
@@ -1074,7 +1105,7 @@ confluence_get_pages(pageIds=["111", "222", "333"])
|
|
|
1074
1105
|
|
|
1075
1106
|
**Important**: When `pageId` is provided, `bufferId` must originate from that page (validated). Space, title, and parent are auto-populated from the original page.
|
|
1076
1107
|
|
|
1077
|
-
**WARNING**: `pageId` must be a real page ID, NOT a draft ID. If you pass a draft ID, you'll get an error suggesting `
|
|
1108
|
+
**WARNING**: `pageId` must be a real page ID, NOT a draft ID. If you pass a draft ID, you'll get an error suggesting `confluence_open_draft` instead.
|
|
1078
1109
|
|
|
1079
1110
|
**Response includes**: `draftId`, `bufferId`, `structure` (element IDs), `title`, `spaceKey`, `version`, `url` (clickable to preview), `contentSummary`, `editingExistingPage` (when editing)
|
|
1080
1111
|
|
|
@@ -1088,7 +1119,7 @@ confluence_get_pages(pageIds=["111", "222", "333"])
|
|
|
1088
1119
|
→ bufferId, structure (element IDs)
|
|
1089
1120
|
2. buffer_validate_xhtml(bufferId)
|
|
1090
1121
|
→ If errors: buffer_edit(bufferId, replace=errorElementId, content="<fixed>")
|
|
1091
|
-
3.
|
|
1122
|
+
3. confluence_create_draft(spaceKey, title, bufferId)
|
|
1092
1123
|
→ draftId, url for preview
|
|
1093
1124
|
4. User reviews and publishes via Confluence UI
|
|
1094
1125
|
```
|
|
@@ -1101,16 +1132,16 @@ confluence_get_pages(pageIds=["111", "222", "333"])
|
|
|
1101
1132
|
→ modify content
|
|
1102
1133
|
3. buffer_validate_xhtml(bufferId)
|
|
1103
1134
|
→ check for errors
|
|
1104
|
-
4.
|
|
1135
|
+
4. confluence_create_draft(pageId=..., bufferId=...)
|
|
1105
1136
|
→ draft for review
|
|
1106
1137
|
5. User reviews and publishes in Confluence UI (updates original page)
|
|
1107
1138
|
```
|
|
1108
1139
|
|
|
1109
|
-
**Why buffer-first?** Enables validation with element IDs for surgical error fixing. Call `
|
|
1140
|
+
**Why buffer-first?** Enables validation with element IDs for surgical error fixing. Call `jicon_help(topic="storage")` for XHTML syntax (HTML vs XHTML differences).
|
|
1110
1141
|
|
|
1111
1142
|
---
|
|
1112
1143
|
|
|
1113
|
-
###
|
|
1144
|
+
### confluence_save_draft
|
|
1114
1145
|
**Description**: Save buffer content to draft (delete + recreate pattern)
|
|
1115
1146
|
**Use Cases**: Checkpoint work, persist edits before publishing
|
|
1116
1147
|
|
|
@@ -1128,7 +1159,7 @@ confluence_get_pages(pageIds=["111", "222", "333"])
|
|
|
1128
1159
|
|
|
1129
1160
|
---
|
|
1130
1161
|
|
|
1131
|
-
###
|
|
1162
|
+
### confluence_delete_draft
|
|
1132
1163
|
**Description**: Permanently delete a draft
|
|
1133
1164
|
**Use Cases**: Clean up abandoned drafts, remove unwanted content
|
|
1134
1165
|
|
|
@@ -1140,7 +1171,7 @@ confluence_get_pages(pageIds=["111", "222", "333"])
|
|
|
1140
1171
|
|
|
1141
1172
|
---
|
|
1142
1173
|
|
|
1143
|
-
###
|
|
1174
|
+
### confluence_list_reviews
|
|
1144
1175
|
**Description**: List all "[jicon-mcp REVIEW]" drafts for cleanup or management
|
|
1145
1176
|
**Use Cases**: Find abandoned review drafts, manage multiple review workflows, clean up after publishing
|
|
1146
1177
|
|
|
@@ -1150,11 +1181,11 @@ confluence_get_pages(pageIds=["111", "222", "333"])
|
|
|
1150
1181
|
|
|
1151
1182
|
**Response includes**: `reviewDrafts` array with `reviewDraftId`, `title`, `originalTitle`, `originalPageId`, `spaceKey`, `spaceName`, `createdDate`, `editUrl`; `total`, `message`
|
|
1152
1183
|
|
|
1153
|
-
**Note**: Review drafts are created when using `
|
|
1184
|
+
**Note**: Review drafts are created when using `confluence_create_draft` with a `pageId` parameter to edit an existing page. They are linked to the original page via a label.
|
|
1154
1185
|
|
|
1155
1186
|
---
|
|
1156
1187
|
|
|
1157
|
-
###
|
|
1188
|
+
### confluence_publish_review
|
|
1158
1189
|
**Description**: Publish a review draft to apply changes to the original page
|
|
1159
1190
|
**Use Cases**: Apply reviewed changes to the original page, complete the review workflow
|
|
1160
1191
|
|
|
@@ -1174,7 +1205,7 @@ confluence_get_pages(pageIds=["111", "222", "333"])
|
|
|
1174
1205
|
|
|
1175
1206
|
---
|
|
1176
1207
|
|
|
1177
|
-
###
|
|
1208
|
+
### confluence_discard_review
|
|
1178
1209
|
**Description**: Discard a review draft without applying changes to the original page
|
|
1179
1210
|
**Use Cases**: Cancel a review, abandon changes, clean up unwanted review drafts
|
|
1180
1211
|
|
|
@@ -1195,7 +1226,7 @@ confluence_get_pages(pageIds=["111", "222", "333"])
|
|
|
1195
1226
|
|
|
1196
1227
|
### JQL (Jira Query Language) Examples
|
|
1197
1228
|
|
|
1198
|
-
> **Note**: Type, status, and priority names below are in English. Use `
|
|
1229
|
+
> **Note**: Type, status, and priority names below are in English. Use `jira_list_issue_types()` and `jira_search_fields(search="epic")` to discover actual names for your Jira instance. Functions like `currentUser()`, `openSprints()`, `startOfDay()` work in all languages.
|
|
1199
1230
|
|
|
1200
1231
|
```jql
|
|
1201
1232
|
# Find open bugs assigned to you
|
|
@@ -1248,7 +1279,7 @@ AND lastModified >= now("-30d")
|
|
|
1248
1279
|
|
|
1249
1280
|
### Workflow 2: Sprint Planning
|
|
1250
1281
|
1. `jira_get_board` - Get board info
|
|
1251
|
-
2. `
|
|
1282
|
+
2. `jira_list_sprints` - Find active sprint
|
|
1252
1283
|
3. `jira_get_sprint_issues` - Review sprint items
|
|
1253
1284
|
4. `jira_search_issues` - Find candidates for next sprint
|
|
1254
1285
|
5. `jira_update_issue` - Assign to sprint
|
|
@@ -1257,7 +1288,7 @@ AND lastModified >= now("-30d")
|
|
|
1257
1288
|
1. `confluence_search_content` - Find existing page
|
|
1258
1289
|
2. `confluence_get_page` - Read current content (returns bufferId with `structure` element IDs)
|
|
1259
1290
|
3. `buffer_edit` - Modify content using element IDs (e.g., `after=2`, `replace=5`)
|
|
1260
|
-
4. `
|
|
1291
|
+
4. `confluence_create_draft` - Create draft for user review
|
|
1261
1292
|
5. User reviews draft at URL
|
|
1262
1293
|
6. User publishes via Confluence UI (click "Publish" button)
|
|
1263
1294
|
7. `confluence_add_comment` - Note changes
|
|
@@ -1272,10 +1303,10 @@ AND lastModified >= now("-30d")
|
|
|
1272
1303
|
6. `jira_link_issues` - Link related issues
|
|
1273
1304
|
|
|
1274
1305
|
### Workflow 5: Create Page via Draft
|
|
1275
|
-
1. `
|
|
1306
|
+
1. `confluence_create_draft` - Create draft + buffer with `structure` (element IDs), get preview URL
|
|
1276
1307
|
2. Click URL to preview draft in browser
|
|
1277
1308
|
3. `buffer_edit` - Modify content using element IDs (e.g., `after=1`, `plantuml="..."`)
|
|
1278
|
-
4. `
|
|
1309
|
+
4. `confluence_save_draft` - Checkpoint changes, get new URL
|
|
1279
1310
|
5. Repeat steps 2-4 as needed
|
|
1280
1311
|
6. User publishes via Confluence UI (click "Publish" button)
|
|
1281
1312
|
|
|
@@ -1370,7 +1401,7 @@ AND lastModified >= now("-30d")
|
|
|
1370
1401
|
|
|
1371
1402
|
---
|
|
1372
1403
|
|
|
1373
|
-
###
|
|
1404
|
+
### tempo_list_accounts
|
|
1374
1405
|
**Description**: Get all Tempo accounts
|
|
1375
1406
|
**Use Cases**: List accounts for time tracking, find account keys
|
|
1376
1407
|
|
|
@@ -1394,7 +1425,7 @@ AND lastModified >= now("-30d")
|
|
|
1394
1425
|
|
|
1395
1426
|
---
|
|
1396
1427
|
|
|
1397
|
-
###
|
|
1428
|
+
### tempo_list_teams
|
|
1398
1429
|
**Description**: Get all Tempo teams
|
|
1399
1430
|
**Use Cases**: List teams, find team IDs
|
|
1400
1431
|
|
|
@@ -1500,7 +1531,7 @@ Buffer tools are used for local content management. All buffer operations are in
|
|
|
1500
1531
|
### buffer_create
|
|
1501
1532
|
**Description**: Create a new buffer with initial content. Returns bufferId and structure.
|
|
1502
1533
|
|
|
1503
|
-
**TIP**: Call `
|
|
1534
|
+
**TIP**: Call `jicon_help(topic="storage")` for XHTML syntax. Call `jicon_help(topic="plantuml")` for diagram syntax.
|
|
1504
1535
|
|
|
1505
1536
|
**Content types**:
|
|
1506
1537
|
- **xhtml**: Confluence storage format. Returns element IDs for `buffer_edit`.
|
|
@@ -1533,7 +1564,7 @@ buffer_create({ content: [{"key":"PROJ-1"}], contentType: "json" }) // Native
|
|
|
1533
1564
|
// -> returns bufferId, structure: [{id:1, type:"h1", text:"Title"}, {id:2, type:"p", text:"Intro"}]
|
|
1534
1565
|
// 2. buffer_edit({ bufferId, after: 1, content: "<p>New paragraph</p>" })
|
|
1535
1566
|
// -> inserts after h1, returns structure with new element id:3
|
|
1536
|
-
// 3.
|
|
1567
|
+
// 3. confluence_create_draft({ spaceKey, title, bufferId }) -> user reviews at URL
|
|
1537
1568
|
// 4. User publishes via Confluence UI (click "Publish" button)
|
|
1538
1569
|
```
|
|
1539
1570
|
|
|
@@ -1545,7 +1576,7 @@ buffer_create({ content: [{"key":"PROJ-1"}], contentType: "json" }) // Native
|
|
|
1545
1576
|
// { after: 2, plantuml: "@startuml\nclass User\n@enduml" }
|
|
1546
1577
|
// ]})
|
|
1547
1578
|
// -> All PlantUML validated in batch before any changes, rolled back on error
|
|
1548
|
-
// 3.
|
|
1579
|
+
// 3. confluence_create_draft({ spaceKey, title, bufferId })
|
|
1549
1580
|
// NOTE: Embedding PlantUML macros directly in content is NOT allowed - use plantuml parameter.
|
|
1550
1581
|
```
|
|
1551
1582
|
|
|
@@ -1650,7 +1681,7 @@ buffer_get_element({
|
|
|
1650
1681
|
// }
|
|
1651
1682
|
```
|
|
1652
1683
|
|
|
1653
|
-
**Tip**: When `
|
|
1684
|
+
**Tip**: When `confluence_create_draft` or `confluence_save_draft` fails with an XHTML error, the error response includes `suggestedActions` with a `buffer_get_element` call to inspect the problematic element.
|
|
1654
1685
|
|
|
1655
1686
|
---
|
|
1656
1687
|
|
|
@@ -2015,7 +2046,7 @@ buffer_transform({
|
|
|
2015
2046
|
2. buffer_transform(inputs, code) → bufferId with XHTML table
|
|
2016
2047
|
3. confluence_load(pageId) → page bufferId
|
|
2017
2048
|
4. buffer_edit(pageBufferId, after=ID, fromBufferId=tableBufferId)
|
|
2018
|
-
5.
|
|
2049
|
+
5. confluence_create_draft(pageId, pageBufferId) → draft for review
|
|
2019
2050
|
```
|
|
2020
2051
|
|
|
2021
2052
|
---
|
|
@@ -2146,7 +2177,7 @@ buffer_edit({
|
|
|
2146
2177
|
})
|
|
2147
2178
|
|
|
2148
2179
|
// 4. Create draft linked to original page
|
|
2149
|
-
|
|
2180
|
+
confluence_create_draft({ pageId: "123", bufferId: "buf_A" })
|
|
2150
2181
|
// -> Works! bufferId_A originated from pageId 123
|
|
2151
2182
|
```
|
|
2152
2183
|
|
|
@@ -2210,7 +2241,7 @@ buffer_get_structure({ bufferId: "buf_xxx" })
|
|
|
2210
2241
|
|
|
2211
2242
|
**Response includes**: `valid`, `errorCount`, `warningCount`, `errors`, `warnings`
|
|
2212
2243
|
|
|
2213
|
-
**Note**: XHTML validation is automatically applied before Confluence write operations (`
|
|
2244
|
+
**Note**: XHTML validation is automatically applied before Confluence write operations (`confluence_create_draft`, `confluence_save_draft`).
|
|
2214
2245
|
|
|
2215
2246
|
---
|
|
2216
2247
|
|
|
@@ -2233,18 +2264,18 @@ buffer_get_structure({ bufferId: "buf_xxx" })
|
|
|
2233
2264
|
| `jira_comment` | `jira_get_issue_comments` |
|
|
2234
2265
|
| `jira_project` | `jira_list_projects`, `jira_get_project` |
|
|
2235
2266
|
| `jira_board` | `jira_get_board` |
|
|
2236
|
-
| `jira_sprint` | `
|
|
2267
|
+
| `jira_sprint` | `jira_list_sprints` |
|
|
2237
2268
|
| `jira_worklog` | `jira_get_issue_worklogs` |
|
|
2238
2269
|
| `jira_worklog_total` | `jira_get_total_worklogs` |
|
|
2239
2270
|
| `tempo_worklog` | `tempo_get_worklogs`, `tempo_get_worklog`, `tempo_get_team_worklogs`, `tempo_get_epic_worklogs` |
|
|
2240
|
-
| `tempo_account` | `
|
|
2241
|
-
| `tempo_team` | `
|
|
2271
|
+
| `tempo_account` | `tempo_list_accounts`, `tempo_get_account` |
|
|
2272
|
+
| `tempo_team` | `tempo_list_teams`, `tempo_get_team` |
|
|
2242
2273
|
| `confluence_page` | `confluence_search_content` |
|
|
2243
2274
|
| `confluence_page_content` | `confluence_get_pages` |
|
|
2244
2275
|
| `confluence_space` | `confluence_list_spaces`, `confluence_get_space` |
|
|
2245
2276
|
| `confluence_comment` | `confluence_get_comments` |
|
|
2246
2277
|
| `confluence_attachment` | `confluence_list_attachments` |
|
|
2247
|
-
| `confluence_draft` | `
|
|
2278
|
+
| `confluence_draft` | `confluence_list_drafts` |
|
|
2248
2279
|
|
|
2249
2280
|
**Response includes**: `bufferId`, `schemaType`, `description`, `itemCount` (for arrays), `legend` (property definitions), `fields` (with type, required, optional, searchable, writable, jqlName, description, sample)
|
|
2250
2281
|
|
|
@@ -2334,7 +2365,7 @@ Utility tools for time calculations. Always available with any Jira, Confluence,
|
|
|
2334
2365
|
|
|
2335
2366
|
Utility tools for URL construction and parsing. Always available with any Jira, Confluence, or Tempo action.
|
|
2336
2367
|
|
|
2337
|
-
###
|
|
2368
|
+
### url_build
|
|
2338
2369
|
**Description**: Convert Jira issue keys, Confluence page IDs, or relative paths into full URLs
|
|
2339
2370
|
**Use Cases**: Generate clickable links for display, resolve relative Confluence paths
|
|
2340
2371
|
|
|
@@ -2356,14 +2387,14 @@ Utility tools for URL construction and parsing. Always available with any Jira,
|
|
|
2356
2387
|
|
|
2357
2388
|
**Examples**:
|
|
2358
2389
|
```typescript
|
|
2359
|
-
|
|
2360
|
-
|
|
2361
|
-
|
|
2390
|
+
url_build("PROJ-123") // → https://jira.example.com/browse/PROJ-123
|
|
2391
|
+
url_build("123456") // → https://confluence.example.com/pages/viewpage.action?pageId=123456
|
|
2392
|
+
url_build("/display/DOCS/Home") // → https://confluence.example.com/display/DOCS/Home
|
|
2362
2393
|
```
|
|
2363
2394
|
|
|
2364
2395
|
---
|
|
2365
2396
|
|
|
2366
|
-
###
|
|
2397
|
+
### url_parse
|
|
2367
2398
|
**Description**: Parse a Jira or Confluence URL to extract identifiers (pageId, issueKey, draftId, etc.)
|
|
2368
2399
|
**Use Cases**: Extract IDs from URLs users share, prepare input for other tools
|
|
2369
2400
|
|
|
@@ -2386,11 +2417,11 @@ fullurl("/display/DOCS/Home") // → https://confluence.example.com/display/DOCS
|
|
|
2386
2417
|
|
|
2387
2418
|
**Workflow**:
|
|
2388
2419
|
```
|
|
2389
|
-
1.
|
|
2420
|
+
1. url_parse(url) → extract identifier (check for warning)
|
|
2390
2421
|
2. Use extracted ID with appropriate tool (jira_get_issue, confluence_get_page, confluence_load, etc.)
|
|
2391
2422
|
```
|
|
2392
2423
|
|
|
2393
|
-
**Tip**: `confluence_load` can accept URLs directly and parses them internally, so you can often skip `
|
|
2424
|
+
**Tip**: `confluence_load` can accept URLs directly and parses them internally, so you can often skip `url_parse` for Confluence workflows.
|
|
2394
2425
|
|
|
2395
2426
|
---
|
|
2396
2427
|
|
|
@@ -2398,7 +2429,7 @@ fullurl("/display/DOCS/Home") // → https://confluence.example.com/display/DOCS
|
|
|
2398
2429
|
|
|
2399
2430
|
Unified help system for all Jicon workflows and syntax guides. Always available with any Jira, Confluence, or Tempo action.
|
|
2400
2431
|
|
|
2401
|
-
###
|
|
2432
|
+
### jicon_help
|
|
2402
2433
|
**Description**: Get Jicon MCP Server help - workflows and syntax guides
|
|
2403
2434
|
**Use Cases**: Learn workflows, understand tool sequences, get syntax references
|
|
2404
2435
|
|
|
@@ -2412,7 +2443,7 @@ Unified help system for all Jicon workflows and syntax guides. Always available
|
|
|
2412
2443
|
- Tempo workflows (log work, get worklogs)
|
|
2413
2444
|
- LLM-powered analysis tools (activity digest, comments, changelog, epic analysis)
|
|
2414
2445
|
- Buffer patterns for large responses and editing
|
|
2415
|
-
- Utility tools (
|
|
2446
|
+
- Utility tools (url_build, workload_convert)
|
|
2416
2447
|
- Decision tree for when to call each topic
|
|
2417
2448
|
|
|
2418
2449
|
**Available Topics**:
|
|
@@ -2428,15 +2459,15 @@ Unified help system for all Jicon workflows and syntax guides. Always available
|
|
|
2428
2459
|
|
|
2429
2460
|
**Examples**:
|
|
2430
2461
|
```typescript
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2462
|
+
jicon_help() // Get workflow overview and decision tree
|
|
2463
|
+
jicon_help(topic="jql") // JQL syntax guide
|
|
2464
|
+
jicon_help(topic="storage") // Basic Confluence formatting
|
|
2465
|
+
jicon_help(topic="plantuml") // PlantUML diagram syntax
|
|
2466
|
+
jicon_help(topic="buffers") // Buffer management guide
|
|
2467
|
+
jicon_help(topic="analysis") // LLM analysis tools guide
|
|
2437
2468
|
```
|
|
2438
2469
|
|
|
2439
|
-
**Tip**: Start with `
|
|
2470
|
+
**Tip**: Start with `jicon_help()` to understand the overall workflow. For AI analysis tasks (e.g., "What happened on project X?"), check `jicon_help(topic="analysis")`.
|
|
2440
2471
|
|
|
2441
2472
|
---
|
|
2442
2473
|
|
|
@@ -2496,7 +2527,7 @@ date_resolve(expression="this_month") // Current month to date
|
|
|
2496
2527
|
|
|
2497
2528
|
Unified user identity across all configured services.
|
|
2498
2529
|
|
|
2499
|
-
###
|
|
2530
|
+
### user_whoami
|
|
2500
2531
|
**Description**: Get the currently authenticated user identity from all configured services
|
|
2501
2532
|
**Use Cases**: Verify credentials, get user keys for JQL/Tempo queries (assignee, reporter)
|
|
2502
2533
|
|
|
@@ -2527,7 +2558,7 @@ Unified user identity across all configured services.
|
|
|
2527
2558
|
- Errors are collected in `errors` array if any service fails
|
|
2528
2559
|
- Available in all permission modes (readonly, full, custom)
|
|
2529
2560
|
|
|
2530
|
-
###
|
|
2561
|
+
### user_resolve
|
|
2531
2562
|
**Description**: Resolve a userkey or username to display name across Jira and Confluence
|
|
2532
2563
|
**Use Cases**: Look up display names for userkeys found in page content, worklogs, or issue fields
|
|
2533
2564
|
|
|
@@ -2566,7 +2597,7 @@ PlantUML validation and rendering via external server. Configure with `JICON_PLA
|
|
|
2566
2597
|
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml
|
|
2567
2598
|
!include https://raw.githubusercontent.com/awslabs/aws-icons-for-plantuml/main/dist/AWSCommon.puml
|
|
2568
2599
|
```
|
|
2569
|
-
Include expansion is enabled by default. Whitelisted URLs: `plantuml-stdlib/*`, `plantuml/*`, `awslabs/aws-icons-for-plantuml/*`. See `
|
|
2600
|
+
Include expansion is enabled by default. Whitelisted URLs: `plantuml-stdlib/*`, `plantuml/*`, `awslabs/aws-icons-for-plantuml/*`. See `jicon_help(topic="plantuml")` for examples.
|
|
2570
2601
|
|
|
2571
2602
|
### plantuml_validate
|
|
2572
2603
|
**Description**: Validate PlantUML diagram syntax using a real PlantUML server
|
|
@@ -2669,9 +2700,9 @@ All data-heavy tools (search, list, get) **always** return buffered responses wi
|
|
|
2669
2700
|
- `buffer_grep(bufferId, pattern)` - Search within buffered data
|
|
2670
2701
|
|
|
2671
2702
|
**Always-Buffered Tools:**
|
|
2672
|
-
- **Jira**: `jira_search_issues`, `jira_get_issue`, `jira_get_issues`, `jira_list_projects`, `jira_get_project`, `jira_get_board`, `
|
|
2673
|
-
- **Confluence**: `confluence_search_content`, `confluence_get_pages`, `confluence_list_spaces`, `confluence_get_space`, `confluence_get_comments`, `confluence_list_attachments`, `
|
|
2674
|
-
- **Tempo**: `tempo_get_worklogs`, `tempo_get_worklog`, `
|
|
2703
|
+
- **Jira**: `jira_search_issues`, `jira_get_issue`, `jira_get_issues`, `jira_list_projects`, `jira_get_project`, `jira_get_board`, `jira_list_sprints`, `jira_get_sprint_issues`, `jira_get_issue_comments`, `jira_get_issue_worklogs`, `jira_get_total_worklogs`
|
|
2704
|
+
- **Confluence**: `confluence_search_content`, `confluence_get_pages`, `confluence_list_spaces`, `confluence_get_space`, `confluence_get_comments`, `confluence_list_attachments`, `confluence_list_drafts`
|
|
2705
|
+
- **Tempo**: `tempo_get_worklogs`, `tempo_get_worklog`, `tempo_list_accounts`, `tempo_get_account`, `tempo_list_teams`, `tempo_get_team`, `tempo_get_team_worklogs`, `tempo_get_epic_worklogs`
|
|
2675
2706
|
|
|
2676
2707
|
**Buffer Management:**
|
|
2677
2708
|
- **TTL**: Buffers expire after 1 hour by default; edited buffers reset to 1 day TTL
|
|
@@ -2681,20 +2712,20 @@ All data-heavy tools (search, list, get) **always** return buffered responses wi
|
|
|
2681
2712
|
### Buffer Workflows
|
|
2682
2713
|
|
|
2683
2714
|
**Creating new Confluence pages (draft workflow):**
|
|
2684
|
-
1. `
|
|
2715
|
+
1. `confluence_create_draft` → creates server draft + buffer with `structure` (element IDs), returns clickable preview URL
|
|
2685
2716
|
2. User clicks URL to review draft in Confluence UI (can edit there)
|
|
2686
|
-
3. If changes needed: `
|
|
2717
|
+
3. If changes needed: `confluence_open_draft` → re-reads user's edits into buffer with updated structure
|
|
2687
2718
|
4. `buffer_edit(bufferId, after=ID, content/plantuml/fromBufferId)` → edit using element IDs
|
|
2688
|
-
5. `
|
|
2719
|
+
5. `confluence_save_draft` → checkpoint: deletes old draft, creates new with buffer content, returns new URL
|
|
2689
2720
|
6. Repeat steps 2-5 until user approves
|
|
2690
2721
|
7. User publishes via Confluence UI (click "Publish" button)
|
|
2691
2722
|
|
|
2692
2723
|
**Editing existing Confluence pages (draft workflow):**
|
|
2693
2724
|
1. `confluence_load(URL or pageId)` → page content is buffered, returns `bufferId`, `pageId`, `version`, and `structure`
|
|
2694
2725
|
2. `buffer_edit(bufferId, after=ID, content/plantuml/fromBufferId)` → edit using element IDs
|
|
2695
|
-
3. `
|
|
2726
|
+
3. `confluence_create_draft(pageId, bufferId)` → creates draft linked to original page for user review
|
|
2696
2727
|
4. User reviews draft at URL
|
|
2697
|
-
5. If changes needed: repeat via `
|
|
2728
|
+
5. If changes needed: repeat via `confluence_open_draft` → edit → `confluence_save_draft`
|
|
2698
2729
|
6. User publishes via Confluence UI (click "Publish" button)
|
|
2699
2730
|
|
|
2700
2731
|
**Buffer composition (when content created separately):**
|
|
@@ -2702,7 +2733,7 @@ If you created content in a separate buffer and need to insert it into a page:
|
|
|
2702
2733
|
1. `confluence_load(pageId)` → `bufferId_A` (page buffer with structure)
|
|
2703
2734
|
2. `buffer_create(content, contentType="xhtml")` → `bufferId_B` (new content)
|
|
2704
2735
|
3. `buffer_edit(bufferId=bufferId_A, after=5, fromBufferId=bufferId_B)` → merges B into A
|
|
2705
|
-
4. `
|
|
2736
|
+
4. `confluence_create_draft(pageId, bufferId=bufferId_A)` → works because bufferId_A originated from pageId
|
|
2706
2737
|
|
|
2707
2738
|
### Buffer Content Types
|
|
2708
2739
|
|
|
@@ -2727,7 +2758,7 @@ Tools enforce type-safe buffer access - each tool only accepts buffers of the ty
|
|
|
2727
2758
|
| Buffer Type | Tools That REQUIRE This Type |
|
|
2728
2759
|
|-------------|------------------------------|
|
|
2729
2760
|
| **json** | `buffer_transform`, `buffer_get_items` |
|
|
2730
|
-
| **xhtml** | `buffer_get_structure`, `buffer_get_element`, `buffer_validate_xhtml`, `
|
|
2761
|
+
| **xhtml** | `buffer_get_structure`, `buffer_get_element`, `buffer_validate_xhtml`, `confluence_create_draft` (with bufferId), `confluence_save_draft` |
|
|
2731
2762
|
| **any** | `buffer_grep`, `buffer_list`, `buffer_clear`, `buffer_edit` (string mode) |
|
|
2732
2763
|
|
|
2733
2764
|
**Error Messages**: When you use a tool with the wrong buffer type, you get a helpful error:
|
|
@@ -2767,7 +2798,7 @@ buffer_edit({ bufferId: accumulatorBufferId, after: lastRowId, fromBufferId: bat
|
|
|
2767
2798
|
|
|
2768
2799
|
// 4. Insert into page and create draft
|
|
2769
2800
|
buffer_edit({ bufferId: pageBufferId, after: ID, fromBufferId: accumulatorBufferId })
|
|
2770
|
-
|
|
2801
|
+
confluence_create_draft({ pageId, bufferId: pageBufferId }) // → draft for review
|
|
2771
2802
|
```
|
|
2772
2803
|
|
|
2773
2804
|
### XHTML Structure Editing
|
|
@@ -2879,7 +2910,7 @@ buffer_validate_xhtml({
|
|
|
2879
2910
|
- PlantUML syntax (requires PlantUML server - returns error if unavailable)
|
|
2880
2911
|
|
|
2881
2912
|
**Automatic Validation:**
|
|
2882
|
-
XHTML content is automatically validated before Confluence writes (`
|
|
2913
|
+
XHTML content is automatically validated before Confluence writes (`confluence_create_draft`, `confluence_save_draft`).
|
|
2883
2914
|
|
|
2884
2915
|
### JSON Transform Workflows
|
|
2885
2916
|
|
|
@@ -2926,7 +2957,7 @@ confluence_load("DOCS/Bug Report")
|
|
|
2926
2957
|
// → { bufferId: "buf_page", pageId: "123", structure: [...] }
|
|
2927
2958
|
|
|
2928
2959
|
buffer_edit({ bufferId: "buf_page", after: 5, fromBufferId: "buf_table" })
|
|
2929
|
-
|
|
2960
|
+
confluence_create_draft({ pageId: "123", bufferId: "buf_page" })
|
|
2930
2961
|
// → Draft for user review
|
|
2931
2962
|
```
|
|
2932
2963
|
|
|
@@ -2972,7 +3003,7 @@ buffer_transform({
|
|
|
2972
3003
|
|
|
2973
3004
|
### Buffer Lifecycle & Staleness Prevention
|
|
2974
3005
|
|
|
2975
|
-
**Automatic Invalidation**: When write operations succeed (`
|
|
3006
|
+
**Automatic Invalidation**: When write operations succeed (`confluence_save_draft`, `jira_update_issue`, `tempo_update_worklog`, etc.), any cached buffers for that resource are automatically invalidated.
|
|
2976
3007
|
|
|
2977
3008
|
**Version Conflict Handling**: If a write fails due to a version conflict (HTTP 409), the error includes actionable hints suggesting you re-fetch the resource.
|
|
2978
3009
|
|
|
@@ -2982,7 +3013,7 @@ buffer_transform({
|
|
|
2982
3013
|
|
|
2983
3014
|
Drafts allow iterative content development with user confirmation before publishing.
|
|
2984
3015
|
|
|
2985
|
-
**API Limitation:** Confluence Server/Data Center REST API does not support updating drafts. The `
|
|
3016
|
+
**API Limitation:** Confluence Server/Data Center REST API does not support updating drafts. The `confluence_save_draft` tool works around this by:
|
|
2986
3017
|
1. Deleting the existing draft
|
|
2987
3018
|
2. Creating a new draft with the updated content
|
|
2988
3019
|
3. Returning the new draft ID and URL
|