@softspark/jira-mcp 1.14.5 → 1.15.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.
- package/CHANGELOG.md +35 -0
- package/README.md +29 -15
- package/dist/cli.js +53 -52
- package/dist/index.js +43 -43
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,41 @@ Versioning follows [Semantic Versioning](https://semver.org/).
|
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
## v1.15.0 -- Tempo worklogs and reports (2026-09-17)
|
|
11
|
+
|
|
12
|
+
`@softspark/confluence-mcp` has no behaviour change in this release; it is bumped
|
|
13
|
+
together with `@softspark/jira-mcp` per ADR-0002 and picks up the shared HTTP
|
|
14
|
+
client's Bearer support without using it.
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- **Tempo worklogs and reports.** Two new tools read Tempo Timesheets through
|
|
19
|
+
the Tempo Cloud REST API v4: `search_tempo_worklogs` lists worklogs in a date
|
|
20
|
+
range with issue keys and user names resolved, and `get_tempo_report` sums
|
|
21
|
+
hours by project, user and/or task in the order asked. Filters combine, so
|
|
22
|
+
"this person's hours on this project last month" is one call. Tempo v4
|
|
23
|
+
answers in numeric ids only, so every result is joined against Jira
|
|
24
|
+
(`issue/bulkfetch` for keys and summaries, `user/bulk` for names); an issue
|
|
25
|
+
the token cannot browse keeps its hours under `#<id>` rather than vanishing
|
|
26
|
+
from a total. A query past 50 000 worklogs fails instead of truncating.
|
|
27
|
+
- **`jira-mcp config set-tempo-token`** stores the Tempo token next to the Jira
|
|
28
|
+
credential, on the default entry or per instance with `--url`. The token is
|
|
29
|
+
read from `--token` or `TEMPO_API_TOKEN`. An instance override never inherits
|
|
30
|
+
the default's Tempo token, because a Tempo token is bound to one site.
|
|
31
|
+
`tempo_api_url` in config.json selects a region host (`api.eu.tempo.io`,
|
|
32
|
+
`api.us.tempo.io`); the global host is the default.
|
|
33
|
+
- **Bearer auth in the shared HTTP client.** `AtlassianHttpClient` takes a
|
|
34
|
+
`bearer_token` config alongside the Basic pair, so Tempo rides the same retry
|
|
35
|
+
and backoff loop as Jira and Confluence instead of a second `fetch` loop.
|
|
36
|
+
- Four error classes: `TempoConnectionError`, `TempoAuthenticationError`,
|
|
37
|
+
`TempoPermissionError` and `TempoNotConfiguredError`. The last one is raised
|
|
38
|
+
before any network call when a site has no token.
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- `config set-credentials` no longer drops a stored Tempo token when the Jira
|
|
43
|
+
token in the same slot is rotated.
|
|
44
|
+
|
|
10
45
|
## v1.14.5 -- Build and packaging documented (2026-09-10)
|
|
11
46
|
|
|
12
47
|
No code change in either package. The one thing a consumer gets that 1.14.4 did
|
package/README.md
CHANGED
|
@@ -4,18 +4,17 @@
|
|
|
4
4
|
|
|
5
5
|
[](https://github.com/softspark/jira-mcp/actions/workflows/ci.yml)
|
|
6
6
|
[](https://www.npmjs.com/package/@softspark/jira-mcp)
|
|
7
|
-
[](CHANGELOG.md)
|
|
8
8
|
[](LICENSE)
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
-
## What's New in v1.
|
|
12
|
+
## What's New in v1.15.0
|
|
13
13
|
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
- `
|
|
18
|
-
- Fixed in 1.14.1: `jira-mcp --help` now lists both new commands. 1.14.2 adds the test that would have caught it, on both binaries.
|
|
14
|
+
- **Tempo worklogs and reports.** `search_tempo_worklogs` lists Tempo Timesheets entries in a date range with issue keys and user names resolved; `get_tempo_report` sums hours by project, user and/or task. Filters combine, so "this person's hours on this project last month" is one call.
|
|
15
|
+
- Tempo REST API v4 answers in numeric ids only, so every result is joined against Jira. An issue the token cannot browse keeps its hours under `#<id>` instead of vanishing from a total.
|
|
16
|
+
- `jira-mcp config set-tempo-token` stores the Tempo token next to the Jira credential, per site with `--url`. Nothing else needs it: without a token the two Tempo tools answer `TEMPO_NOT_CONFIGURED` and every other tool works as before.
|
|
17
|
+
- Fixed: `config set-credentials` no longer drops a stored Tempo token when the Jira token is rotated.
|
|
19
18
|
- Released together with `@softspark/confluence-mcp` under one version. See the [changelog](CHANGELOG.md).
|
|
20
19
|
|
|
21
20
|
## Table of Contents
|
|
@@ -64,6 +63,16 @@ jira-mcp config add-project
|
|
|
64
63
|
|
|
65
64
|
All configuration lives in `~/.softspark/jira-mcp/` (created by `jira-mcp config init`). This is the standard config directory for all SoftSpark open-source tools.
|
|
66
65
|
|
|
66
|
+
### 3. Tempo (optional)
|
|
67
|
+
|
|
68
|
+
If the site runs Tempo Timesheets, create a Tempo API token (Tempo > Settings > API Integration) and store it next to the Jira credential:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
jira-mcp config set-tempo-token --token TEMPO_TOKEN
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
That unlocks `search_tempo_worklogs` and `get_tempo_report`. Without it every other tool works as before. Sites pinned to a Tempo region set `tempo_api_url` in `config.json` (`https://api.eu.tempo.io/4` or `https://api.us.tempo.io/4`).
|
|
75
|
+
|
|
67
76
|
## CLI Commands
|
|
68
77
|
|
|
69
78
|
| Command | Description |
|
|
@@ -84,6 +93,7 @@ All configuration lives in `~/.softspark/jira-mcp/` (created by `jira-mcp config
|
|
|
84
93
|
| `jira-mcp config remove-project <key>` | Remove a project from config |
|
|
85
94
|
| `jira-mcp config list-projects` | List all configured projects with language |
|
|
86
95
|
| `jira-mcp config set-credentials` | Set API credentials |
|
|
96
|
+
| `jira-mcp config set-tempo-token` | Set the Tempo API token (default site or `--url <jira-url>`) |
|
|
87
97
|
| `jira-mcp config set-default <key>` | Set default project |
|
|
88
98
|
| `jira-mcp config set-language <lang>` | Set global default language |
|
|
89
99
|
| `jira-mcp config set-project-language <key> <lang>` | Set language for a specific project |
|
|
@@ -114,6 +124,8 @@ All configuration lives in `~/.softspark/jira-mcp/` (created by `jira-mcp config
|
|
|
114
124
|
| `add_templated_comment` | Add comment using a template or raw markdown | `task_key`, `template_id?`, `variables?`, `markdown?`, `user_approved` |
|
|
115
125
|
| `create_task` | Create a new Jira issue with explicit fields or a task template | `project_key`, `summary?`, `template_id?`, `variables?`, `description?`, `assignee_email?`, `labels?`, `epic_key?`, `parent_key?`, `original_estimate?` |
|
|
116
126
|
| `search_tasks` | Search Jira issues with JQL (no caching) | `jql`, `max_results?`, `project_key?` |
|
|
127
|
+
| `search_tempo_worklogs` | List Tempo worklogs in a date range, issue keys and user names resolved | `from`, `to`, `project_key?`, `task_key?`, `user_email?`, `limit?` |
|
|
128
|
+
| `get_tempo_report` | Sum Tempo hours by project, user and/or task | `from`, `to`, `group_by?`, `project_key?`, `task_key?`, `user_email?` |
|
|
117
129
|
|
|
118
130
|
## Comment Templates
|
|
119
131
|
|
|
@@ -203,7 +215,7 @@ Or copy `rules/jira-mcp.md` to your ai-toolkit rules directory manually. The rul
|
|
|
203
215
|
- **Sync before read** -- cache may be stale
|
|
204
216
|
- **Status transitions** -- check valid transitions before changing status
|
|
205
217
|
- **Time format** -- `"2h 30m"`, never days
|
|
206
|
-
- **All
|
|
218
|
+
- **All 21 MCP tools** and **24 CLI commands** reference
|
|
207
219
|
|
|
208
220
|
### AI Toolkit Hooks
|
|
209
221
|
|
|
@@ -246,11 +258,11 @@ src/
|
|
|
246
258
|
create.ts Bulk task creation command
|
|
247
259
|
create-monthly.ts Monthly admin task automation
|
|
248
260
|
config/ Configuration loading and Zod validation
|
|
249
|
-
connector/ Jira API
|
|
261
|
+
connector/ Jira and Tempo API clients (built-in fetch, instance pool)
|
|
250
262
|
errors/ Typed error hierarchy
|
|
251
|
-
operations/ Business logic (status, comments, time tracking)
|
|
263
|
+
operations/ Business logic (status, comments, time tracking, Tempo reports)
|
|
252
264
|
templates/ File-backed comment/task template loading and registries
|
|
253
|
-
tools/ MCP tool handlers (
|
|
265
|
+
tools/ MCP tool handlers (21 tools, one file per tool)
|
|
254
266
|
types/ Shared TypeScript types
|
|
255
267
|
server.ts MCP server setup and tool registration
|
|
256
268
|
cli.ts CLI entry point
|
|
@@ -272,11 +284,13 @@ src/
|
|
|
272
284
|
|
|
273
285
|
**Per-instance credentials** -- different API tokens per Jira instance URL. Single-credential format still works (backward compatible). See [Configuration](kb/reference/configuration.md).
|
|
274
286
|
|
|
275
|
-
**
|
|
287
|
+
**Tempo worklogs and reports** -- `search_tempo_worklogs` and `get_tempo_report` read Tempo Timesheets (Cloud REST API v4) for hours per project, user or task over a date range, with Tempo's numeric ids resolved to issue keys and names through Jira. Needs a Tempo API token (`jira-mcp config set-tempo-token`); nothing else depends on it. See [API Reference](kb/reference/api.md).
|
|
288
|
+
|
|
289
|
+
**Supply chain protection** -- `ignore-scripts=true`, no axios, no dynamic requires. Self-contained 561KB library bundle, 1 runtime dep (commander).
|
|
276
290
|
|
|
277
|
-
**Typed error hierarchy** --
|
|
291
|
+
**Typed error hierarchy** -- 30 error classes with machine-readable codes. Every tool returns structured `{ success, error, code }` responses. No stack traces leak to MCP clients.
|
|
278
292
|
|
|
279
|
-
**Strict TypeScript** -- `strict: true`, no `any`, `readonly` interfaces, Zod validation at all boundaries,
|
|
293
|
+
**Strict TypeScript** -- `strict: true`, no `any`, `readonly` interfaces, Zod validation at all boundaries, 1093 tests across 85 test files.
|
|
280
294
|
|
|
281
295
|
## Documentation
|
|
282
296
|
|
|
@@ -284,7 +298,7 @@ src/
|
|
|
284
298
|
|----------|-------------|
|
|
285
299
|
| [Architecture](kb/reference/architecture.md) | System design and module overview |
|
|
286
300
|
| [Local audit](kb/reference/audit.md) | JSON/SARIF formats, filesystem checks and hook permissions |
|
|
287
|
-
| [API Reference](kb/reference/api.md) | All
|
|
301
|
+
| [API Reference](kb/reference/api.md) | All 21 MCP tools with schemas |
|
|
288
302
|
| [Configuration](kb/reference/configuration.md) | Config files, env vars, multi-instance |
|
|
289
303
|
| [ADF Format](kb/reference/adf.md) | Atlassian Document Format conversion |
|
|
290
304
|
| [Caching](kb/reference/caching.md) | Task, workflow, and user caching |
|