@crypto512/jicon-mcp 2.2.0 → 2.2.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/.env.example +2 -2
- package/README.md +9 -136
- package/package.json +1 -1
package/.env.example
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# Jira Configuration
|
|
2
2
|
JIRA_URL=https://jira.example.com
|
|
3
|
-
JIRA_USERNAME=your-email@example.com
|
|
3
|
+
# JIRA_USERNAME=your-email@example.com # Optional: omit for Data Center PAT
|
|
4
4
|
JIRA_API_TOKEN=your-jira-api-token
|
|
5
5
|
|
|
6
6
|
# Confluence Configuration
|
|
7
7
|
CONFLUENCE_URL=https://confluence.example.com
|
|
8
|
-
CONFLUENCE_USERNAME=your-email@example.com
|
|
8
|
+
# CONFLUENCE_USERNAME=your-email@example.com # Optional: omit for Data Center PAT
|
|
9
9
|
CONFLUENCE_API_TOKEN=your-confluence-api-token
|
package/README.md
CHANGED
|
@@ -66,10 +66,8 @@ Add to your `claude_desktop_config.json`:
|
|
|
66
66
|
"args": ["-y", "@crypto512/jicon-mcp"],
|
|
67
67
|
"env": {
|
|
68
68
|
"JIRA_URL": "https://jira.example.com",
|
|
69
|
-
"JIRA_USERNAME": "your-email@example.com",
|
|
70
69
|
"JIRA_API_TOKEN": "your-api-token",
|
|
71
70
|
"CONFLUENCE_URL": "https://confluence.example.com",
|
|
72
|
-
"CONFLUENCE_USERNAME": "your-email@example.com",
|
|
73
71
|
"CONFLUENCE_API_TOKEN": "your-api-token"
|
|
74
72
|
}
|
|
75
73
|
}
|
|
@@ -89,8 +87,9 @@ Add to `~/.claude/settings.json` or project `.mcp.json`:
|
|
|
89
87
|
"args": ["-y", "@crypto512/jicon-mcp"],
|
|
90
88
|
"env": {
|
|
91
89
|
"JIRA_URL": "https://jira.example.com",
|
|
92
|
-
"
|
|
93
|
-
"
|
|
90
|
+
"JIRA_API_TOKEN": "your-api-token",
|
|
91
|
+
"CONFLUENCE_URL": "https://confluence.example.com",
|
|
92
|
+
"CONFLUENCE_API_TOKEN": "your-api-token"
|
|
94
93
|
}
|
|
95
94
|
}
|
|
96
95
|
}
|
|
@@ -110,8 +109,9 @@ Add to `opencode.jsonc` in your project root or `~/.config/opencode/opencode.jso
|
|
|
110
109
|
"command": ["npx", "-y", "@crypto512/jicon-mcp"],
|
|
111
110
|
"environment": {
|
|
112
111
|
"JIRA_URL": "https://jira.example.com",
|
|
113
|
-
"
|
|
114
|
-
"
|
|
112
|
+
"JIRA_API_TOKEN": "your-api-token",
|
|
113
|
+
"CONFLUENCE_URL": "https://confluence.example.com",
|
|
114
|
+
"CONFLUENCE_API_TOKEN": "your-api-token"
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
117
|
}
|
|
@@ -209,7 +209,7 @@ This configuration allows:
|
|
|
209
209
|
}
|
|
210
210
|
```
|
|
211
211
|
|
|
212
|
-
**Virtual actions** (for whitelist): `jira_read`, `jira_write`, `jira_all`, `confluence_read`, `confluence_write`, `confluence_draft`, `confluence_all`, `tempo_read`, `tempo_write`, `tempo_all`
|
|
212
|
+
**Virtual actions** (for whitelist): `jira_read`, `jira_write`, `jira_all`, `confluence_read`, `confluence_write`, `confluence_write_home`, `confluence_draft`, `confluence_all`, `tempo_read`, `tempo_write`, `tempo_all`
|
|
213
213
|
|
|
214
214
|
**Individual tools** (for blacklist): See [TOOL_LIST.md](TOOL_LIST.md) for all tool names
|
|
215
215
|
|
|
@@ -258,7 +258,7 @@ Jicon supports two transport modes:
|
|
|
258
258
|
| Mode | Use Case | Protocol |
|
|
259
259
|
|------|----------|----------|
|
|
260
260
|
| **stdio** (default) | Local usage with `npx`, Claude Desktop, Claude Code | Standard I/O |
|
|
261
|
-
| **http** | Containers,
|
|
261
|
+
| **http** | Containers, remote servers | HTTP with StreamableHTTP |
|
|
262
262
|
|
|
263
263
|
For containerized deployments, use HTTP mode which exposes the MCP protocol over HTTP.
|
|
264
264
|
|
|
@@ -357,130 +357,10 @@ JICON_TRANSPORT=http \
|
|
|
357
357
|
npm start
|
|
358
358
|
```
|
|
359
359
|
|
|
360
|
-
### Kubernetes Deployment
|
|
361
|
-
|
|
362
|
-
```yaml
|
|
363
|
-
apiVersion: v1
|
|
364
|
-
kind: Secret
|
|
365
|
-
metadata:
|
|
366
|
-
name: jicon-secrets
|
|
367
|
-
type: Opaque
|
|
368
|
-
stringData:
|
|
369
|
-
jira-url: "https://jira.example.com"
|
|
370
|
-
jira-token: "your-api-token"
|
|
371
|
-
---
|
|
372
|
-
apiVersion: apps/v1
|
|
373
|
-
kind: Deployment
|
|
374
|
-
metadata:
|
|
375
|
-
name: jicon-mcp
|
|
376
|
-
spec:
|
|
377
|
-
replicas: 1
|
|
378
|
-
selector:
|
|
379
|
-
matchLabels:
|
|
380
|
-
app: jicon-mcp
|
|
381
|
-
template:
|
|
382
|
-
metadata:
|
|
383
|
-
labels:
|
|
384
|
-
app: jicon-mcp
|
|
385
|
-
spec:
|
|
386
|
-
containers:
|
|
387
|
-
- name: jicon-mcp
|
|
388
|
-
image: jicon-mcp:latest
|
|
389
|
-
ports:
|
|
390
|
-
- containerPort: 3000
|
|
391
|
-
env:
|
|
392
|
-
- name: JICON_TRANSPORT
|
|
393
|
-
value: "http"
|
|
394
|
-
- name: JIRA_URL
|
|
395
|
-
valueFrom:
|
|
396
|
-
secretKeyRef:
|
|
397
|
-
name: jicon-secrets
|
|
398
|
-
key: jira-url
|
|
399
|
-
- name: JIRA_API_TOKEN
|
|
400
|
-
valueFrom:
|
|
401
|
-
secretKeyRef:
|
|
402
|
-
name: jicon-secrets
|
|
403
|
-
key: jira-token
|
|
404
|
-
livenessProbe:
|
|
405
|
-
httpGet:
|
|
406
|
-
path: /health
|
|
407
|
-
port: 3000
|
|
408
|
-
initialDelaySeconds: 5
|
|
409
|
-
periodSeconds: 30
|
|
410
|
-
readinessProbe:
|
|
411
|
-
httpGet:
|
|
412
|
-
path: /ready
|
|
413
|
-
port: 3000
|
|
414
|
-
initialDelaySeconds: 5
|
|
415
|
-
periodSeconds: 10
|
|
416
|
-
resources:
|
|
417
|
-
requests:
|
|
418
|
-
memory: "128Mi"
|
|
419
|
-
cpu: "100m"
|
|
420
|
-
limits:
|
|
421
|
-
memory: "256Mi"
|
|
422
|
-
cpu: "500m"
|
|
423
|
-
---
|
|
424
|
-
apiVersion: v1
|
|
425
|
-
kind: Service
|
|
426
|
-
metadata:
|
|
427
|
-
name: jicon-mcp
|
|
428
|
-
spec:
|
|
429
|
-
selector:
|
|
430
|
-
app: jicon-mcp
|
|
431
|
-
ports:
|
|
432
|
-
- port: 3000
|
|
433
|
-
targetPort: 3000
|
|
434
|
-
```
|
|
435
|
-
|
|
436
360
|
### LibreChat Integration
|
|
437
361
|
|
|
438
362
|
[LibreChat](https://www.librechat.ai/) supports MCP servers via the `streamable-http` transport type. This allows LibreChat to connect to jicon running in a container.
|
|
439
363
|
|
|
440
|
-
**Basic configuration in `librechat.yaml`:**
|
|
441
|
-
|
|
442
|
-
```yaml
|
|
443
|
-
mcpServers:
|
|
444
|
-
jicon:
|
|
445
|
-
type: streamable-http
|
|
446
|
-
url: http://jicon-mcp:3000/mcp
|
|
447
|
-
timeout: 60000
|
|
448
|
-
initTimeout: 10000
|
|
449
|
-
serverInstructions: |
|
|
450
|
-
Jicon MCP server provides access to Jira, Confluence, and Tempo.
|
|
451
|
-
Use jicon_help tool to learn about available workflows.
|
|
452
|
-
```
|
|
453
|
-
|
|
454
|
-
**With environment variables for credentials:**
|
|
455
|
-
|
|
456
|
-
Jicon reads credentials from its own environment variables. When running with Docker Compose, pass them to the jicon container:
|
|
457
|
-
|
|
458
|
-
```yaml
|
|
459
|
-
# docker-compose.yml
|
|
460
|
-
version: "3.8"
|
|
461
|
-
|
|
462
|
-
services:
|
|
463
|
-
jicon-mcp:
|
|
464
|
-
build: .
|
|
465
|
-
environment:
|
|
466
|
-
- JICON_TRANSPORT=http
|
|
467
|
-
- JIRA_URL=${JIRA_URL}
|
|
468
|
-
- JIRA_API_TOKEN=${JIRA_API_TOKEN}
|
|
469
|
-
- CONFLUENCE_URL=${CONFLUENCE_URL}
|
|
470
|
-
- CONFLUENCE_API_TOKEN=${CONFLUENCE_API_TOKEN}
|
|
471
|
-
- JICON_PERMISSIONS_MODE=${JICON_PERMISSIONS_MODE:-readonly}
|
|
472
|
-
|
|
473
|
-
librechat:
|
|
474
|
-
image: ghcr.io/danny-avila/librechat:latest
|
|
475
|
-
depends_on:
|
|
476
|
-
- jicon-mcp
|
|
477
|
-
volumes:
|
|
478
|
-
- ./librechat.yaml:/app/librechat.yaml
|
|
479
|
-
# ... other LibreChat configuration
|
|
480
|
-
```
|
|
481
|
-
|
|
482
|
-
**Per-user credentials with `customUserVars`:**
|
|
483
|
-
|
|
484
364
|
Each LibreChat user can use their own Jira/Confluence credentials via HTTP headers. Configure `customUserVars` in LibreChat to prompt users for their credentials:
|
|
485
365
|
|
|
486
366
|
```yaml
|
|
@@ -489,7 +369,7 @@ mcpServers:
|
|
|
489
369
|
jicon:
|
|
490
370
|
type: streamable-http
|
|
491
371
|
url: http://jicon-mcp:3000/mcp
|
|
492
|
-
timeout:
|
|
372
|
+
timeout: 180000
|
|
493
373
|
initTimeout: 10000
|
|
494
374
|
headers:
|
|
495
375
|
X-Jira-Url: "{{JIRA_URL}}"
|
|
@@ -525,13 +405,6 @@ mcpServers:
|
|
|
525
405
|
|
|
526
406
|
Both URL and Token headers must be provided together for each service. Per-request credentials take priority over environment variables.
|
|
527
407
|
|
|
528
|
-
**Timeout recommendations:**
|
|
529
|
-
|
|
530
|
-
| Setting | Value | Description |
|
|
531
|
-
|---------|-------|-------------|
|
|
532
|
-
| `timeout` | `60000` | Request timeout (60s) - allows for large searches |
|
|
533
|
-
| `initTimeout` | `10000` | Initialization timeout (10s) - jicon starts quickly |
|
|
534
|
-
|
|
535
408
|
For more details, see [LibreChat MCP documentation](https://www.librechat.ai/docs/features/mcp).
|
|
536
409
|
|
|
537
410
|
## API Limitations
|