@crypto512/jicon-mcp 2.3.26 → 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.
Files changed (93) hide show
  1. package/README.md +4 -0
  2. package/TOOL_LIST.md +146 -92
  3. package/dist/config/types.d.ts +65 -214
  4. package/dist/config/types.d.ts.map +1 -1
  5. package/dist/config/types.js +3 -3
  6. package/dist/config/types.js.map +1 -1
  7. package/dist/confluence/tools.d.ts +52 -165
  8. package/dist/confluence/tools.d.ts.map +1 -1
  9. package/dist/confluence/tools.js +70 -58
  10. package/dist/confluence/tools.js.map +1 -1
  11. package/dist/index.js +16 -10
  12. package/dist/index.js.map +1 -1
  13. package/dist/jira/activity-tools.d.ts +19 -95
  14. package/dist/jira/activity-tools.d.ts.map +1 -1
  15. package/dist/jira/activity-tools.js +13 -13
  16. package/dist/jira/activity-tools.js.map +1 -1
  17. package/dist/jira/tools.d.ts +64 -216
  18. package/dist/jira/tools.d.ts.map +1 -1
  19. package/dist/jira/tools.js +65 -37
  20. package/dist/jira/tools.js.map +1 -1
  21. package/dist/permissions/filter.js +6 -6
  22. package/dist/permissions/filter.js.map +1 -1
  23. package/dist/permissions/tool-registry.d.ts +24 -24
  24. package/dist/permissions/tool-registry.d.ts.map +1 -1
  25. package/dist/permissions/tool-registry.js +26 -25
  26. package/dist/permissions/tool-registry.js.map +1 -1
  27. package/dist/permissions/write-home-validator.js +7 -7
  28. package/dist/session/manager.d.ts.map +1 -1
  29. package/dist/session/manager.js +7 -2
  30. package/dist/session/manager.js.map +1 -1
  31. package/dist/tempo/tools.d.ts +24 -103
  32. package/dist/tempo/tools.d.ts.map +1 -1
  33. package/dist/tempo/tools.js +24 -21
  34. package/dist/tempo/tools.js.map +1 -1
  35. package/dist/transport/http.d.ts +4 -4
  36. package/dist/transport/http.d.ts.map +1 -1
  37. package/dist/transport/index.d.ts +2 -2
  38. package/dist/transport/index.js +2 -2
  39. package/dist/utils/buffer-tools.d.ts +24 -178
  40. package/dist/utils/buffer-tools.d.ts.map +1 -1
  41. package/dist/utils/buffer-tools.js +13 -13
  42. package/dist/utils/buffer-tools.js.map +1 -1
  43. package/dist/utils/date-tools.d.ts +8 -7
  44. package/dist/utils/date-tools.d.ts.map +1 -1
  45. package/dist/utils/date-tools.js +14 -0
  46. package/dist/utils/date-tools.js.map +1 -1
  47. package/dist/utils/http-client.js +1 -1
  48. package/dist/utils/http-client.js.map +1 -1
  49. package/dist/utils/jicon-help.d.ts +12 -9
  50. package/dist/utils/jicon-help.d.ts.map +1 -1
  51. package/dist/utils/jicon-help.js +53 -53
  52. package/dist/utils/jicon-help.js.map +1 -1
  53. package/dist/utils/mcp-schema.d.ts +19 -0
  54. package/dist/utils/mcp-schema.d.ts.map +1 -0
  55. package/dist/utils/mcp-schema.js +19 -0
  56. package/dist/utils/mcp-schema.js.map +1 -0
  57. package/dist/utils/plantuml/tools.d.ts +9 -20
  58. package/dist/utils/plantuml/tools.d.ts.map +1 -1
  59. package/dist/utils/plantuml/tools.js +4 -4
  60. package/dist/utils/plantuml/tools.js.map +1 -1
  61. package/dist/utils/plantuml/types.d.ts +21 -21
  62. package/dist/utils/plantuml/types.d.ts.map +1 -1
  63. package/dist/utils/response-formatter.js +1 -1
  64. package/dist/utils/response-formatter.js.map +1 -1
  65. package/dist/utils/sandbox/schema.d.ts +3 -29
  66. package/dist/utils/sandbox/schema.d.ts.map +1 -1
  67. package/dist/utils/sandbox/schema.js +1 -1
  68. package/dist/utils/sandbox/schema.js.map +1 -1
  69. package/dist/utils/schemas/jira.d.ts +2 -2
  70. package/dist/utils/schemas/jira.js +2 -2
  71. package/dist/utils/schemas/tempo.d.ts +4 -4
  72. package/dist/utils/schemas/tempo.js +4 -4
  73. package/dist/utils/url-tools.d.ts +5 -13
  74. package/dist/utils/url-tools.d.ts.map +1 -1
  75. package/dist/utils/url-tools.js +11 -11
  76. package/dist/utils/url-tools.js.map +1 -1
  77. package/dist/utils/user-resolver.d.ts +30 -12
  78. package/dist/utils/user-resolver.d.ts.map +1 -1
  79. package/dist/utils/user-resolver.js +65 -25
  80. package/dist/utils/user-resolver.js.map +1 -1
  81. package/dist/utils/whoami-tools.d.ts +17 -2
  82. package/dist/utils/whoami-tools.d.ts.map +1 -1
  83. package/dist/utils/whoami-tools.js +35 -3
  84. package/dist/utils/whoami-tools.js.map +1 -1
  85. package/dist/utils/workload-tools.d.ts +13 -31
  86. package/dist/utils/workload-tools.d.ts.map +1 -1
  87. package/dist/utils/xhtml/plantuml.js +2 -2
  88. package/dist/utils/xhtml/plantuml.js.map +1 -1
  89. package/dist/utils/xhtml/types.d.ts +45 -35
  90. package/dist/utils/xhtml/types.d.ts.map +1 -1
  91. package/dist/utils/xhtml/types.js +1 -1
  92. package/dist/utils/xhtml/types.js.map +1 -1
  93. 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
- - `confluence_review_publish` - Auto-retries on 409 (refetches page version)
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. confluence_draft_create(pageId, pageBufferId, autoRetry=true) → draft URL
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. confluence_draft_create(pageId, bufferId) → draft for review
136
- 5. confluence_review_publish(reviewDraftId, autoRetry=true) → published
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. `jira_get_issue_types()` - Discover actual type names
169
- 2. `jira_get_fields(search="epic")` - Discover field names and IDs
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
- ### jira_get_issue_types
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
- ### jira_get_fields
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 `jira_get_fields(search="epic")` — matches name, id, clauseNames, AND schemaType
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
- | maxResults | number | ✗ | Maximum results (default: 20) |
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
- ### jira_get_sprints
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
- | maxActivities | number | ✗ | Maximum activities to return (default: 50) |
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
- | maxComments | number | ✗ | Maximum comments to return (default: all) |
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
- | maxChanges | number | ✗ | Maximum changes to return (default: 50) |
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
- | maxComments | number | ✗ | Max comments per issue (default: 5) |
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 `jira_get_sprints`) |
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 `jira_get_sprints(boardId)` first. BoardId can be found in Jira URLs like `/secure/RapidBoard.jspa?rapidView=123`.
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 `help(topic="cql")` for valid fields and examples.
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 `confluence_draft_create(pageId, bufferId)` for user review.
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 `confluence_draft_create(pageId, bufferId)` for user review.
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")` → `confluence_draft_create(spaceKey, title, bufferId)`
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. confluence_draft_create(pageId=..., bufferId=...) → draft for review (links to original page)
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)` → `confluence_draft_create(pageId, bufferId)` → user publishes
880
- > - **Create new**: `buffer_create(content, contentType="xhtml")` → `buffer_validate_xhtml(bufferId)` → `confluence_draft_create(spaceKey, title, bufferId)` → user publishes
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 `help(topic="storage")` for HTML vs XHTML differences
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 `confluence_draft_create(spaceKey=...)` or `confluence_search_content(cql="space=...")`
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
- ### confluence_draft_list
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
- ### confluence_draft_open
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 `confluence_draft_save` to checkpoint.
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
- ### confluence_draft_create
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 `confluence_draft_open` instead.
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. confluence_draft_create(spaceKey, title, bufferId)
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. confluence_draft_create(pageId=..., bufferId=...)
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 `help(topic="storage")` for XHTML syntax (HTML vs XHTML differences).
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
- ### confluence_draft_save
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
- ### confluence_draft_delete
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
- ### confluence_review_list
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 `confluence_draft_create` with a `pageId` parameter to edit an existing page. They are linked to the original page via a label.
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
- ### confluence_review_publish
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
- ### confluence_review_discard
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 `jira_get_issue_types()` and `jira_get_fields(search="epic")` to discover actual names for your Jira instance. Functions like `currentUser()`, `openSprints()`, `startOfDay()` work in all languages.
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. `jira_get_sprints` - Find active sprint
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. `confluence_draft_create` - Create draft for user review
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. `confluence_draft_create` - Create draft + buffer with `structure` (element IDs), get preview URL
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. `confluence_draft_save` - Checkpoint changes, get new URL
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
- ### tempo_get_accounts
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
- ### tempo_get_teams
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 `help(topic="storage")` for XHTML syntax. Call `help(topic="plantuml")` for diagram syntax.
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. confluence_draft_create({ spaceKey, title, bufferId }) -> user reviews at URL
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. confluence_draft_create({ spaceKey, title, bufferId })
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 `confluence_draft_create` or `confluence_draft_save` fails with an XHTML error, the error response includes `suggestedActions` with a `buffer_get_element` call to inspect the problematic element.
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. confluence_draft_create(pageId, pageBufferId) → draft for review
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
- confluence_draft_create({ pageId: "123", bufferId: "buf_A" })
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 (`confluence_draft_create`, `confluence_draft_save`).
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` | `jira_get_sprints` |
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` | `tempo_get_accounts`, `tempo_get_account` |
2241
- | `tempo_team` | `tempo_get_teams`, `tempo_get_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` | `confluence_draft_list` |
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
- ### fullurl
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
- fullurl("PROJ-123") // → https://jira.example.com/browse/PROJ-123
2360
- fullurl("123456") // → https://confluence.example.com/pages/viewpage.action?pageId=123456
2361
- fullurl("/display/DOCS/Home") // → https://confluence.example.com/display/DOCS/Home
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
- ### parseurl
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. parseurl(url) → extract identifier (check for warning)
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 `parseurl` for Confluence workflows.
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
- ### help
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 (fullurl, workload_convert)
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
- help() // Get workflow overview and decision tree
2432
- help(topic="jql") // JQL syntax guide
2433
- help(topic="storage") // Basic Confluence formatting
2434
- help(topic="plantuml") // PlantUML diagram syntax
2435
- help(topic="buffers") // Buffer management guide
2436
- help(topic="analysis") // LLM analysis tools guide
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 `help()` to understand the overall workflow. For AI analysis tasks (e.g., "What happened on project X?"), check `help(topic="analysis")`.
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
 
@@ -2492,11 +2523,11 @@ date_resolve(expression="this_month") // Current month to date
2492
2523
 
2493
2524
  ---
2494
2525
 
2495
- ## Whoami Tools (1)
2526
+ ## Whoami Tools (2)
2496
2527
 
2497
2528
  Unified user identity across all configured services.
2498
2529
 
2499
- ### whoami
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,6 +2558,29 @@ 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
 
2561
+ ### user_resolve
2562
+ **Description**: Resolve a userkey or username to display name across Jira and Confluence
2563
+ **Use Cases**: Look up display names for userkeys found in page content, worklogs, or issue fields
2564
+
2565
+ | Parameter | Type | Required | Description |
2566
+ |-----------|------|----------|-------------|
2567
+ | userKey | string | Yes | Username or userkey to resolve |
2568
+ | source | string | No | `"jira"` or `"confluence"` (auto-detect if omitted) |
2569
+
2570
+ **Returns**:
2571
+ ```json
2572
+ {
2573
+ "username": "john.doe",
2574
+ "displayName": "John Doe"
2575
+ }
2576
+ ```
2577
+
2578
+ **Notes**:
2579
+ - Use `"confluence"` source for Confluence hex userkeys (e.g., `ff8080816ea2c5b3...`)
2580
+ - Use `"jira"` source for Jira usernames or JIRAUSER keys
2581
+ - Results are cached per session — safe to call repeatedly
2582
+ - Available in all permission modes (readonly, full, custom)
2583
+
2530
2584
  ---
2531
2585
 
2532
2586
  ## PlantUML Tools (3)
@@ -2543,7 +2597,7 @@ PlantUML validation and rendering via external server. Configure with `JICON_PLA
2543
2597
  !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml
2544
2598
  !include https://raw.githubusercontent.com/awslabs/aws-icons-for-plantuml/main/dist/AWSCommon.puml
2545
2599
  ```
2546
- Include expansion is enabled by default. Whitelisted URLs: `plantuml-stdlib/*`, `plantuml/*`, `awslabs/aws-icons-for-plantuml/*`. See `help(topic="plantuml")` for examples.
2600
+ Include expansion is enabled by default. Whitelisted URLs: `plantuml-stdlib/*`, `plantuml/*`, `awslabs/aws-icons-for-plantuml/*`. See `jicon_help(topic="plantuml")` for examples.
2547
2601
 
2548
2602
  ### plantuml_validate
2549
2603
  **Description**: Validate PlantUML diagram syntax using a real PlantUML server
@@ -2646,9 +2700,9 @@ All data-heavy tools (search, list, get) **always** return buffered responses wi
2646
2700
  - `buffer_grep(bufferId, pattern)` - Search within buffered data
2647
2701
 
2648
2702
  **Always-Buffered Tools:**
2649
- - **Jira**: `jira_search_issues`, `jira_get_issue`, `jira_get_issues`, `jira_list_projects`, `jira_get_project`, `jira_get_board`, `jira_get_sprints`, `jira_get_sprint_issues`, `jira_get_issue_comments`, `jira_get_issue_worklogs`, `jira_get_total_worklogs`
2650
- - **Confluence**: `confluence_search_content`, `confluence_get_pages`, `confluence_list_spaces`, `confluence_get_space`, `confluence_get_comments`, `confluence_list_attachments`, `confluence_draft_list`
2651
- - **Tempo**: `tempo_get_worklogs`, `tempo_get_worklog`, `tempo_get_accounts`, `tempo_get_account`, `tempo_get_teams`, `tempo_get_team`, `tempo_get_team_worklogs`, `tempo_get_epic_worklogs`
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`
2652
2706
 
2653
2707
  **Buffer Management:**
2654
2708
  - **TTL**: Buffers expire after 1 hour by default; edited buffers reset to 1 day TTL
@@ -2658,20 +2712,20 @@ All data-heavy tools (search, list, get) **always** return buffered responses wi
2658
2712
  ### Buffer Workflows
2659
2713
 
2660
2714
  **Creating new Confluence pages (draft workflow):**
2661
- 1. `confluence_draft_create` → creates server draft + buffer with `structure` (element IDs), returns clickable preview URL
2715
+ 1. `confluence_create_draft` → creates server draft + buffer with `structure` (element IDs), returns clickable preview URL
2662
2716
  2. User clicks URL to review draft in Confluence UI (can edit there)
2663
- 3. If changes needed: `confluence_draft_open` → re-reads user's edits into buffer with updated structure
2717
+ 3. If changes needed: `confluence_open_draft` → re-reads user's edits into buffer with updated structure
2664
2718
  4. `buffer_edit(bufferId, after=ID, content/plantuml/fromBufferId)` → edit using element IDs
2665
- 5. `confluence_draft_save` → checkpoint: deletes old draft, creates new with buffer content, returns new URL
2719
+ 5. `confluence_save_draft` → checkpoint: deletes old draft, creates new with buffer content, returns new URL
2666
2720
  6. Repeat steps 2-5 until user approves
2667
2721
  7. User publishes via Confluence UI (click "Publish" button)
2668
2722
 
2669
2723
  **Editing existing Confluence pages (draft workflow):**
2670
2724
  1. `confluence_load(URL or pageId)` → page content is buffered, returns `bufferId`, `pageId`, `version`, and `structure`
2671
2725
  2. `buffer_edit(bufferId, after=ID, content/plantuml/fromBufferId)` → edit using element IDs
2672
- 3. `confluence_draft_create(pageId, bufferId)` → creates draft linked to original page for user review
2726
+ 3. `confluence_create_draft(pageId, bufferId)` → creates draft linked to original page for user review
2673
2727
  4. User reviews draft at URL
2674
- 5. If changes needed: repeat via `confluence_draft_open` → edit → `confluence_draft_save`
2728
+ 5. If changes needed: repeat via `confluence_open_draft` → edit → `confluence_save_draft`
2675
2729
  6. User publishes via Confluence UI (click "Publish" button)
2676
2730
 
2677
2731
  **Buffer composition (when content created separately):**
@@ -2679,7 +2733,7 @@ If you created content in a separate buffer and need to insert it into a page:
2679
2733
  1. `confluence_load(pageId)` → `bufferId_A` (page buffer with structure)
2680
2734
  2. `buffer_create(content, contentType="xhtml")` → `bufferId_B` (new content)
2681
2735
  3. `buffer_edit(bufferId=bufferId_A, after=5, fromBufferId=bufferId_B)` → merges B into A
2682
- 4. `confluence_draft_create(pageId, bufferId=bufferId_A)` → works because bufferId_A originated from pageId
2736
+ 4. `confluence_create_draft(pageId, bufferId=bufferId_A)` → works because bufferId_A originated from pageId
2683
2737
 
2684
2738
  ### Buffer Content Types
2685
2739
 
@@ -2704,7 +2758,7 @@ Tools enforce type-safe buffer access - each tool only accepts buffers of the ty
2704
2758
  | Buffer Type | Tools That REQUIRE This Type |
2705
2759
  |-------------|------------------------------|
2706
2760
  | **json** | `buffer_transform`, `buffer_get_items` |
2707
- | **xhtml** | `buffer_get_structure`, `buffer_get_element`, `buffer_validate_xhtml`, `confluence_draft_create` (with bufferId), `confluence_draft_save` |
2761
+ | **xhtml** | `buffer_get_structure`, `buffer_get_element`, `buffer_validate_xhtml`, `confluence_create_draft` (with bufferId), `confluence_save_draft` |
2708
2762
  | **any** | `buffer_grep`, `buffer_list`, `buffer_clear`, `buffer_edit` (string mode) |
2709
2763
 
2710
2764
  **Error Messages**: When you use a tool with the wrong buffer type, you get a helpful error:
@@ -2744,7 +2798,7 @@ buffer_edit({ bufferId: accumulatorBufferId, after: lastRowId, fromBufferId: bat
2744
2798
 
2745
2799
  // 4. Insert into page and create draft
2746
2800
  buffer_edit({ bufferId: pageBufferId, after: ID, fromBufferId: accumulatorBufferId })
2747
- confluence_draft_create({ pageId, bufferId: pageBufferId }) // → draft for review
2801
+ confluence_create_draft({ pageId, bufferId: pageBufferId }) // → draft for review
2748
2802
  ```
2749
2803
 
2750
2804
  ### XHTML Structure Editing
@@ -2856,7 +2910,7 @@ buffer_validate_xhtml({
2856
2910
  - PlantUML syntax (requires PlantUML server - returns error if unavailable)
2857
2911
 
2858
2912
  **Automatic Validation:**
2859
- XHTML content is automatically validated before Confluence writes (`confluence_draft_create`, `confluence_draft_save`).
2913
+ XHTML content is automatically validated before Confluence writes (`confluence_create_draft`, `confluence_save_draft`).
2860
2914
 
2861
2915
  ### JSON Transform Workflows
2862
2916
 
@@ -2903,7 +2957,7 @@ confluence_load("DOCS/Bug Report")
2903
2957
  // → { bufferId: "buf_page", pageId: "123", structure: [...] }
2904
2958
 
2905
2959
  buffer_edit({ bufferId: "buf_page", after: 5, fromBufferId: "buf_table" })
2906
- confluence_draft_create({ pageId: "123", bufferId: "buf_page" })
2960
+ confluence_create_draft({ pageId: "123", bufferId: "buf_page" })
2907
2961
  // → Draft for user review
2908
2962
  ```
2909
2963
 
@@ -2949,7 +3003,7 @@ buffer_transform({
2949
3003
 
2950
3004
  ### Buffer Lifecycle & Staleness Prevention
2951
3005
 
2952
- **Automatic Invalidation**: When write operations succeed (`confluence_draft_save`, `jira_update_issue`, `tempo_update_worklog`, etc.), any cached buffers for that resource are automatically invalidated.
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.
2953
3007
 
2954
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.
2955
3009
 
@@ -2959,7 +3013,7 @@ buffer_transform({
2959
3013
 
2960
3014
  Drafts allow iterative content development with user confirmation before publishing.
2961
3015
 
2962
- **API Limitation:** Confluence Server/Data Center REST API does not support updating drafts. The `confluence_draft_save` tool works around this by:
3016
+ **API Limitation:** Confluence Server/Data Center REST API does not support updating drafts. The `confluence_save_draft` tool works around this by:
2963
3017
  1. Deleting the existing draft
2964
3018
  2. Creating a new draft with the updated content
2965
3019
  3. Returning the new draft ID and URL