@crypto512/jicon-mcp 0.7.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/README.md +133 -381
  2. package/TOOL_LIST.md +810 -120
  3. package/dist/config/constants.d.ts +1 -0
  4. package/dist/config/constants.d.ts.map +1 -1
  5. package/dist/config/constants.js +1 -0
  6. package/dist/config/constants.js.map +1 -1
  7. package/dist/config/loader.d.ts +1 -0
  8. package/dist/config/loader.d.ts.map +1 -1
  9. package/dist/config/loader.js +27 -1
  10. package/dist/config/loader.js.map +1 -1
  11. package/dist/config/types.d.ts +8 -0
  12. package/dist/config/types.d.ts.map +1 -1
  13. package/dist/config/types.js +2 -0
  14. package/dist/config/types.js.map +1 -1
  15. package/dist/confluence/client.d.ts +38 -0
  16. package/dist/confluence/client.d.ts.map +1 -1
  17. package/dist/confluence/client.js +117 -0
  18. package/dist/confluence/client.js.map +1 -1
  19. package/dist/confluence/tools.d.ts +102 -75
  20. package/dist/confluence/tools.d.ts.map +1 -1
  21. package/dist/confluence/tools.js +510 -151
  22. package/dist/confluence/tools.js.map +1 -1
  23. package/dist/confluence/types.d.ts +55 -1
  24. package/dist/confluence/types.d.ts.map +1 -1
  25. package/dist/index.js +88 -2
  26. package/dist/index.js.map +1 -1
  27. package/dist/jira/tools.d.ts +0 -5
  28. package/dist/jira/tools.d.ts.map +1 -1
  29. package/dist/jira/tools.js +40 -87
  30. package/dist/jira/tools.js.map +1 -1
  31. package/dist/permissions/filter.d.ts +5 -0
  32. package/dist/permissions/filter.d.ts.map +1 -1
  33. package/dist/permissions/filter.js +29 -12
  34. package/dist/permissions/filter.js.map +1 -1
  35. package/dist/permissions/tool-registry.d.ts +23 -25
  36. package/dist/permissions/tool-registry.d.ts.map +1 -1
  37. package/dist/permissions/tool-registry.js +41 -45
  38. package/dist/permissions/tool-registry.js.map +1 -1
  39. package/dist/permissions/write-home-validator.d.ts +35 -0
  40. package/dist/permissions/write-home-validator.d.ts.map +1 -0
  41. package/dist/permissions/write-home-validator.js +140 -0
  42. package/dist/permissions/write-home-validator.js.map +1 -0
  43. package/dist/tempo/tools.d.ts.map +1 -1
  44. package/dist/tempo/tools.js +43 -44
  45. package/dist/tempo/tools.js.map +1 -1
  46. package/dist/utils/buffer-tools.d.ts +119 -1
  47. package/dist/utils/buffer-tools.d.ts.map +1 -1
  48. package/dist/utils/buffer-tools.js +610 -3
  49. package/dist/utils/buffer-tools.js.map +1 -1
  50. package/dist/utils/content-buffer.d.ts +46 -0
  51. package/dist/utils/content-buffer.d.ts.map +1 -1
  52. package/dist/utils/content-buffer.js +108 -12
  53. package/dist/utils/content-buffer.js.map +1 -1
  54. package/dist/utils/http-client.d.ts.map +1 -1
  55. package/dist/utils/http-client.js +4 -4
  56. package/dist/utils/http-client.js.map +1 -1
  57. package/dist/utils/jicon-help.d.ts +29 -0
  58. package/dist/utils/jicon-help.d.ts.map +1 -0
  59. package/dist/utils/jicon-help.js +873 -0
  60. package/dist/utils/jicon-help.js.map +1 -0
  61. package/dist/utils/plantuml/client.d.ts +40 -0
  62. package/dist/utils/plantuml/client.d.ts.map +1 -0
  63. package/dist/utils/plantuml/client.js +306 -0
  64. package/dist/utils/plantuml/client.js.map +1 -0
  65. package/dist/utils/plantuml/docker-manager.d.ts +35 -0
  66. package/dist/utils/plantuml/docker-manager.d.ts.map +1 -0
  67. package/dist/utils/plantuml/docker-manager.js +280 -0
  68. package/dist/utils/plantuml/docker-manager.js.map +1 -0
  69. package/dist/utils/plantuml/index.d.ts +11 -0
  70. package/dist/utils/plantuml/index.d.ts.map +1 -0
  71. package/dist/utils/plantuml/index.js +16 -0
  72. package/dist/utils/plantuml/index.js.map +1 -0
  73. package/dist/utils/plantuml/service.d.ts +46 -0
  74. package/dist/utils/plantuml/service.d.ts.map +1 -0
  75. package/dist/utils/plantuml/service.js +96 -0
  76. package/dist/utils/plantuml/service.js.map +1 -0
  77. package/dist/utils/plantuml/tools.d.ts +65 -0
  78. package/dist/utils/plantuml/tools.d.ts.map +1 -0
  79. package/dist/utils/plantuml/tools.js +272 -0
  80. package/dist/utils/plantuml/tools.js.map +1 -0
  81. package/dist/utils/plantuml/types.d.ts +130 -0
  82. package/dist/utils/plantuml/types.d.ts.map +1 -0
  83. package/dist/utils/plantuml/types.js +66 -0
  84. package/dist/utils/plantuml/types.js.map +1 -0
  85. package/dist/utils/response-formatter.d.ts +14 -0
  86. package/dist/utils/response-formatter.d.ts.map +1 -1
  87. package/dist/utils/response-formatter.js +84 -1
  88. package/dist/utils/response-formatter.js.map +1 -1
  89. package/dist/utils/url-tools.d.ts +49 -0
  90. package/dist/utils/url-tools.d.ts.map +1 -0
  91. package/dist/utils/url-tools.js +141 -0
  92. package/dist/utils/url-tools.js.map +1 -0
  93. package/dist/utils/xhtml/confluence-schema.d.ts +55 -0
  94. package/dist/utils/xhtml/confluence-schema.d.ts.map +1 -0
  95. package/dist/utils/xhtml/confluence-schema.js +215 -0
  96. package/dist/utils/xhtml/confluence-schema.js.map +1 -0
  97. package/dist/utils/xhtml/index.d.ts +17 -0
  98. package/dist/utils/xhtml/index.d.ts.map +1 -0
  99. package/dist/utils/xhtml/index.js +21 -0
  100. package/dist/utils/xhtml/index.js.map +1 -0
  101. package/dist/utils/xhtml/operations.d.ts +100 -0
  102. package/dist/utils/xhtml/operations.d.ts.map +1 -0
  103. package/dist/utils/xhtml/operations.js +596 -0
  104. package/dist/utils/xhtml/operations.js.map +1 -0
  105. package/dist/utils/xhtml/parser.d.ts +64 -0
  106. package/dist/utils/xhtml/parser.d.ts.map +1 -0
  107. package/dist/utils/xhtml/parser.js +180 -0
  108. package/dist/utils/xhtml/parser.js.map +1 -0
  109. package/dist/utils/xhtml/plantuml.d.ts +112 -0
  110. package/dist/utils/xhtml/plantuml.d.ts.map +1 -0
  111. package/dist/utils/xhtml/plantuml.js +251 -0
  112. package/dist/utils/xhtml/plantuml.js.map +1 -0
  113. package/dist/utils/xhtml/selector.d.ts +35 -0
  114. package/dist/utils/xhtml/selector.d.ts.map +1 -0
  115. package/dist/utils/xhtml/selector.js +358 -0
  116. package/dist/utils/xhtml/selector.js.map +1 -0
  117. package/dist/utils/xhtml/serializer.d.ts +26 -0
  118. package/dist/utils/xhtml/serializer.d.ts.map +1 -0
  119. package/dist/utils/xhtml/serializer.js +170 -0
  120. package/dist/utils/xhtml/serializer.js.map +1 -0
  121. package/dist/utils/xhtml/types.d.ts +134 -0
  122. package/dist/utils/xhtml/types.d.ts.map +1 -0
  123. package/dist/utils/xhtml/types.js +65 -0
  124. package/dist/utils/xhtml/types.js.map +1 -0
  125. package/dist/utils/xhtml/validator.d.ts +67 -0
  126. package/dist/utils/xhtml/validator.d.ts.map +1 -0
  127. package/dist/utils/xhtml/validator.js +300 -0
  128. package/dist/utils/xhtml/validator.js.map +1 -0
  129. package/package.json +5 -1
  130. package/CLAUDE.md +0 -947
  131. package/CONTRIBUTING.md +0 -371
  132. package/DEVELOPMENT.md +0 -400
  133. package/JIRA_API_ANALYSIS.md +0 -275
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  [![npm version](https://badge.fury.io/js/%40crypto512%2Fjicon-mcp.svg)](https://badge.fury.io/js/%40crypto512%2Fjicon-mcp)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
5
 
6
- > A comprehensive Model Context Protocol (MCP) server for seamless integration with Atlassian Jira and Confluence.
6
+ > Connect Claude to your Jira, Confluence, and Tempo. Search issues, create pages, log time - all through natural conversation.
7
7
 
8
8
  ## Quick Start
9
9
 
@@ -15,188 +15,115 @@ npx @crypto512/jicon-mcp
15
15
  npm install -g @crypto512/jicon-mcp
16
16
  ```
17
17
 
18
- ## What is Jicon?
18
+ ## What Can You Do?
19
19
 
20
- Jicon is an MCP server that enables AI assistants like Claude to interact with your Jira, Confluence, and Tempo instances. It provides 52 powerful tools for:
20
+ Once configured, just ask Claude in natural language:
21
21
 
22
- - 🎫 **Jira**: Issue management, searching, project operations, Agile boards, sprints
23
- - 📄 **Confluence**: Page management, content search, spaces, attachments, comments
24
- - ⏱️ **Tempo**: Time tracking, worklog management, accounts, and teams
25
- - 📦 **Buffer**: Content pagination for handling large responses
26
-
27
- ## Features at a Glance
28
-
29
- ### Jira (19 Tools)
30
- - Search issues with JQL
31
- - Create, update, and transition issues
32
- - Manage comments, links, and watchers
33
- - Access boards and sprints
34
- - View projects, issue types, and metadata
35
- - Track worklogs (individual and recursive totals)
36
-
37
- ### Confluence (14 Tools)
38
- - Search content with CQL
39
- - Create, update, and delete pages
40
- - Navigate page hierarchies
41
- - Manage attachments
42
- - Add and view comments
43
-
44
- ### Tempo (12 Tools)
45
- - Log and manage work time
46
- - View and update worklogs
47
- - Access accounts and teams
48
- - Retrieve team and epic worklogs
49
- - Get user time tracking info
50
-
51
- ### Buffer (5 Tools)
52
- - Retrieve content chunks from buffered responses
53
- - List active buffers and their metadata
54
- - Clear buffers to free memory
55
- - **Search buffered content with grep-like patterns**
56
- - **Edit buffered content with find/replace**
57
-
58
- ### Workload (2 Tools)
59
- - Convert time between units (seconds, hours, days)
60
- - Sum multiple workload values with mixed units
61
-
62
- ## Content Buffering
63
-
64
- Tools that return large content (Confluence pages, Jira issues, Tempo worklogs) use an in-memory buffering system for efficient content pagination.
22
+ ### Jira
23
+ - *"Find all high-priority bugs assigned to me"*
24
+ - *"Create a task for implementing user authentication"*
25
+ - *"Move PROJ-123 to Done and add a comment that it's deployed"*
26
+ - *"Show me the current sprint's progress"*
27
+ - *"Link PROJ-456 as blocking PROJ-789"*
65
28
 
66
- ### How It Works
29
+ ### Confluence
30
+ - *"Update the API documentation page with the new endpoints"*
31
+ - *"Create a meeting notes page in the Engineering space"*
32
+ - *"Find all pages about authentication in DOCS"*
33
+ - *"Add a PlantUML diagram to the architecture page"*
67
34
 
68
- 1. **Initial Call**: When you call a tool like `confluence_get_page`, it fetches the full content and stores it in a buffer
69
- 2. **Chunked Response**: The response includes a `bufferId`, the first chunk of content (default 5000 chars), and pagination info
70
- 3. **Retrieve More**: Use `buffer_get_chunk` with the `bufferId` to get subsequent chunks
35
+ ### Tempo
36
+ - *"Log 4 hours on PROJ-123 for today with description 'Code review'"*
37
+ - *"Show my worklogs for this week"*
38
+ - *"How much time did the team spend on the Epic last month?"*
71
39
 
72
- ### Response Format
40
+ ## Setup
73
41
 
74
- Buffered tools return:
75
- - `bufferId`: Unique identifier for retrieving more content
76
- - `content`: The current chunk of content
77
- - `offset`: Starting position of this chunk
78
- - `limit`: Maximum characters returned
79
- - `totalSize`: Total size of buffered content
80
- - `hasMore`: Whether more content is available
42
+ ### Claude Desktop
81
43
 
82
- ### Example Usage
44
+ Add to your `claude_desktop_config.json`:
83
45
 
84
- ```typescript
85
- // 1. Get a Confluence page (returns first 5000 chars)
86
- {
87
- "pageId": "123456"
88
- }
89
- // Response: { bufferId: "buf_xxx", content: "...", hasMore: true, totalSize: 15000 }
46
+ **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
47
+ **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
90
48
 
91
- // 2. Get next chunk
49
+ ```json
92
50
  {
93
- "bufferId": "buf_xxx",
94
- "offset": 5000,
95
- "limit": 5000
51
+ "mcpServers": {
52
+ "jicon": {
53
+ "command": "npx",
54
+ "args": ["-y", "@crypto512/jicon-mcp"],
55
+ "env": {
56
+ "JIRA_URL": "https://jira.example.com",
57
+ "JIRA_USERNAME": "your-email@example.com",
58
+ "JIRA_API_TOKEN": "your-api-token",
59
+ "CONFLUENCE_URL": "https://confluence.example.com",
60
+ "CONFLUENCE_USERNAME": "your-email@example.com",
61
+ "CONFLUENCE_API_TOKEN": "your-api-token"
62
+ }
63
+ }
64
+ }
96
65
  }
97
- // Response: { content: "...", hasMore: true }
98
-
99
- // 3. Continue until hasMore: false
100
66
  ```
101
67
 
102
- ### Buffered Tools
103
-
104
- - `confluence_get_page` - Returns page content with buffering
105
- - `confluence_get_page_by_title` - Returns page content with buffering
106
- - `jira_get_issue` - Returns issue data with buffering
107
- - `tempo_get_worklogs` - Returns worklog data with buffering
108
- - `tempo_get_team_worklogs` - Returns team worklog data with buffering
109
-
110
- ### Buffer Management
111
-
112
- - **TTL**: Buffers expire after 10 minutes
113
- - **List Buffers**: Use `buffer_list` to see active buffers
114
- - **Clear Buffers**: Use `buffer_clear` to free memory
68
+ ### Claude Code
115
69
 
116
- ### Searching Buffer Content
70
+ Add to `~/.claude/settings.json` or project `.mcp.json`:
117
71
 
118
- Use `buffer_grep` to search within buffered content with regex patterns:
119
-
120
- ```typescript
121
- // Search for "meeting" with 2 lines of context before and after
122
- {
123
- "bufferId": "buf_xxx",
124
- "pattern": "meeting",
125
- "-C": 2
126
- }
127
-
128
- // Case-insensitive search with 3 lines after each match
129
- {
130
- "bufferId": "buf_xxx",
131
- "pattern": "API",
132
- "-i": true,
133
- "-A": 3
134
- }
135
-
136
- // Count occurrences only
72
+ ```json
137
73
  {
138
- "bufferId": "buf_xxx",
139
- "pattern": "TODO",
140
- "output_mode": "count"
74
+ "mcpServers": {
75
+ "jicon": {
76
+ "command": "npx",
77
+ "args": ["-y", "@crypto512/jicon-mcp"],
78
+ "env": {
79
+ "JIRA_URL": "https://jira.example.com",
80
+ "JIRA_USERNAME": "your-email@example.com",
81
+ "JIRA_API_TOKEN": "your-api-token"
82
+ }
83
+ }
84
+ }
141
85
  }
142
86
  ```
143
87
 
144
- **Parameters:**
145
- - `pattern`: Regex pattern to search for
146
- - `-A`: Lines to show after each match
147
- - `-B`: Lines to show before each match
148
- - `-C`: Lines to show before AND after (overrides -A/-B)
149
- - `-i`: Case insensitive search
150
- - `-n`: Show line numbers (default: true)
151
- - `output_mode`: "content" (default) or "count"
152
- - `multiline`: Enable multiline mode where `.` matches newlines
153
- - `head_limit`: Limit to first N matches
154
- - `offset`: Skip first N matches
155
-
156
- ### Editing Buffer Content
88
+ ### OpenCode
157
89
 
158
- Use `buffer_edit` to perform find/replace on buffered content:
90
+ Add to `opencode.jsonc` in your project root or `~/.config/opencode/opencode.jsonc`:
159
91
 
160
- ```typescript
161
- // Replace single occurrence
92
+ ```jsonc
162
93
  {
163
- "bufferId": "buf_xxx",
164
- "old_string": "Meeting at 2pm",
165
- "new_string": "Meeting at 3pm"
166
- }
167
-
168
- // Replace all occurrences
169
- {
170
- "bufferId": "buf_xxx",
171
- "old_string": "TODO",
172
- "new_string": "DONE",
173
- "replace_all": true
94
+ "$schema": "https://opencode.ai/config.json",
95
+ "mcp": {
96
+ "jicon": {
97
+ "type": "local",
98
+ "command": ["npx", "-y", "@crypto512/jicon-mcp"],
99
+ "environment": {
100
+ "JIRA_URL": "https://jira.example.com",
101
+ "JIRA_USERNAME": "your-email@example.com",
102
+ "JIRA_API_TOKEN": "your-api-token"
103
+ }
104
+ }
105
+ }
174
106
  }
175
107
  ```
176
108
 
177
- **Important:** `buffer_edit` modifies content in memory only. To persist changes:
178
- - For Confluence: call `confluence_update_page` with the modified content
179
- - For Jira: call `jira_update_issue` with the modified fields
180
-
181
- **Workflow Example:**
182
- 1. `confluence_get_page` → get bufferId
183
- 2. `buffer_grep` → find text to replace
184
- 3. `buffer_edit` → replace text in memory
185
- 4. `buffer_get_chunk` → get full modified content
186
- 5. `confluence_update_page` → persist changes
187
-
188
109
  ## Configuration
189
110
 
190
- ### Configuration with `.jicon.json` (Recommended)
111
+ ### Environment Variables
191
112
 
192
- Jicon supports a flexible configuration hierarchy with permission control:
113
+ | Variable | Description |
114
+ |----------|-------------|
115
+ | `JIRA_URL` | Your Jira instance URL |
116
+ | `JIRA_USERNAME` | Your email (omit for Data Center PAT) |
117
+ | `JIRA_API_TOKEN` | API token or Personal Access Token |
118
+ | `CONFLUENCE_URL` | Your Confluence instance URL |
119
+ | `CONFLUENCE_USERNAME` | Your email (omit for Data Center PAT) |
120
+ | `CONFLUENCE_API_TOKEN` | API token or Personal Access Token |
193
121
 
194
- **Configuration Priority:**
195
- 1. `.jicon.json` (project root) - **Highest priority**
196
- 2. `$HOME/.config/jicon/jicon.json` (user config) - Medium priority
197
- 3. Environment variables - Lowest priority (legacy)
122
+ **Note:** Tempo uses the same Jira credentials - no separate configuration needed.
198
123
 
199
- **Create `.jicon.json` in your project root:**
124
+ ### Configuration File (Optional)
125
+
126
+ Create `.jicon.json` in your project root for project-specific settings:
200
127
 
201
128
  ```json
202
129
  {
@@ -209,281 +136,106 @@ Jicon supports a flexible configuration hierarchy with permission control:
209
136
  "url": "https://confluence.example.com",
210
137
  "username": "your-email@example.com",
211
138
  "token": "your-api-token"
212
- },
213
- "permissions": {
214
- "mode": "full"
215
139
  }
216
140
  }
217
141
  ```
218
142
 
219
- **⚠️ Important:** Add `.jicon.json` to your `.gitignore` to avoid committing credentials!
143
+ **Important:** Add `.jicon.json` to your `.gitignore`!
220
144
 
221
145
  ### Permission Modes
222
146
 
223
- Control which tools are allowed to execute:
147
+ Control what operations are allowed:
224
148
 
225
- #### 1. **Full Access** (default)
149
+ **Full Access** (default):
226
150
  ```json
227
151
  { "permissions": { "mode": "full" } }
228
152
  ```
229
- All 52 tools are available.
230
153
 
231
- #### 2. **Read-Only Mode**
154
+ **Read-Only** - safe for exploration:
232
155
  ```json
233
156
  { "permissions": { "mode": "readonly" } }
234
157
  ```
235
- Only read operations (36 read tools + auto-included dependencies: 14 Jira + 9 Confluence + 9 Tempo + 4 Buffer read tools, plus workload utilities).
236
-
237
- #### 3. **Custom Mode** with Virtual Actions
238
158
 
239
- Simplify configuration with **virtual actions** that group related tools:
240
-
241
- **Virtual Actions Available (9 total):**
242
- - `jira_read` - All 14 Jira read tools
243
- - `jira_write` - All 5 Jira write tools
244
- - `jira_all` - All 19 Jira tools
245
- - `confluence_read` - All 9 Confluence read tools
246
- - `confluence_write` - All 5 Confluence write tools
247
- - `confluence_all` - All 14 Confluence tools
248
- - `tempo_read` - All 9 Tempo read tools
249
- - `tempo_write` - All 3 Tempo write tools
250
- - `tempo_all` - All 12 Tempo tools
251
-
252
- **Auto-included Dependencies:**
253
- - Buffer tools (buffer_get_chunk, buffer_grep, etc.) are automatically included with any read/write action
254
- - Workload tools (workload_convert, workload_sum) are automatically included with any Jira/Confluence/Tempo tool
255
-
256
- **Example: Read-only access to all services**
159
+ **Custom** - fine-grained control:
257
160
  ```json
258
161
  {
259
162
  "permissions": {
260
163
  "mode": "custom",
261
- "whitelist": ["jira_read", "confluence_read", "tempo_read"]
164
+ "whitelist": ["jira_read", "confluence_read", "tempo_all"]
262
165
  }
263
166
  }
264
167
  ```
265
168
 
266
- **Example: Full Jira + Confluence read-only + Tempo time tracking**
267
- ```json
268
- {
269
- "permissions": {
270
- "mode": "custom",
271
- "whitelist": ["jira_all", "confluence_read", "tempo_all"]
272
- }
273
- }
274
- ```
169
+ Available virtual actions: `jira_read`, `jira_write`, `jira_all`, `confluence_read`, `confluence_write`, `confluence_all`, `tempo_read`, `tempo_write`, `tempo_all`
275
170
 
276
- **Example: Specific tools only**
277
- ```json
278
- {
279
- "permissions": {
280
- "mode": "custom",
281
- "whitelist": [
282
- "jira_search_issues",
283
- "jira_get_issue",
284
- "jira_create_issue",
285
- "confluence_get_page",
286
- "tempo_log_work",
287
- "tempo_get_worklogs"
288
- ]
289
- }
290
- }
291
- ```
171
+ ## Authentication
292
172
 
293
- **Example: Blacklist dangerous operations**
294
- ```json
295
- {
296
- "permissions": {
297
- "mode": "custom",
298
- "blacklist": ["confluence_delete_page"]
299
- }
300
- }
301
- ```
173
+ ### Atlassian Cloud
174
+
175
+ 1. Go to https://id.atlassian.com/manage-profile/security/api-tokens
176
+ 2. Create a new API token
177
+ 3. Use your email as `username` and the token as `token`
302
178
 
303
- See [`.jicon.json.example`](.jicon.json.example), [`.jicon.json.readonly`](.jicon.json.readonly), and [`.jicon.json.custom`](.jicon.json.custom) for more examples.
179
+ ### Jira/Confluence Data Center (8.14+)
304
180
 
305
- ### Environment Variables (Legacy)
181
+ 1. Go to your profile → Personal Access Tokens
182
+ 2. Create a new token
183
+ 3. Use only the `token` field (omit `username`)
184
+ 4. Optionally set `"authType": "bearer"`
306
185
 
307
- For Claude Desktop, add to config file:
186
+ ## Requirements
308
187
 
309
- **MacOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
188
+ - **Node.js 18+**
189
+ - **Jira** Server/Data Center or Cloud with API access
190
+ - **Confluence** (optional) Server/Data Center or Cloud
191
+ - **Tempo** (optional) Timesheets plugin
192
+ - **Docker** (optional) For PlantUML diagram validation
310
193
 
311
- ```json
312
- {
313
- "mcpServers": {
314
- "jicon": {
315
- "command": "npx",
316
- "args": ["-y", "@crypto512/jicon-mcp"],
317
- "env": {
318
- "JIRA_URL": "https://jira.example.com",
319
- "JIRA_USERNAME": "your-email@example.com",
320
- "JIRA_API_TOKEN": "your-api-token",
321
- "CONFLUENCE_URL": "https://confluence.example.com",
322
- "CONFLUENCE_USERNAME": "your-email@example.com",
323
- "CONFLUENCE_API_TOKEN": "your-api-token"
324
- }
325
- }
326
- }
327
- }
328
- ```
194
+ ## Features
329
195
 
330
- ## Example Usage
196
+ ### 63 Tools Across 3 Services
331
197
 
332
- Once configured, you can ask Claude to:
198
+ | Service | Capabilities |
199
+ |---------|--------------|
200
+ | **Jira** (18 tools) | Search, create, update, transition issues; manage comments, links, watchers; access boards, sprints, worklogs |
201
+ | **Confluence** (17 tools) | Search, create, edit pages via drafts; manage spaces, comments, attachments; PlantUML diagrams |
202
+ | **Tempo** (12 tools) | Log time, view/update worklogs, team tracking, accounts |
333
203
 
334
- - *"Find all high-priority bugs assigned to me in the PROJ project"*
335
- - *"Create a new task for implementing the login feature"*
336
- - *"Show me the current sprint's progress"*
337
- - *"Update the API documentation page in Confluence"*
338
- - *"Search for pages about authentication in the DOCS space"*
339
- - *"Log 4 hours of work on PROJ-123 for today"*
340
- - *"Show me my worklogs for this week"*
341
- - *"Get team worklogs for the development team"*
342
-
343
- ## Documentation
344
-
345
- - **[CLAUDE.md](CLAUDE.md)** - Complete functional specification
346
- - **[TOOL_LIST.md](TOOL_LIST.md)** - Comprehensive tool reference with examples
347
- - **[API Documentation](docs/api.md)** - Detailed API documentation (coming soon)
348
-
349
- ## Tool Categories
350
-
351
- ### Jira Tools
352
- | Category | Tools |
353
- |----------|-------|
354
- | **Help** | `jira_jql_help` |
355
- | **Search & Retrieval** | `jira_search_issues`, `jira_get_issue`, `jira_get_issue_comments` |
356
- | **Issue Management** | `jira_create_issue`, `jira_update_issue`, `jira_transition_issue` |
357
- | **Collaboration** | `jira_add_comment`, `jira_link_issues`, `jira_get_issue_watchers` |
358
- | **Projects** | `jira_list_projects`, `jira_get_project`, `jira_get_issue_types` |
359
- | **Agile** | `jira_get_board`, `jira_get_sprints`, `jira_get_sprint_issues` |
360
- | **Workflow** | `jira_get_transitions` |
361
- | **Time Tracking** | `jira_get_issue_worklogs`, `jira_get_total_worklogs` |
362
-
363
- ### Confluence Tools
364
- | Category | Tools |
365
- |----------|-------|
366
- | **Help** | `confluence_cql_help` |
367
- | **Search & Retrieval** | `confluence_search_content`, `confluence_get_page`, `confluence_get_page_by_title` |
368
- | **Page Management** | `confluence_create_page`, `confluence_update_page`, `confluence_delete_page` |
369
- | **Spaces** | `confluence_list_spaces`, `confluence_get_space` |
370
- | **Navigation** | `confluence_get_page_children` |
371
- | **Collaboration** | `confluence_add_comment`, `confluence_get_comments` |
372
- | **Attachments** | `confluence_upload_attachment`, `confluence_list_attachments` |
373
-
374
- ### Tempo Tools
375
- | Category | Tools |
376
- |----------|-------|
377
- | **Worklog Management** | `tempo_get_worklogs`, `tempo_get_worklog`, `tempo_log_work`, `tempo_update_worklog`, `tempo_delete_worklog` |
378
- | **Team Tracking** | `tempo_get_team_worklogs`, `tempo_get_teams`, `tempo_get_team` |
379
- | **Epic Tracking** | `tempo_get_epic_worklogs` |
380
- | **Accounts** | `tempo_get_accounts`, `tempo_get_account` |
381
- | **User Info** | `tempo_get_user_info` |
382
-
383
- ### Buffer Tools
384
- | Category | Tools |
385
- |----------|-------|
386
- | **Content Pagination** | `buffer_get_chunk`, `buffer_list`, `buffer_clear` |
387
- | **Content Search** | `buffer_grep` |
388
- | **Content Edit** | `buffer_edit` |
389
-
390
- ### Workload Tools
391
- | Category | Tools |
392
- |----------|-------|
393
- | **Time Conversion** | `workload_convert`, `workload_sum` |
204
+ Plus utility tools for content buffering, time calculations, URL generation, and built-in help.
394
205
 
395
- ## Requirements
206
+ ### Safe Confluence Editing
396
207
 
397
- - Node.js 18 or higher
398
- - Jira Server/Data Center or Jira Cloud instance
399
- - Confluence Server/Data Center or Confluence Cloud instance (optional)
400
- - Tempo Timesheets instance (optional)
401
- - Valid API tokens or Personal Access Tokens
208
+ Confluence changes go through a draft workflow - Claude creates drafts, you review and publish. No accidental overwrites.
402
209
 
403
- ## Authentication
210
+ ### PlantUML Diagrams
404
211
 
405
- ### Jira/Confluence Cloud
406
- Generate an API token from your Atlassian account:
407
- 1. Go to https://id.atlassian.com/manage-profile/security/api-tokens
408
- 2. Create a new API token
409
- 3. Use your email as username and the token as password
410
-
411
- ### Jira/Confluence Data Center
412
- Generate a Personal Access Token (PAT):
413
- 1. Go to your profile settings
414
- 2. Navigate to "Personal Access Tokens"
415
- 3. Create a new token with required permissions
416
-
417
- ## Security Best Practices
418
-
419
- - ✅ Store credentials in environment variables
420
- - ✅ Use API tokens with minimal required permissions
421
- - ✅ Regularly rotate API tokens
422
- - ✅ Never commit credentials to version control
423
- - ✅ Use read-only tokens for search/read operations
424
-
425
- ## Development Status
426
-
427
- - ✅ **Specification Complete** - Functional spec and tool list defined
428
- - ✅ **Implementation Complete** - All 52 tools implemented
429
- - ✅ **Testing** - 157 tests passing
430
- - ✅ **Configuration System** - Flexible .jicon.json with permissions
431
- - ✅ **Content Buffering** - In-memory pagination for large responses
432
- - 📦 **Publishing** - Ready for npm publish
433
-
434
- ## Roadmap
435
-
436
- ### Phase 1: Core Implementation ✅ **COMPLETED**
437
- - ✅ Project setup and structure
438
- - ✅ Jira API client implementation (19 tools)
439
- - ✅ Confluence API client implementation (14 tools)
440
- - ✅ Tempo API client implementation (12 tools)
441
- - ✅ Workload utility tools implementation (2 tools)
442
- - ✅ Buffer tools implementation (5 tools)
443
- - ✅ MCP server implementation
444
- - ✅ Basic testing (157 tests, 100% pass rate)
445
- - ✅ Configuration system (.jicon.json with hierarchy)
446
- - ✅ Permission system (full, readonly, custom modes)
447
- - ✅ Virtual actions (jira_read, jira_all, confluence_read, tempo_all, etc.)
448
- - ✅ Content buffering with pagination support
449
- - ✅ Development and contributing guides
450
-
451
- ### Phase 2: Enhancement (In Progress)
452
- - ✅ Advanced error handling (implemented)
453
- - [ ] Rate limiting and caching
454
- - [ ] Integration tests with mock servers
455
- - ✅ Documentation examples (DEVELOPMENT.md added)
456
- - [ ] CI/CD pipeline
457
- - [ ] npm package publishing
458
-
459
- ### Phase 3: Advanced Features (Planned)
460
- - [ ] Bulk operations
461
- - [ ] Custom field templates
462
- - [ ] Webhook support
463
- - [ ] Multi-instance support
464
- - [ ] CLI tool for configuration testing
465
- - [ ] Performance optimizations
466
-
467
- ## Contributing
468
-
469
- Contributions are welcome! Please read our [Contributing Guide](CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests.
212
+ Create and validate UML diagrams directly in Confluence pages. Requires Docker for full syntax validation.
213
+
214
+ ## Tool Reference
215
+
216
+ For complete tool documentation with parameters and examples, see **[TOOL_LIST.md](TOOL_LIST.md)**.
217
+
218
+ ## Security
219
+
220
+ - Store credentials in environment variables, not in code
221
+ - Use API tokens with minimal required permissions
222
+ - Rotate tokens regularly
223
+ - Use read-only mode for exploration
224
+ - Never commit `.jicon.json` to version control
470
225
 
471
226
  ## License
472
227
 
473
- MIT License - see [LICENSE](LICENSE) file for details.
228
+ MIT License - see [LICENSE](LICENSE) for details.
474
229
 
475
230
  ## Support
476
231
 
477
- - 🐛 **Issues**: [GitHub Issues](https://github.com/crypto512/jicon/issues)
478
- - 💬 **Discussions**: [GitHub Discussions](https://github.com/crypto512/jicon/discussions)
479
- - 📖 **Documentation**: [GitHub Repository](https://github.com/crypto512/jicon)
232
+ - [GitHub Issues](https://github.com/crypto512/jicon/issues)
233
+ - [GitHub Discussions](https://github.com/crypto512/jicon/discussions)
480
234
 
481
235
  ## Acknowledgments
482
236
 
483
- - Built on [Model Context Protocol](https://modelcontextprotocol.io) by Anthropic
484
- - Powered by Atlassian APIs
485
- - Inspired by the community's need for better Jira/Confluence integration
237
+ Built on [Model Context Protocol](https://modelcontextprotocol.io) by Anthropic.
486
238
 
487
239
  ---
488
240
 
489
- **Made with ❤️ for developers who work with Jira, Confluence, and Tempo**
241
+ **Made with care for teams using Jira, Confluence, and Tempo**