@crypto512/jicon-mcp 1.0.0 → 1.0.2

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.
@@ -0,0 +1,17 @@
1
+ {
2
+ "jira": {
3
+ "url": "https://jira.example.com",
4
+ "username": "your-email@example.com",
5
+ "token": "your-jira-api-token"
6
+ },
7
+ "confluence": {
8
+ "url": "https://confluence.example.com",
9
+ "username": "your-email@example.com",
10
+ "token": "your-confluence-api-token"
11
+ },
12
+ "permissions": {
13
+ "mode": "custom",
14
+ "whitelist": ["jira_read", "confluence_write", "tempo_read"],
15
+ "confluenceWriteHome": true
16
+ }
17
+ }
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
- > Connect Claude to your Jira, Confluence, and Tempo. Search issues, create pages, log time - all through natural conversation.
6
+ > Connect your AI assistant to Jira, Confluence, and Tempo. Search issues, create pages, log time - all through natural conversation.
7
7
 
8
8
  ## Quick Start
9
9
 
@@ -17,7 +17,7 @@ npm install -g @crypto512/jicon-mcp
17
17
 
18
18
  ## What Can You Do?
19
19
 
20
- Once configured, just ask Claude in natural language:
20
+ Once configured, just ask in natural language:
21
21
 
22
22
  ### Jira
23
23
  - *"Find all high-priority bugs assigned to me"*
@@ -144,16 +144,16 @@ Create `.jicon.json` in your project root for project-specific settings:
144
144
 
145
145
  ### Permission Modes
146
146
 
147
- Control what operations are allowed:
147
+ Control what operations are allowed. **By default, Jicon runs in read-only mode** - all read tools across Jira, Confluence, and Tempo are available, but no write operations. Safe for exploration without risk of accidental modifications.
148
148
 
149
- **Full Access** (default):
149
+ **Read-Only** (default) - all read tools enabled:
150
150
  ```json
151
- { "permissions": { "mode": "full" } }
151
+ { "permissions": { "mode": "readonly" } }
152
152
  ```
153
153
 
154
- **Read-Only** - safe for exploration:
154
+ **Full Access** - all operations enabled:
155
155
  ```json
156
- { "permissions": { "mode": "readonly" } }
156
+ { "permissions": { "mode": "full" } }
157
157
  ```
158
158
 
159
159
  **Custom** - fine-grained control:
@@ -166,6 +166,24 @@ Control what operations are allowed:
166
166
  }
167
167
  ```
168
168
 
169
+ **Safe Write** - recommended for controlled write access:
170
+ ```json
171
+ {
172
+ "permissions": {
173
+ "mode": "custom",
174
+ "whitelist": ["jira_read", "confluence_write", "tempo_read"],
175
+ "confluenceWriteHome": true
176
+ }
177
+ }
178
+ ```
179
+
180
+ This configuration allows:
181
+ - **Jira**: Read-only (search, view issues, sprints, boards)
182
+ - **Confluence**: Write restricted to your personal space only
183
+ - **Tempo**: Read-only (view worklogs, no time logging)
184
+
185
+ The `confluenceWriteHome: true` setting ensures all Confluence write operations (drafts, comments, attachments) can only target your personal space, preventing accidental modifications to shared team spaces.
186
+
169
187
  Available virtual actions: `jira_read`, `jira_write`, `jira_all`, `confluence_read`, `confluence_write`, `confluence_all`, `tempo_read`, `tempo_write`, `tempo_all`
170
188
 
171
189
  ## Authentication
@@ -205,7 +223,13 @@ Plus utility tools for content buffering, time calculations, URL generation, and
205
223
 
206
224
  ### Safe Confluence Editing
207
225
 
208
- Confluence changes go through a draft workflow - Claude creates drafts, you review and publish. No accidental overwrites.
226
+ Confluence write operations use a **draft workflow** for safety:
227
+
228
+ 1. **Draft Creation**: When asked to create or edit content, Jicon creates a draft in your personal space
229
+ 2. **User Review**: You review the draft content before it goes live
230
+ 3. **Manual Publish**: You decide when and where to publish the final content
231
+
232
+ This means the AI assistant **never directly publishes** to shared team spaces - all changes are staged as drafts that require your explicit approval. Combined with `confluenceWriteHome: true`, this ensures complete control over what gets published.
209
233
 
210
234
  ### PlantUML Diagrams
211
235
 
@@ -22,13 +22,13 @@ export const PermissionsConfigSchema = z.object({
22
22
  confluenceWriteHome: z.boolean().default(false),
23
23
  });
24
24
  // Main configuration schema
25
- // Default: custom mode with jira_read + confluence_read only (Tempo disabled by default)
25
+ // Default: readonly mode for safety (no write operations allowed)
26
26
  export const ConfigSchema = z.object({
27
27
  jira: ServiceConfigSchema.optional(),
28
28
  confluence: ServiceConfigSchema.optional(),
29
29
  permissions: PermissionsConfigSchema.default({
30
- mode: "custom",
31
- whitelist: ["jira_read", "confluence_read"],
30
+ mode: "readonly",
31
+ whitelist: [],
32
32
  blacklist: [],
33
33
  }),
34
34
  });
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,6BAA6B;AAC7B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAG1D,+BAA+B;AAC/B,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAIH,yBAAyB;AACzB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;AAG3E,mCAAmC;AACnC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC;IAC9C,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1C,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1C,iFAAiF;IACjF,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAChD,CAAC,CAAC;AAIH,4BAA4B;AAC5B,yFAAyF;AACzF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IACpC,UAAU,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IAC1C,WAAW,EAAE,uBAAuB,CAAC,OAAO,CAAC;QAC3C,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC;QAC3C,SAAS,EAAE,EAAE;KACd,CAAC;CACH,CAAC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,6BAA6B;AAC7B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAG1D,+BAA+B;AAC/B,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAIH,yBAAyB;AACzB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;AAG3E,mCAAmC;AACnC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC;IAC9C,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1C,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1C,iFAAiF;IACjF,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAChD,CAAC,CAAC;AAIH,4BAA4B;AAC5B,kEAAkE;AAClE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IACpC,UAAU,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IAC1C,WAAW,EAAE,uBAAuB,CAAC,OAAO,CAAC;QAC3C,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,EAAE;KACd,CAAC;CACH,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crypto512/jicon-mcp",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "Model Context Protocol server for Jira, Confluence, and Tempo integration",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",