@crypto512/jicon-mcp 0.1.0 → 0.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/CLAUDE.md +18 -2
- package/JIRA_API_ANALYSIS.md +275 -0
- package/README.md +41 -15
- package/TOOL_LIST.md +6 -3
- package/dist/index.d.ts +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/tempo/client.d.ts +10 -4
- package/dist/tempo/client.d.ts.map +1 -1
- package/dist/tempo/client.js +95 -25
- package/dist/tempo/client.js.map +1 -1
- package/dist/tempo/formatters.d.ts.map +1 -1
- package/dist/tempo/formatters.js +58 -21
- package/dist/tempo/formatters.js.map +1 -1
- package/dist/tempo/tools.d.ts +6 -6
- package/dist/tempo/tools.d.ts.map +1 -1
- package/dist/tempo/tools.js +23 -19
- package/dist/tempo/tools.js.map +1 -1
- package/dist/tempo/types.d.ts +10 -9
- package/dist/tempo/types.d.ts.map +1 -1
- package/dist/tempo/types.js +1 -0
- package/dist/tempo/types.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.js +1 -1
- package/package.json +2 -2
package/CLAUDE.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# Jira and
|
|
1
|
+
# Jira, Confluence, and Tempo MCP Server
|
|
2
2
|
|
|
3
3
|
## Overview
|
|
4
4
|
|
|
5
|
-
A Model Context Protocol (MCP) server that provides seamless integration with Atlassian Jira and
|
|
5
|
+
A Model Context Protocol (MCP) server that provides seamless integration with Atlassian Jira, Confluence, and Tempo Server/Data Center instances. This server enables AI assistants to interact with Jira issues, projects, boards, Confluence pages, spaces, content, and Tempo time tracking through a comprehensive set of tools.
|
|
6
6
|
|
|
7
7
|
## Features
|
|
8
8
|
|
|
@@ -22,6 +22,14 @@ A Model Context Protocol (MCP) server that provides seamless integration with At
|
|
|
22
22
|
- **Attachments**: Upload and retrieve file attachments
|
|
23
23
|
- **Comments**: Add and view page comments
|
|
24
24
|
|
|
25
|
+
### Tempo Integration
|
|
26
|
+
- **Time Tracking**: Log, view, and manage work time
|
|
27
|
+
- **Worklog Management**: Create, update, and delete worklogs
|
|
28
|
+
- **Team Tracking**: Access team worklogs and time tracking data
|
|
29
|
+
- **Account Management**: View and manage Tempo accounts
|
|
30
|
+
- **User Info**: Retrieve user time tracking information
|
|
31
|
+
- **v4 API**: Uses Tempo v4 API with automatic key-to-ID conversion
|
|
32
|
+
|
|
25
33
|
## Installation
|
|
26
34
|
|
|
27
35
|
```bash
|
|
@@ -73,6 +81,14 @@ CONFLUENCE_AUTH_TYPE=bearer
|
|
|
73
81
|
2. Select "Personal access tokens" in the left menu
|
|
74
82
|
3. Create a new token with appropriate permissions
|
|
75
83
|
|
|
84
|
+
### Tempo Configuration
|
|
85
|
+
|
|
86
|
+
Tempo uses the same authentication as Jira (same URL and credentials). This server uses **Tempo v4 API**, which requires issueId and projectId (integers) instead of string keys. The server automatically converts user-friendly keys (e.g., "PROJ-123") to the numeric IDs required by the v4 API.
|
|
87
|
+
|
|
88
|
+
**Requirements:**
|
|
89
|
+
- Tempo 3.x or later (which provides v4 API)
|
|
90
|
+
- Same Jira credentials for authentication
|
|
91
|
+
|
|
76
92
|
### Claude Desktop Configuration
|
|
77
93
|
|
|
78
94
|
#### For Jira/Confluence Cloud:
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
# Jira API Compatibility Analysis
|
|
2
|
+
|
|
3
|
+
**Date**: 2025-11-12
|
|
4
|
+
**Analysis**: Jira REST API implementation vs. latest official documentation
|
|
5
|
+
**Target**: Jira Server/Data Center and Jira Cloud
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Executive Summary
|
|
10
|
+
|
|
11
|
+
The current Jira implementation is **FULLY COMPATIBLE** with **Jira Server/Data Center** (versions 8.x, 9.x, and latest) but has **LIMITED COMPATIBILITY** with **Jira Cloud**. While the documentation claims to support both platforms, the implementation uses Server/Data Center-specific patterns that will fail on Cloud instances.
|
|
12
|
+
|
|
13
|
+
### Key Findings
|
|
14
|
+
|
|
15
|
+
| Component | Server/Data Center | Cloud | Status |
|
|
16
|
+
|-----------|-------------------|-------|--------|
|
|
17
|
+
| Core API Version | `/rest/api/2/` ✅ | `/rest/api/3/` ❌ | **Partial** |
|
|
18
|
+
| Agile API Version | `/rest/agile/1.0/` ✅ | `/rest/agile/1.0/` ✅ | **Good** |
|
|
19
|
+
| User References | `{ name: "username" }` ✅ | `{ accountId: "..." }` ❌ | **Incompatible** |
|
|
20
|
+
| Authentication | Basic + Bearer ✅ | Basic (email + token) ✅ | **Good** |
|
|
21
|
+
| Search Method | POST ✅ | POST ✅ | **Good** |
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Detailed Analysis
|
|
26
|
+
|
|
27
|
+
### 1. Core API Endpoints (`/rest/api/2/`)
|
|
28
|
+
|
|
29
|
+
#### Status: ✅ CURRENT for Server/Data Center
|
|
30
|
+
|
|
31
|
+
**Current Implementation**: `/rest/api/2/`
|
|
32
|
+
|
|
33
|
+
**Finding**: The implementation correctly uses `/rest/api/2/` for all core operations:
|
|
34
|
+
- Issue search: `/rest/api/2/search` (line 42 in client.ts)
|
|
35
|
+
- Issue operations: `/rest/api/2/issue/{key}`
|
|
36
|
+
- Comments: `/rest/api/2/issue/{key}/comment`
|
|
37
|
+
- Projects: `/rest/api/2/project`
|
|
38
|
+
- Transitions: `/rest/api/2/issue/{key}/transitions`
|
|
39
|
+
- Issue links: `/rest/api/2/issueLink`
|
|
40
|
+
|
|
41
|
+
**Recommendation**: ✅ **No changes needed** for Server/Data Center. This is the current and correct API version for Jira Server/Data Center 8.x, 9.x, and latest (11.2.0).
|
|
42
|
+
|
|
43
|
+
**Note for Cloud**: Jira Cloud uses `/rest/api/3/` as its primary API version, though `/rest/api/2/` is still supported for backward compatibility. For full Cloud support, consider adding v3 endpoints.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
### 2. Agile API Endpoints (`/rest/agile/1.0/`)
|
|
48
|
+
|
|
49
|
+
#### Status: ✅ CURRENT for both Server/Data Center and Cloud
|
|
50
|
+
|
|
51
|
+
**Current Implementation**: `/rest/agile/1.0/`
|
|
52
|
+
|
|
53
|
+
**Finding**: The implementation correctly uses `/rest/agile/1.0/` for all Agile operations:
|
|
54
|
+
- Boards: `/rest/agile/1.0/board/{id}` (line 268)
|
|
55
|
+
- Sprints: `/rest/agile/1.0/board/{id}/sprint` (line 282)
|
|
56
|
+
- Sprint issues: `/rest/agile/1.0/sprint/{id}/issue` (line 299)
|
|
57
|
+
|
|
58
|
+
**Verification**: Checked against latest Jira Agile Data Center 9.17.0 REST API documentation. Version 1.0 is still current across all versions.
|
|
59
|
+
|
|
60
|
+
**Recommendation**: ✅ **No changes needed**. This is correct and not obsolete.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
### 3. Issue Search Method (GET vs POST)
|
|
65
|
+
|
|
66
|
+
#### Status: ✅ OPTIMAL
|
|
67
|
+
|
|
68
|
+
**Current Implementation**: POST `/rest/api/2/search`
|
|
69
|
+
|
|
70
|
+
**Finding**: The implementation uses POST for issue search (line 42 in client.ts):
|
|
71
|
+
```typescript
|
|
72
|
+
return this.http.post<JiraSearchResult>("/rest/api/2/search", params);
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**Best Practice**: According to official documentation:
|
|
76
|
+
- GET is suitable for simple queries
|
|
77
|
+
- POST is recommended when JQL is large to avoid URL length limitations
|
|
78
|
+
|
|
79
|
+
**Recommendation**: ✅ **No changes needed**. Using POST is the safer and more robust approach.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
### 4. User Field Format (CRITICAL ISSUE)
|
|
84
|
+
|
|
85
|
+
#### Status: ❌ INCOMPATIBLE with Jira Cloud
|
|
86
|
+
|
|
87
|
+
**Current Implementation**: `{ name: "username" }`
|
|
88
|
+
|
|
89
|
+
**Code Location**: `src/jira/client.ts:92`
|
|
90
|
+
```typescript
|
|
91
|
+
if (issueData.assignee) {
|
|
92
|
+
fields.assignee = { name: issueData.assignee };
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**Problem**: This format only works for Jira Server/Data Center. Jira Cloud requires:
|
|
97
|
+
```typescript
|
|
98
|
+
fields.assignee = { accountId: "5b10ac8d82e05b22cc7d4ef5" };
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**Background**:
|
|
102
|
+
- **Pre-GDPR (before 2018)**: Jira used `name` and `key` fields for users
|
|
103
|
+
- **Post-GDPR (2018+)**: Jira Cloud deprecated `name`/`key` fields
|
|
104
|
+
- **Current (2024)**: Cloud requires `accountId`, Server/Data Center still uses `name`
|
|
105
|
+
|
|
106
|
+
**Impact**:
|
|
107
|
+
- ❌ Creating/updating issues with assignee will fail on Jira Cloud
|
|
108
|
+
- ✅ Works correctly on Server/Data Center
|
|
109
|
+
|
|
110
|
+
**Recommendation**: Implement Cloud detection and conditional field format:
|
|
111
|
+
|
|
112
|
+
```typescript
|
|
113
|
+
// Detect if Cloud instance
|
|
114
|
+
private isCloudInstance(): boolean {
|
|
115
|
+
return this.config.url.includes('.atlassian.net');
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// In createIssue method:
|
|
119
|
+
if (issueData.assignee) {
|
|
120
|
+
if (this.isCloudInstance()) {
|
|
121
|
+
fields.assignee = { accountId: issueData.assignee };
|
|
122
|
+
} else {
|
|
123
|
+
fields.assignee = { name: issueData.assignee };
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**Alternative**: Document that assignee parameter should be formatted according to instance type, and users should provide the correct identifier format.
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
### 5. Other Field Formats
|
|
133
|
+
|
|
134
|
+
#### Status: ✅ CORRECT
|
|
135
|
+
|
|
136
|
+
**Current Implementation**:
|
|
137
|
+
```typescript
|
|
138
|
+
project: { key: issueData.projectKey } // ✅ Correct
|
|
139
|
+
issuetype: { name: issueData.issueType } // ✅ Correct
|
|
140
|
+
priority: { name: issueData.priority } // ✅ Correct
|
|
141
|
+
components: issueData.components.map(name => ({ name })) // ✅ Correct
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
**Finding**: All other field formats follow the correct patterns for both Cloud and Server/Data Center.
|
|
145
|
+
|
|
146
|
+
**Recommendation**: ✅ **No changes needed**.
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
### 6. Authentication Methods
|
|
151
|
+
|
|
152
|
+
#### Status: ✅ GOOD
|
|
153
|
+
|
|
154
|
+
**Current Implementation**: Supports both Basic Auth and Bearer Auth
|
|
155
|
+
|
|
156
|
+
**Server/Data Center**:
|
|
157
|
+
- ✅ Basic Auth: username + password/token
|
|
158
|
+
- ✅ Bearer Auth: Personal Access Token (PAT) for 8.14+
|
|
159
|
+
|
|
160
|
+
**Cloud**:
|
|
161
|
+
- ✅ Basic Auth: email + API token
|
|
162
|
+
|
|
163
|
+
**Recommendation**: ✅ **No changes needed**. Authentication is correctly implemented.
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
### 7. Deprecated Features Check
|
|
168
|
+
|
|
169
|
+
#### OAuth 1.0a
|
|
170
|
+
- **Status**: Deprecated in Jira Agile API
|
|
171
|
+
- **Impact**: Not applicable (we don't use OAuth)
|
|
172
|
+
|
|
173
|
+
#### createmeta Endpoint
|
|
174
|
+
- **Status**: Removed in Jira 9.0 due to performance issues
|
|
175
|
+
- **Impact**: Not applicable (we don't use this endpoint)
|
|
176
|
+
|
|
177
|
+
#### User Privacy API
|
|
178
|
+
- **Status**: `name` field deprecated in Cloud only
|
|
179
|
+
- **Impact**: ❌ Affects our assignee field implementation (see section 4)
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## Missing Modern Features
|
|
184
|
+
|
|
185
|
+
While the implementation is not using obsolete APIs, there are some modern features that could be added:
|
|
186
|
+
|
|
187
|
+
1. **Issue Properties API** - Store custom key-value data on issues
|
|
188
|
+
2. **Bulk Operations** - Update multiple issues in one call
|
|
189
|
+
3. **Advanced Search Features** - More sophisticated JQL query building
|
|
190
|
+
4. **Webhooks** - Real-time event notifications
|
|
191
|
+
5. **User Search API** - Find users by email/name to get accountId (critical for Cloud support)
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## Recommendations
|
|
196
|
+
|
|
197
|
+
### Priority 1: Critical (Cloud Compatibility)
|
|
198
|
+
|
|
199
|
+
1. **Add Cloud/Data Center Detection**
|
|
200
|
+
```typescript
|
|
201
|
+
private isCloudInstance(): boolean {
|
|
202
|
+
return this.config.url.includes('.atlassian.net');
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
2. **Fix Assignee Field Format**
|
|
207
|
+
- Implement conditional formatting based on instance type
|
|
208
|
+
- Add user search tool to get accountId on Cloud instances
|
|
209
|
+
- Update documentation to clarify assignee parameter format
|
|
210
|
+
|
|
211
|
+
3. **Update Documentation**
|
|
212
|
+
- Clarify that current implementation is optimized for Server/Data Center
|
|
213
|
+
- Document Cloud limitations
|
|
214
|
+
- Provide examples for both platforms
|
|
215
|
+
|
|
216
|
+
### Priority 2: Enhancement (Optional)
|
|
217
|
+
|
|
218
|
+
1. **Add User Search Tool**
|
|
219
|
+
```typescript
|
|
220
|
+
async searchUsers(query: string): Promise<User[]> {
|
|
221
|
+
const endpoint = this.isCloudInstance()
|
|
222
|
+
? '/rest/api/3/user/search'
|
|
223
|
+
: '/rest/api/2/user/search';
|
|
224
|
+
return this.http.get(endpoint, { params: { query } });
|
|
225
|
+
}
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
2. **Consider Cloud v3 API Support**
|
|
229
|
+
- Add optional v3 endpoint support for Cloud instances
|
|
230
|
+
- Maintain v2 backward compatibility
|
|
231
|
+
|
|
232
|
+
3. **Add Bulk Operations**
|
|
233
|
+
- Implement bulk update/transition endpoints
|
|
234
|
+
- Reduce API calls for batch operations
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## Conclusion
|
|
239
|
+
|
|
240
|
+
### Current Status: ✅ FULLY COMPATIBLE with Server/Data Center
|
|
241
|
+
|
|
242
|
+
The Jira implementation uses **current, non-obsolete APIs** for Jira Server/Data Center:
|
|
243
|
+
- ✅ `/rest/api/2/` is the correct version (not obsolete)
|
|
244
|
+
- ✅ `/rest/agile/1.0/` is the current Agile API version
|
|
245
|
+
- ✅ Field formats are correct for Server/Data Center
|
|
246
|
+
- ✅ Authentication methods are modern and secure
|
|
247
|
+
- ✅ Search implementation follows best practices
|
|
248
|
+
|
|
249
|
+
### Cloud Compatibility: ⚠️ LIMITED
|
|
250
|
+
|
|
251
|
+
The implementation has **limited Cloud support**:
|
|
252
|
+
- ❌ User field format incompatible (`name` vs `accountId`)
|
|
253
|
+
- ⚠️ Using v2 API instead of recommended v3 for Cloud
|
|
254
|
+
- ✅ Authentication works correctly
|
|
255
|
+
- ✅ Most read operations work correctly
|
|
256
|
+
|
|
257
|
+
### Final Recommendation
|
|
258
|
+
|
|
259
|
+
**If targeting Server/Data Center only**: ✅ **NO CHANGES NEEDED** - implementation is current and correct.
|
|
260
|
+
|
|
261
|
+
**If targeting both Cloud and Data Center**: ⚠️ **UPDATES REQUIRED**:
|
|
262
|
+
1. Implement Cloud detection
|
|
263
|
+
2. Fix user field formats
|
|
264
|
+
3. Add user search capability
|
|
265
|
+
4. Update documentation to clarify platform-specific behavior
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## References
|
|
270
|
+
|
|
271
|
+
- [Jira Data Center REST API v11.2.0](https://developer.atlassian.com/server/jira/platform/rest/v10000/)
|
|
272
|
+
- [Jira Cloud REST API v3](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/)
|
|
273
|
+
- [Jira Agile Data Center 9.17.0 REST API](https://docs.atlassian.com/jira-software/REST/9.17.0/)
|
|
274
|
+
- [Jira REST API Examples](https://developer.atlassian.com/server/jira/platform/jira-rest-api-examples/)
|
|
275
|
+
- [GDPR User API Migration](https://community.atlassian.com/t5/Jira-questions/What-value-should-be-used-in-assignee-filed-while-creating-issue/qaq-p/1352474)
|
package/README.md
CHANGED
|
@@ -17,10 +17,11 @@ npm install -g @crypto512/jicon-mcp
|
|
|
17
17
|
|
|
18
18
|
## What is Jicon?
|
|
19
19
|
|
|
20
|
-
Jicon is an MCP server that enables AI assistants like Claude to interact with your Jira and
|
|
20
|
+
Jicon is an MCP server that enables AI assistants like Claude to interact with your Jira, Confluence, and Tempo instances. It provides 39 powerful tools for:
|
|
21
21
|
|
|
22
22
|
- 🎫 **Jira**: Issue management, searching, project operations, Agile boards, sprints
|
|
23
23
|
- 📄 **Confluence**: Page management, content search, spaces, attachments, comments
|
|
24
|
+
- ⏱️ **Tempo**: Time tracking, worklog management, accounts, and teams
|
|
24
25
|
|
|
25
26
|
## Features at a Glance
|
|
26
27
|
|
|
@@ -38,6 +39,13 @@ Jicon is an MCP server that enables AI assistants like Claude to interact with y
|
|
|
38
39
|
- Manage attachments
|
|
39
40
|
- Add and view comments
|
|
40
41
|
|
|
42
|
+
### Tempo (11 Tools)
|
|
43
|
+
- Log and manage work time
|
|
44
|
+
- View and update worklogs
|
|
45
|
+
- Access accounts and teams
|
|
46
|
+
- Retrieve team worklogs
|
|
47
|
+
- Get user time tracking info
|
|
48
|
+
|
|
41
49
|
## Configuration
|
|
42
50
|
|
|
43
51
|
### Configuration with `.jicon.json` (Recommended)
|
|
@@ -79,13 +87,13 @@ Control which tools are allowed to execute:
|
|
|
79
87
|
```json
|
|
80
88
|
{ "permissions": { "mode": "full" } }
|
|
81
89
|
```
|
|
82
|
-
All
|
|
90
|
+
All 39 tools are available.
|
|
83
91
|
|
|
84
92
|
#### 2. **Read-Only Mode**
|
|
85
93
|
```json
|
|
86
94
|
{ "permissions": { "mode": "readonly" } }
|
|
87
95
|
```
|
|
88
|
-
Only read operations (
|
|
96
|
+
Only read operations (26 tools: 10 Jira + 8 Confluence + 8 Tempo).
|
|
89
97
|
|
|
90
98
|
#### 3. **Custom Mode** with Virtual Actions
|
|
91
99
|
|
|
@@ -98,23 +106,26 @@ Simplify configuration with **virtual actions** that group related tools:
|
|
|
98
106
|
- `confluence_read` - All 8 Confluence read tools
|
|
99
107
|
- `confluence_write` - All 5 Confluence write tools
|
|
100
108
|
- `confluence_all` - All 13 Confluence tools
|
|
109
|
+
- `tempo_read` - All 8 Tempo read tools
|
|
110
|
+
- `tempo_write` - All 3 Tempo write tools
|
|
111
|
+
- `tempo_all` - All 11 Tempo tools
|
|
101
112
|
|
|
102
|
-
**Example: Read-only access to
|
|
113
|
+
**Example: Read-only access to all services**
|
|
103
114
|
```json
|
|
104
115
|
{
|
|
105
116
|
"permissions": {
|
|
106
117
|
"mode": "custom",
|
|
107
|
-
"whitelist": ["jira_read", "confluence_read"]
|
|
118
|
+
"whitelist": ["jira_read", "confluence_read", "tempo_read"]
|
|
108
119
|
}
|
|
109
120
|
}
|
|
110
121
|
```
|
|
111
122
|
|
|
112
|
-
**Example: Full Jira + Confluence read-only**
|
|
123
|
+
**Example: Full Jira + Confluence read-only + Tempo time tracking**
|
|
113
124
|
```json
|
|
114
125
|
{
|
|
115
126
|
"permissions": {
|
|
116
127
|
"mode": "custom",
|
|
117
|
-
"whitelist": ["jira_all", "confluence_read"]
|
|
128
|
+
"whitelist": ["jira_all", "confluence_read", "tempo_all"]
|
|
118
129
|
}
|
|
119
130
|
}
|
|
120
131
|
```
|
|
@@ -128,7 +139,9 @@ Simplify configuration with **virtual actions** that group related tools:
|
|
|
128
139
|
"jira_search_issues",
|
|
129
140
|
"jira_get_issue",
|
|
130
141
|
"jira_create_issue",
|
|
131
|
-
"confluence_get_page"
|
|
142
|
+
"confluence_get_page",
|
|
143
|
+
"tempo_log_work",
|
|
144
|
+
"tempo_get_worklogs"
|
|
132
145
|
]
|
|
133
146
|
}
|
|
134
147
|
}
|
|
@@ -180,6 +193,9 @@ Once configured, you can ask Claude to:
|
|
|
180
193
|
- *"Show me the current sprint's progress"*
|
|
181
194
|
- *"Update the API documentation page in Confluence"*
|
|
182
195
|
- *"Search for pages about authentication in the DOCS space"*
|
|
196
|
+
- *"Log 4 hours of work on PROJ-123 for today"*
|
|
197
|
+
- *"Show me my worklogs for this week"*
|
|
198
|
+
- *"Get team worklogs for the development team"*
|
|
183
199
|
|
|
184
200
|
## Documentation
|
|
185
201
|
|
|
@@ -209,11 +225,20 @@ Once configured, you can ask Claude to:
|
|
|
209
225
|
| **Collaboration** | `confluence_add_comment`, `confluence_get_comments` |
|
|
210
226
|
| **Attachments** | `confluence_upload_attachment`, `confluence_list_attachments` |
|
|
211
227
|
|
|
228
|
+
### Tempo Tools
|
|
229
|
+
| Category | Tools |
|
|
230
|
+
|----------|-------|
|
|
231
|
+
| **Worklog Management** | `tempo_get_worklogs`, `tempo_get_worklog`, `tempo_log_work`, `tempo_update_worklog`, `tempo_delete_worklog` |
|
|
232
|
+
| **Team Tracking** | `tempo_get_team_worklogs`, `tempo_get_teams`, `tempo_get_team` |
|
|
233
|
+
| **Accounts** | `tempo_get_accounts`, `tempo_get_account` |
|
|
234
|
+
| **User Info** | `tempo_get_user_info` |
|
|
235
|
+
|
|
212
236
|
## Requirements
|
|
213
237
|
|
|
214
238
|
- Node.js 18 or higher
|
|
215
239
|
- Jira Server/Data Center or Jira Cloud instance
|
|
216
|
-
- Confluence Server/Data Center or Confluence Cloud instance
|
|
240
|
+
- Confluence Server/Data Center or Confluence Cloud instance (optional)
|
|
241
|
+
- Tempo Timesheets instance (optional)
|
|
217
242
|
- Valid API tokens or Personal Access Tokens
|
|
218
243
|
|
|
219
244
|
## Authentication
|
|
@@ -241,7 +266,7 @@ Generate a Personal Access Token (PAT):
|
|
|
241
266
|
## Development Status
|
|
242
267
|
|
|
243
268
|
- ✅ **Specification Complete** - Functional spec and tool list defined
|
|
244
|
-
- ✅ **Implementation Complete** - All
|
|
269
|
+
- ✅ **Implementation Complete** - All 39 tools implemented
|
|
245
270
|
- ✅ **Testing** - 86 tests passing
|
|
246
271
|
- ✅ **Configuration System** - Flexible .jicon.json with permissions
|
|
247
272
|
- 📦 **Publishing** - Ready for npm publish
|
|
@@ -250,13 +275,14 @@ Generate a Personal Access Token (PAT):
|
|
|
250
275
|
|
|
251
276
|
### Phase 1: Core Implementation ✅ **COMPLETED**
|
|
252
277
|
- ✅ Project setup and structure
|
|
253
|
-
- ✅ Jira API client implementation (
|
|
254
|
-
- ✅ Confluence API client implementation (
|
|
255
|
-
- ✅
|
|
278
|
+
- ✅ Jira API client implementation (15 tools)
|
|
279
|
+
- ✅ Confluence API client implementation (13 tools)
|
|
280
|
+
- ✅ Tempo API client implementation (11 tools)
|
|
281
|
+
- ✅ MCP server implementation
|
|
256
282
|
- ✅ Basic testing (86 tests, 100% pass rate)
|
|
257
283
|
- ✅ Configuration system (.jicon.json with hierarchy)
|
|
258
284
|
- ✅ Permission system (full, readonly, custom modes)
|
|
259
|
-
- ✅ Virtual actions (jira_read, jira_all, confluence_read, etc.)
|
|
285
|
+
- ✅ Virtual actions (jira_read, jira_all, confluence_read, tempo_all, etc.)
|
|
260
286
|
- ✅ Development and contributing guides
|
|
261
287
|
|
|
262
288
|
### Phase 2: Enhancement (In Progress)
|
|
@@ -297,4 +323,4 @@ MIT License - see [LICENSE](LICENSE) file for details.
|
|
|
297
323
|
|
|
298
324
|
---
|
|
299
325
|
|
|
300
|
-
**Made with ❤️ for developers who work with Jira and
|
|
326
|
+
**Made with ❤️ for developers who work with Jira, Confluence, and Tempo**
|
package/TOOL_LIST.md
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
# Jira &
|
|
1
|
+
# Jira, Confluence & Tempo MCP Server - Tool List
|
|
2
2
|
|
|
3
3
|
## Overview
|
|
4
|
-
This document provides a comprehensive reference of all available tools in the Jira and
|
|
4
|
+
This document provides a comprehensive reference of all available tools in the Jira, Confluence, and Tempo MCP server.
|
|
5
5
|
|
|
6
6
|
## Summary
|
|
7
7
|
|
|
8
|
-
**Total Tools**:
|
|
8
|
+
**Total Tools**: 39
|
|
9
9
|
- **Jira Tools**: 15
|
|
10
10
|
- **Confluence Tools**: 13
|
|
11
|
+
- **Tempo Tools**: 11
|
|
12
|
+
|
|
13
|
+
**Note**: Detailed documentation for Tempo tools is available in the source code at `src/tempo/tools.ts`. Tempo provides time tracking, worklog management, team tracking, and account management capabilities.
|
|
11
14
|
|
|
12
15
|
---
|
|
13
16
|
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* Jira and
|
|
3
|
+
* Jira, Confluence, and Tempo MCP Server
|
|
4
4
|
*/
|
|
5
5
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
6
6
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
@@ -25,8 +25,8 @@ const jiraClient = JIRA_CONFIG ? new JiraClient(JIRA_CONFIG) : null;
|
|
|
25
25
|
const confluenceClient = CONFLUENCE_CONFIG
|
|
26
26
|
? new ConfluenceClient(CONFLUENCE_CONFIG)
|
|
27
27
|
: null;
|
|
28
|
-
// Tempo uses the same Jira configuration and authentication
|
|
29
|
-
const tempoClient = JIRA_CONFIG ? new TempoClient(JIRA_CONFIG
|
|
28
|
+
// Tempo uses the same Jira configuration and authentication (v4 API)
|
|
29
|
+
const tempoClient = JIRA_CONFIG ? new TempoClient(JIRA_CONFIG) : null;
|
|
30
30
|
// Create tools
|
|
31
31
|
const jiraTools = jiraClient ? createJiraTools(jiraClient) : {};
|
|
32
32
|
const confluenceTools = confluenceClient
|
|
@@ -140,7 +140,7 @@ async function main() {
|
|
|
140
140
|
console.error("Jicon MCP Server starting...");
|
|
141
141
|
if (JIRA_CONFIG) {
|
|
142
142
|
console.error(`✓ Jira configured: ${JIRA_CONFIG.url}`);
|
|
143
|
-
console.error(`✓ Tempo configured: ${JIRA_CONFIG.url} (using Jira auth)`);
|
|
143
|
+
console.error(`✓ Tempo configured: ${JIRA_CONFIG.url} (v4 API, using Jira auth)`);
|
|
144
144
|
}
|
|
145
145
|
if (CONFLUENCE_CONFIG) {
|
|
146
146
|
console.error(`✓ Confluence configured: ${CONFLUENCE_CONFIG.url}`);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EAErB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAY3D,qBAAqB;AACrB,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;AAEnC,sDAAsD;AACtD,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAElE,8BAA8B;AAC9B,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC1D,MAAM,iBAAiB,GAAG,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAEtE,qBAAqB;AACrB,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACpE,MAAM,gBAAgB,GAAG,iBAAiB;IACxC,CAAC,CAAC,IAAI,gBAAgB,CAAC,iBAAiB,CAAC;IACzC,CAAC,CAAC,IAAI,CAAC;AACT,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tempo/client.d.ts
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tempo API Client
|
|
3
|
-
* Uses Tempo
|
|
3
|
+
* Uses Tempo v4 API
|
|
4
|
+
*
|
|
5
|
+
* The v4 API requires issueId and projectId (integers) instead of keys.
|
|
6
|
+
* This client automatically converts user-friendly keys to numeric IDs.
|
|
4
7
|
*/
|
|
5
8
|
import type { ApiConfig } from "../types.js";
|
|
6
9
|
import type { TempoWorklog, TempoWorklogInput, TempoWorklogSearchResult, TempoAccount, TempoTeam } from "./types.js";
|
|
7
10
|
export declare class TempoClient {
|
|
8
11
|
private http;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
constructor(config: ApiConfig);
|
|
13
|
+
private resolveIssueId;
|
|
14
|
+
private resolveProjectId;
|
|
15
|
+
getWorklogs(dateFrom?: string, dateTo?: string, projectKey?: string, issueKey?: string, workerKey?: string): Promise<TempoWorklogSearchResult>;
|
|
12
16
|
getWorklog(worklogId: number): Promise<TempoWorklog>;
|
|
13
17
|
logWork(worklogData: TempoWorklogInput): Promise<TempoWorklog>;
|
|
14
18
|
updateWorklog(worklogId: number, worklogData: Partial<TempoWorklogInput>): Promise<TempoWorklog>;
|
|
@@ -27,6 +31,8 @@ export declare class TempoClient {
|
|
|
27
31
|
getCurrentUser(): Promise<{
|
|
28
32
|
accountId: string;
|
|
29
33
|
displayName: string;
|
|
34
|
+
key: string;
|
|
35
|
+
name: string;
|
|
30
36
|
}>;
|
|
31
37
|
}
|
|
32
38
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/tempo/client.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/tempo/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,wBAAwB,EACxB,YAAY,EACZ,SAAS,EACV,MAAM,YAAY,CAAC;AAEpB,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAAa;gBAEb,MAAM,EAAE,SAAS;YAKf,cAAc;YAKd,gBAAgB;IAMxB,WAAW,CACf,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,wBAAwB,CAAC;IAyE9B,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAMpD,OAAO,CAAC,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;IAiC9D,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACtC,OAAO,CAAC,YAAY,CAAC;IAgClB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/C,WAAW,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAQtC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAMrD,aAAa,CAAC,WAAW,EAAE;QAC/B,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;KAC5B,GAAG,OAAO,CAAC,YAAY,CAAC;IAQnB,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAQhC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAI3C,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,wBAAwB,CAAC;IA4B9B,cAAc,IAAI,OAAO,CAAC;QAC9B,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CAUH"}
|
package/dist/tempo/client.js
CHANGED
|
@@ -1,31 +1,48 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tempo API Client
|
|
3
|
-
* Uses Tempo
|
|
3
|
+
* Uses Tempo v4 API
|
|
4
|
+
*
|
|
5
|
+
* The v4 API requires issueId and projectId (integers) instead of keys.
|
|
6
|
+
* This client automatically converts user-friendly keys to numeric IDs.
|
|
4
7
|
*/
|
|
5
8
|
import { HttpClient } from "../utils/http-client.js";
|
|
6
9
|
export class TempoClient {
|
|
7
10
|
http;
|
|
8
|
-
|
|
9
|
-
constructor(config, apiVersion = "3") {
|
|
11
|
+
constructor(config) {
|
|
10
12
|
this.http = new HttpClient(config);
|
|
11
|
-
|
|
13
|
+
}
|
|
14
|
+
// Helper methods to resolve keys to IDs for v4 API
|
|
15
|
+
async resolveIssueId(issueKey) {
|
|
16
|
+
const issue = await this.http.get(`/rest/api/2/issue/${issueKey}?fields=id`);
|
|
17
|
+
return parseInt(issue.id, 10);
|
|
18
|
+
}
|
|
19
|
+
async resolveProjectId(projectKey) {
|
|
20
|
+
const project = await this.http.get(`/rest/api/2/project/${projectKey}`);
|
|
21
|
+
return parseInt(project.id, 10);
|
|
12
22
|
}
|
|
13
23
|
// Worklog operations
|
|
14
|
-
async getWorklogs(dateFrom, dateTo, projectKey, issueKey, accountId
|
|
15
|
-
|
|
24
|
+
async getWorklogs(dateFrom, dateTo, projectKey, issueKey, workerKey // Changed from accountId to workerKey
|
|
25
|
+
) {
|
|
26
|
+
// v4 API uses POST /worklogs/search instead of GET /worklogs
|
|
27
|
+
const searchParams = {};
|
|
16
28
|
if (dateFrom)
|
|
17
|
-
|
|
29
|
+
searchParams.from = dateFrom;
|
|
18
30
|
if (dateTo)
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
31
|
+
searchParams.to = dateTo;
|
|
32
|
+
// v4 API requires issueId and projectId (integers) as arrays
|
|
33
|
+
if (projectKey) {
|
|
34
|
+
const projectId = await this.resolveProjectId(projectKey);
|
|
35
|
+
searchParams.projectId = [projectId]; // Must be array!
|
|
36
|
+
}
|
|
37
|
+
if (issueKey) {
|
|
38
|
+
const issueId = await this.resolveIssueId(issueKey);
|
|
39
|
+
searchParams.taskId = [issueId]; // Must be array!
|
|
40
|
+
}
|
|
41
|
+
// v4 API expects workerKey (username), not accountId
|
|
42
|
+
if (workerKey) {
|
|
43
|
+
searchParams.worker = [workerKey]; // Must be array of user keys
|
|
44
|
+
}
|
|
45
|
+
const response = await this.http.post("/rest/tempo-timesheets/4/worklogs/search", searchParams);
|
|
29
46
|
// Defensive handling of response format
|
|
30
47
|
// Official API should return: { self, metadata: { count, offset, limit }, results: [] }
|
|
31
48
|
// Handle direct array (shouldn't happen but be defensive)
|
|
@@ -66,16 +83,63 @@ export class TempoClient {
|
|
|
66
83
|
throw new Error(`Unexpected Tempo API response format. Expected object with 'results' array, got: ${JSON.stringify(response).substring(0, 200)}`);
|
|
67
84
|
}
|
|
68
85
|
async getWorklog(worklogId) {
|
|
69
|
-
return this.http.get(`/rest/tempo-timesheets
|
|
86
|
+
return this.http.get(`/rest/tempo-timesheets/4/worklogs/${worklogId}`);
|
|
70
87
|
}
|
|
71
88
|
async logWork(worklogData) {
|
|
72
|
-
|
|
89
|
+
// v4 API uses different field names than v3
|
|
90
|
+
// - startDate → started
|
|
91
|
+
// - issueKey → originTaskId (can be key or ID)
|
|
92
|
+
// - description → comment
|
|
93
|
+
const requestBody = {
|
|
94
|
+
originTaskId: worklogData.issueKey, // v4 accepts both key and ID
|
|
95
|
+
timeSpentSeconds: worklogData.timeSpentSeconds,
|
|
96
|
+
started: worklogData.startDate, // v4 uses 'started' not 'startDate'
|
|
97
|
+
};
|
|
98
|
+
if (worklogData.description) {
|
|
99
|
+
requestBody.comment = worklogData.description;
|
|
100
|
+
}
|
|
101
|
+
if (worklogData.billableSeconds !== undefined) {
|
|
102
|
+
requestBody.billableSeconds = worklogData.billableSeconds;
|
|
103
|
+
}
|
|
104
|
+
if (worklogData.remainingEstimateSeconds !== undefined) {
|
|
105
|
+
requestBody.remainingEstimate = worklogData.remainingEstimateSeconds;
|
|
106
|
+
}
|
|
107
|
+
if (worklogData.authorAccountId) {
|
|
108
|
+
requestBody.worker = worklogData.authorAccountId;
|
|
109
|
+
}
|
|
110
|
+
if (worklogData.attributes) {
|
|
111
|
+
requestBody.attributes = worklogData.attributes;
|
|
112
|
+
}
|
|
113
|
+
return this.http.post(`/rest/tempo-timesheets/4/worklogs`, requestBody);
|
|
73
114
|
}
|
|
74
115
|
async updateWorklog(worklogId, worklogData) {
|
|
75
|
-
|
|
116
|
+
// v4 API uses different field names
|
|
117
|
+
const requestBody = {};
|
|
118
|
+
if (worklogData.issueKey) {
|
|
119
|
+
requestBody.originTaskId = worklogData.issueKey;
|
|
120
|
+
}
|
|
121
|
+
if (worklogData.timeSpentSeconds !== undefined) {
|
|
122
|
+
requestBody.timeSpentSeconds = worklogData.timeSpentSeconds;
|
|
123
|
+
}
|
|
124
|
+
if (worklogData.startDate) {
|
|
125
|
+
requestBody.started = worklogData.startDate;
|
|
126
|
+
}
|
|
127
|
+
if (worklogData.description) {
|
|
128
|
+
requestBody.comment = worklogData.description;
|
|
129
|
+
}
|
|
130
|
+
if (worklogData.billableSeconds !== undefined) {
|
|
131
|
+
requestBody.billableSeconds = worklogData.billableSeconds;
|
|
132
|
+
}
|
|
133
|
+
if (worklogData.remainingEstimateSeconds !== undefined) {
|
|
134
|
+
requestBody.remainingEstimate = worklogData.remainingEstimateSeconds;
|
|
135
|
+
}
|
|
136
|
+
if (worklogData.attributes) {
|
|
137
|
+
requestBody.attributes = worklogData.attributes;
|
|
138
|
+
}
|
|
139
|
+
return this.http.put(`/rest/tempo-timesheets/4/worklogs/${worklogId}`, requestBody);
|
|
76
140
|
}
|
|
77
141
|
async deleteWorklog(worklogId) {
|
|
78
|
-
await this.http.delete(`/rest/tempo-timesheets
|
|
142
|
+
await this.http.delete(`/rest/tempo-timesheets/4/worklogs/${worklogId}`);
|
|
79
143
|
}
|
|
80
144
|
// Account operations
|
|
81
145
|
async getAccounts() {
|
|
@@ -84,7 +148,7 @@ export class TempoClient {
|
|
|
84
148
|
return Array.isArray(response) ? response : [];
|
|
85
149
|
}
|
|
86
150
|
async getAccount(accountKey) {
|
|
87
|
-
return this.http.get(`/rest/tempo-accounts/1/account/${accountKey}`);
|
|
151
|
+
return this.http.get(`/rest/tempo-accounts/1/account/key/${accountKey}`);
|
|
88
152
|
}
|
|
89
153
|
async createAccount(accountData) {
|
|
90
154
|
return this.http.post("/rest/tempo-accounts/1/account", accountData);
|
|
@@ -92,11 +156,11 @@ export class TempoClient {
|
|
|
92
156
|
// Team operations
|
|
93
157
|
async getTeams() {
|
|
94
158
|
// API returns array directly, not wrapped object
|
|
95
|
-
const response = await this.http.get("/rest/tempo-teams/
|
|
159
|
+
const response = await this.http.get("/rest/tempo-teams/2/team");
|
|
96
160
|
return Array.isArray(response) ? response : [];
|
|
97
161
|
}
|
|
98
162
|
async getTeam(teamId) {
|
|
99
|
-
return this.http.get(`/rest/tempo-teams/
|
|
163
|
+
return this.http.get(`/rest/tempo-teams/2/team/${teamId}`);
|
|
100
164
|
}
|
|
101
165
|
async getTeamWorklogs(teamId, dateFrom, dateTo) {
|
|
102
166
|
const team = await this.getTeam(teamId);
|
|
@@ -119,7 +183,13 @@ export class TempoClient {
|
|
|
119
183
|
// User operations
|
|
120
184
|
async getCurrentUser() {
|
|
121
185
|
// Use Jira's myself endpoint since Tempo doesn't have its own
|
|
122
|
-
|
|
186
|
+
const user = await this.http.get("/rest/api/2/myself");
|
|
187
|
+
return {
|
|
188
|
+
accountId: user.accountId,
|
|
189
|
+
displayName: user.displayName,
|
|
190
|
+
key: user.key || user.name, // User key (workerKey for Tempo)
|
|
191
|
+
name: user.name, // Username
|
|
192
|
+
};
|
|
123
193
|
}
|
|
124
194
|
}
|
|
125
195
|
//# sourceMappingURL=client.js.map
|
package/dist/tempo/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/tempo/client.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/tempo/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../src/tempo/formatters.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,wBAAwB,EACxB,YAAY,EACZ,SAAS,EACV,MAAM,YAAY,CAAC;AAkBpB;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../src/tempo/formatters.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,wBAAwB,EACxB,YAAY,EACZ,SAAS,EACV,MAAM,YAAY,CAAC;AAkBpB;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CA2C3D;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,wBAAwB,GAC/B,MAAM,CAyER;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAwB3D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,CAqB/D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAoClD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,CAoBtD"}
|
package/dist/tempo/formatters.js
CHANGED
|
@@ -30,11 +30,15 @@ export function formatWorklog(worklog) {
|
|
|
30
30
|
lines.push(`- **Time Spent**: ${formatTimeSpent(worklog.timeSpentSeconds)}`);
|
|
31
31
|
lines.push(`- **Billable**: ${formatTimeSpent(worklog.billableSeconds || 0)}`);
|
|
32
32
|
lines.push(`- **Date**: ${worklog.startDate}`);
|
|
33
|
-
|
|
34
|
-
if (worklog.
|
|
33
|
+
// v4 API uses workerKey (string) instead of author object
|
|
34
|
+
if (worklog.workerKey) {
|
|
35
|
+
lines.push(`- **Worker**: ${worklog.workerKey}`);
|
|
36
|
+
}
|
|
37
|
+
// v4 uses 'comment' field instead of 'description'
|
|
38
|
+
if (worklog.comment) {
|
|
35
39
|
lines.push("");
|
|
36
|
-
lines.push("##
|
|
37
|
-
lines.push(worklog.
|
|
40
|
+
lines.push("## Comment");
|
|
41
|
+
lines.push(worklog.comment);
|
|
38
42
|
}
|
|
39
43
|
if (worklog.attributes && worklog.attributes.length > 0) {
|
|
40
44
|
lines.push("");
|
|
@@ -43,6 +47,13 @@ export function formatWorklog(worklog) {
|
|
|
43
47
|
lines.push(`- **${attr.key}**: ${attr.value}`);
|
|
44
48
|
});
|
|
45
49
|
}
|
|
50
|
+
lines.push("");
|
|
51
|
+
lines.push("## Metadata");
|
|
52
|
+
lines.push(`- **Created**: ${worklog.dateCreated}`);
|
|
53
|
+
lines.push(`- **Updated**: ${worklog.dateUpdated}`);
|
|
54
|
+
if (worklog.updaterKey) {
|
|
55
|
+
lines.push(`- **Last Updated By**: ${worklog.updaterKey}`);
|
|
56
|
+
}
|
|
46
57
|
return lines.join("\n");
|
|
47
58
|
}
|
|
48
59
|
/**
|
|
@@ -82,12 +93,15 @@ export function formatWorklogSearchResults(result) {
|
|
|
82
93
|
lines.push(`## ${date} (${formatTimeSpent(dayTotal)})`);
|
|
83
94
|
lines.push("");
|
|
84
95
|
worklogs.forEach((wl) => {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
96
|
+
// v4 API uses workerKey (string) instead of author object
|
|
97
|
+
const workerName = wl.workerKey || 'Unknown';
|
|
98
|
+
lines.push(`- **${wl.issue.key}** - ${formatTimeSpent(wl.timeSpentSeconds)} - ${workerName}`);
|
|
99
|
+
// v4 uses 'comment' field instead of 'description'
|
|
100
|
+
if (wl.comment) {
|
|
101
|
+
const shortComment = wl.comment.length > 80
|
|
102
|
+
? wl.comment.substring(0, 80) + "..."
|
|
103
|
+
: wl.comment;
|
|
104
|
+
lines.push(` ${shortComment}`);
|
|
91
105
|
}
|
|
92
106
|
});
|
|
93
107
|
lines.push("");
|
|
@@ -104,10 +118,19 @@ export function formatAccount(account) {
|
|
|
104
118
|
lines.push("## Details");
|
|
105
119
|
lines.push(`- **Key**: ${account.key}`);
|
|
106
120
|
lines.push(`- **Status**: ${account.status}`);
|
|
107
|
-
|
|
108
|
-
if (account.
|
|
121
|
+
// Defensive: lead might be missing or incomplete
|
|
122
|
+
if (account.lead?.displayName) {
|
|
123
|
+
lines.push(`- **Lead**: ${account.lead.displayName}`);
|
|
124
|
+
}
|
|
125
|
+
else if (account.lead?.accountId) {
|
|
126
|
+
lines.push(`- **Lead**: ${account.lead.accountId}`);
|
|
127
|
+
}
|
|
128
|
+
if (account.contact?.displayName) {
|
|
109
129
|
lines.push(`- **Contact**: ${account.contact.displayName}`);
|
|
110
130
|
}
|
|
131
|
+
else if (account.contact?.accountId) {
|
|
132
|
+
lines.push(`- **Contact**: ${account.contact.accountId}`);
|
|
133
|
+
}
|
|
111
134
|
return lines.join("\n");
|
|
112
135
|
}
|
|
113
136
|
/**
|
|
@@ -122,8 +145,9 @@ export function formatAccounts(accounts) {
|
|
|
122
145
|
return lines.join("\n");
|
|
123
146
|
}
|
|
124
147
|
accounts.forEach((account) => {
|
|
148
|
+
const leadName = account.lead?.displayName || account.lead?.accountId || 'Unknown';
|
|
125
149
|
lines.push(`## ${account.key}: ${account.name} (${account.status.toLowerCase()})`);
|
|
126
|
-
lines.push(` Lead: ${
|
|
150
|
+
lines.push(` Lead: ${leadName}`);
|
|
127
151
|
lines.push("");
|
|
128
152
|
});
|
|
129
153
|
return lines.join("\n");
|
|
@@ -137,18 +161,29 @@ export function formatTeam(team) {
|
|
|
137
161
|
lines.push("");
|
|
138
162
|
lines.push("## Details");
|
|
139
163
|
lines.push(`- **Team ID**: ${team.id}`);
|
|
140
|
-
|
|
141
|
-
|
|
164
|
+
// Defensive: lead might be missing or incomplete
|
|
165
|
+
if (team.lead?.displayName) {
|
|
166
|
+
lines.push(`- **Lead**: ${team.lead.displayName}`);
|
|
167
|
+
}
|
|
168
|
+
else if (team.lead?.accountId) {
|
|
169
|
+
lines.push(`- **Lead**: ${team.lead.accountId}`);
|
|
170
|
+
}
|
|
171
|
+
// Defensive: members might be undefined or not an array
|
|
172
|
+
const memberCount = Array.isArray(team.members) ? team.members.length : 0;
|
|
173
|
+
lines.push(`- **Members**: ${memberCount}`);
|
|
142
174
|
if (team.summary) {
|
|
143
175
|
lines.push("");
|
|
144
176
|
lines.push("## Summary");
|
|
145
177
|
lines.push(team.summary);
|
|
146
178
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
179
|
+
if (Array.isArray(team.members) && team.members.length > 0) {
|
|
180
|
+
lines.push("");
|
|
181
|
+
lines.push("## Team Members");
|
|
182
|
+
team.members.forEach((member) => {
|
|
183
|
+
const memberName = member?.displayName || member?.accountId || 'Unknown';
|
|
184
|
+
lines.push(`- ${memberName}`);
|
|
185
|
+
});
|
|
186
|
+
}
|
|
152
187
|
return lines.join("\n");
|
|
153
188
|
}
|
|
154
189
|
/**
|
|
@@ -163,8 +198,10 @@ export function formatTeams(teams) {
|
|
|
163
198
|
return lines.join("\n");
|
|
164
199
|
}
|
|
165
200
|
teams.forEach((team) => {
|
|
201
|
+
const leadName = team.lead?.displayName || team.lead?.accountId || 'Unknown';
|
|
202
|
+
const memberCount = Array.isArray(team.members) ? team.members.length : 0;
|
|
166
203
|
lines.push(`## ${team.name}`);
|
|
167
|
-
lines.push(` Lead: ${
|
|
204
|
+
lines.push(` Lead: ${leadName} | Members: ${memberCount}`);
|
|
168
205
|
lines.push("");
|
|
169
206
|
});
|
|
170
207
|
return lines.join("\n");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/tempo/formatters.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH;;GAEG;AACH,SAAS,eAAe,CAAC,OAAe;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAElD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,OAAO,GAAG,OAAO,GAAG,CAAC;IACvB,CAAC;SAAM,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,GAAG,KAAK,GAAG,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,KAAK,KAAK,OAAO,GAAG,CAAC;IACjC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAqB;IACjD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IACnD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,qBAAqB,eAAe,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAC7E,KAAK,CAAC,IAAI,CACR,mBAAmB,eAAe,CAAC,OAAO,CAAC,eAAe,IAAI,CAAC,CAAC,EAAE,CACnE,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/tempo/formatters.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH;;GAEG;AACH,SAAS,eAAe,CAAC,OAAe;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAElD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,OAAO,GAAG,OAAO,GAAG,CAAC;IACvB,CAAC;SAAM,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,GAAG,KAAK,GAAG,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,KAAK,KAAK,OAAO,GAAG,CAAC;IACjC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAqB;IACjD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IACnD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,qBAAqB,eAAe,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAC7E,KAAK,CAAC,IAAI,CACR,mBAAmB,eAAe,CAAC,OAAO,CAAC,eAAe,IAAI,CAAC,CAAC,EAAE,CACnE,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAE/C,0DAA0D;IAC1D,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,mDAAmD;IACnD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5B,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAClC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1B,KAAK,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACpD,KAAK,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACpD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,0BAA0B,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CACxC,MAAgC;IAEhC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,oCAAoC;IACpC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;IAE9D,KAAK,CAAC,IAAI,CACR,eAAe,KAAK,mBAAmB,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAChE,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,mBAAmB;IACnB,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CACxC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,gBAAgB,EACtC,CAAC,CACF,CAAC;IACF,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,eAAe,IAAI,CAAC,CAAC,EAC5C,CAAC,CACF,CAAC;IAEF,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,qBAAqB,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACjE,KAAK,CAAC,IAAI,CAAC,yBAAyB,eAAe,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACtE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,CAAC,IAAI,CACR,0EAA0E,CAC3E,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,gBAAgB;IAChB,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAC;IACjD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;QAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,wBAAwB;IACxB,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IAE/D,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;QAE5E,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YACtB,0DAA0D;YAC1D,MAAM,UAAU,GAAG,EAAE,CAAC,SAAS,IAAI,SAAS,CAAC;YAC7C,KAAK,CAAC,IAAI,CACR,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,QAAQ,eAAe,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,UAAU,EAAE,CAClF,CAAC;YACF,mDAAmD;YACnD,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBACf,MAAM,YAAY,GAChB,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE;oBACpB,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;oBACrC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC;gBACjB,KAAK,CAAC,IAAI,CAAC,KAAK,YAAY,EAAE,CAAC,CAAC;YAClC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAqB;IACjD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE9C,iDAAiD;IACjD,IAAI,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACxD,CAAC;SAAM,IAAI,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9D,CAAC;SAAM,IAAI,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,QAAwB;IACrD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,qBAAqB,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IACpD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,SAAS,IAAI,SAAS,CAAC;QACnF,KAAK,CAAC,IAAI,CACR,MAAM,OAAO,CAAC,GAAG,KAAK,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CACvE,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAe;IACxC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAExC,iDAAiD;IACjD,IAAI,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACrD,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,wDAAwD;IACxD,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,KAAK,CAAC,IAAI,CAAC,kBAAkB,WAAW,EAAE,CAAC,CAAC;IAE5C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC9B,MAAM,UAAU,GAAG,MAAM,EAAE,WAAW,IAAI,MAAM,EAAE,SAAS,IAAI,SAAS,CAAC;YACzE,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAkB;IAC5C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,IAAI,SAAS,CAAC;QAC7E,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,YAAY,QAAQ,eAAe,WAAW,EAAE,CAAC,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
package/dist/tempo/tools.d.ts
CHANGED
|
@@ -12,26 +12,26 @@ export declare function createTempoTools(client: TempoClient): {
|
|
|
12
12
|
dateTo: z.ZodOptional<z.ZodString>;
|
|
13
13
|
projectKey: z.ZodOptional<z.ZodString>;
|
|
14
14
|
issueKey: z.ZodOptional<z.ZodString>;
|
|
15
|
-
|
|
15
|
+
workerKey: z.ZodOptional<z.ZodString>;
|
|
16
16
|
}, "strip", z.ZodTypeAny, {
|
|
17
|
-
projectKey?: string | undefined;
|
|
18
17
|
issueKey?: string | undefined;
|
|
18
|
+
projectKey?: string | undefined;
|
|
19
19
|
dateFrom?: string | undefined;
|
|
20
20
|
dateTo?: string | undefined;
|
|
21
|
-
|
|
21
|
+
workerKey?: string | undefined;
|
|
22
22
|
}, {
|
|
23
|
-
projectKey?: string | undefined;
|
|
24
23
|
issueKey?: string | undefined;
|
|
24
|
+
projectKey?: string | undefined;
|
|
25
25
|
dateFrom?: string | undefined;
|
|
26
26
|
dateTo?: string | undefined;
|
|
27
|
-
|
|
27
|
+
workerKey?: string | undefined;
|
|
28
28
|
}>;
|
|
29
29
|
handler: (args: {
|
|
30
30
|
dateFrom?: string;
|
|
31
31
|
dateTo?: string;
|
|
32
32
|
projectKey?: string;
|
|
33
33
|
issueKey?: string;
|
|
34
|
-
|
|
34
|
+
workerKey?: string;
|
|
35
35
|
}) => Promise<ToolResult>;
|
|
36
36
|
};
|
|
37
37
|
tempo_get_worklog: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/tempo/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAc1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;wBAwDxB;YACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBA8BD;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;wBAwE3C;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,sBAAsB,CAAC,EAAE,MAAM,CAAC;SACjC,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;wBAsCD;YACpB,SAAS,EAAE,MAAM,CAAC;YAClB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,IAAI,CAAC,EAAE,MAAM,CAAC;SACf,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBAqCD;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;uBA4B9C,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBAwBhB;YAAE,UAAU,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;uBA+B/C,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBAwBhB;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;wBAoCxC;YACpB,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,MAAM,CAAC;YACjB,MAAM,EAAE,MAAM,CAAC;SAChB,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/tempo/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAc1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;wBAwDxB;YACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBA8BD;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;wBAwE3C;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,sBAAsB,CAAC,EAAE,MAAM,CAAC;SACjC,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;wBAsCD;YACpB,SAAS,EAAE,MAAM,CAAC;YAClB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,IAAI,CAAC,EAAE,MAAM,CAAC;SACf,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBAqCD;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;uBA4B9C,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBAwBhB;YAAE,UAAU,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;uBA+B/C,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBAwBhB;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;wBAoCxC;YACpB,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,MAAM,CAAC;YACjB,MAAM,EAAE,MAAM,CAAC;SAChB,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;uBAiCJ,OAAO,CAAC,UAAU,CAAC;;EAkB3C"}
|
package/dist/tempo/tools.js
CHANGED
|
@@ -12,23 +12,22 @@ export function createTempoTools(client) {
|
|
|
12
12
|
Top 10 Useful Examples:
|
|
13
13
|
|
|
14
14
|
1. My worklogs for today:
|
|
15
|
-
dateFrom: "2025-11-07", dateTo: "2025-11-07"
|
|
16
|
-
(Leave accountId empty to get your own)
|
|
15
|
+
dateFrom: "2025-11-07", dateTo: "2025-11-07", workerKey: "your-username"
|
|
17
16
|
|
|
18
17
|
2. My worklogs this week:
|
|
19
|
-
dateFrom: "2025-11-04", dateTo: "2025-11-10"
|
|
18
|
+
dateFrom: "2025-11-04", dateTo: "2025-11-10", workerKey: "your-username"
|
|
20
19
|
|
|
21
20
|
3. My worklogs this month:
|
|
22
|
-
dateFrom: "2025-11-01", dateTo: "2025-11-30"
|
|
21
|
+
dateFrom: "2025-11-01", dateTo: "2025-11-30", workerKey: "your-username"
|
|
23
22
|
|
|
24
23
|
4. Team member's worklogs:
|
|
25
|
-
dateFrom: "2025-11-01", dateTo: "2025-11-07",
|
|
24
|
+
dateFrom: "2025-11-01", dateTo: "2025-11-07", workerKey: "teammate-username"
|
|
26
25
|
|
|
27
26
|
5. All worklogs for a project:
|
|
28
27
|
dateFrom: "2025-11-01", dateTo: "2025-11-30", projectKey: "PROJ"
|
|
29
28
|
|
|
30
29
|
6. Worklogs for specific issue:
|
|
31
|
-
issueKey: "PROJ-123"
|
|
30
|
+
issueKey: "PROJ-123", dateFrom: "2025-11-01", dateTo: "2025-11-30"
|
|
32
31
|
|
|
33
32
|
7. Last 7 days worklogs:
|
|
34
33
|
dateFrom: "2025-10-31", dateTo: "2025-11-07"
|
|
@@ -39,11 +38,12 @@ Top 10 Useful Examples:
|
|
|
39
38
|
9. Last month worklogs:
|
|
40
39
|
dateFrom: "2025-10-01", dateTo: "2025-10-31"
|
|
41
40
|
|
|
42
|
-
10. Specific date range for project:
|
|
43
|
-
dateFrom: "2025-11-01", dateTo: "2025-11-15", projectKey: "MESH"
|
|
41
|
+
10. Specific date range for project and user:
|
|
42
|
+
dateFrom: "2025-11-01", dateTo: "2025-11-15", projectKey: "MESH", workerKey: "your-username"
|
|
44
43
|
|
|
45
44
|
Date Format: YYYY-MM-DD
|
|
46
|
-
Note: Use tempo_get_user_info first to get
|
|
45
|
+
Note: Use tempo_get_user_info first to get your workerKey (username)
|
|
46
|
+
IMPORTANT: If no workerKey is provided, returns ALL worklogs (not just yours)!`,
|
|
47
47
|
inputSchema: z.object({
|
|
48
48
|
dateFrom: z.string().optional().describe("Start date (YYYY-MM-DD)"),
|
|
49
49
|
dateTo: z.string().optional().describe("End date (YYYY-MM-DD)"),
|
|
@@ -55,14 +55,14 @@ Note: Use tempo_get_user_info first to get accountId if needed`,
|
|
|
55
55
|
.string()
|
|
56
56
|
.optional()
|
|
57
57
|
.describe("Filter by issue key (e.g., PROJ-123)"),
|
|
58
|
-
|
|
59
|
-
.
|
|
58
|
+
workerKey: z
|
|
59
|
+
.string()
|
|
60
60
|
.optional()
|
|
61
|
-
.describe("Filter by
|
|
61
|
+
.describe("Filter by worker username (e.g., 'jdoe'). Get from tempo_get_user_info. Leave empty to get ALL worklogs."),
|
|
62
62
|
}),
|
|
63
63
|
handler: async (args) => {
|
|
64
64
|
try {
|
|
65
|
-
const result = await client.getWorklogs(args.dateFrom, args.dateTo, args.projectKey, args.issueKey, args.
|
|
65
|
+
const result = await client.getWorklogs(args.dateFrom, args.dateTo, args.projectKey, args.issueKey, args.workerKey);
|
|
66
66
|
return {
|
|
67
67
|
content: [
|
|
68
68
|
{
|
|
@@ -366,20 +366,24 @@ teamId: 1, dateFrom: "2025-11-01", dateTo: "2025-11-07"`,
|
|
|
366
366
|
},
|
|
367
367
|
},
|
|
368
368
|
tempo_get_user_info: {
|
|
369
|
-
description: `Get current user information (accountId
|
|
369
|
+
description: `Get current user information (workerKey, accountId, displayName).
|
|
370
|
+
|
|
371
|
+
The workerKey (username) is needed for filtering worklogs by user. Use this tool first if you need to:
|
|
372
|
+
- Get your workerKey to filter worklogs in tempo_get_worklogs
|
|
373
|
+
- Find your accountId for Jira operations
|
|
374
|
+
- Verify authentication is working
|
|
370
375
|
|
|
371
|
-
|
|
372
|
-
- Get worklogs for the current user explicitly
|
|
373
|
-
- Find your accountId for other Tempo operations
|
|
374
|
-
- Verify authentication is working`,
|
|
376
|
+
IMPORTANT: Use 'workerKey' for Tempo worklog filtering, not 'accountId'!`,
|
|
375
377
|
inputSchema: z.object({}),
|
|
376
378
|
handler: async () => {
|
|
377
379
|
try {
|
|
378
380
|
const result = await client.getCurrentUser();
|
|
379
381
|
return formatSuccess({
|
|
382
|
+
workerKey: result.key,
|
|
383
|
+
username: result.name,
|
|
380
384
|
accountId: result.accountId,
|
|
381
385
|
displayName: result.displayName,
|
|
382
|
-
tip: "Use
|
|
386
|
+
tip: "Use the 'workerKey' value in tempo_get_worklogs to filter by user",
|
|
383
387
|
});
|
|
384
388
|
}
|
|
385
389
|
catch (error) {
|
package/dist/tempo/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/tempo/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,aAAa,EACb,WAAW,EACX,UAAU,GACX,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,aAAa,EACb,0BAA0B,EAC1B,aAAa,EACb,cAAc,EACd,UAAU,EACV,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAGzB,MAAM,UAAU,gBAAgB,CAAC,MAAmB;IAClD,OAAO;QACL,kBAAkB,EAAE;YAClB,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/tempo/tools.ts"],"names":[],"mappings":"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"}
|
package/dist/tempo/types.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tempo-specific types
|
|
3
|
+
* Based on Tempo v4 API (TempoWorklogV4Bean)
|
|
3
4
|
*/
|
|
4
5
|
export interface TempoWorklog {
|
|
5
6
|
tempoWorklogId: number;
|
|
6
7
|
jiraWorklogId: number;
|
|
8
|
+
originTaskId: number;
|
|
7
9
|
issue: {
|
|
8
10
|
key: string;
|
|
9
11
|
id: number;
|
|
@@ -11,19 +13,18 @@ export interface TempoWorklog {
|
|
|
11
13
|
timeSpentSeconds: number;
|
|
12
14
|
billableSeconds: number;
|
|
13
15
|
startDate: string;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
accountId: string;
|
|
20
|
-
displayName: string;
|
|
21
|
-
self: string;
|
|
22
|
-
};
|
|
16
|
+
comment?: string;
|
|
17
|
+
dateCreated: string;
|
|
18
|
+
dateUpdated: string;
|
|
19
|
+
workerKey: string;
|
|
20
|
+
updaterKey?: string;
|
|
23
21
|
attributes?: {
|
|
24
22
|
key: string;
|
|
25
23
|
value: string;
|
|
26
24
|
}[];
|
|
25
|
+
timeSpent?: string;
|
|
26
|
+
originId?: number;
|
|
27
|
+
location?: any;
|
|
27
28
|
}
|
|
28
29
|
export interface TempoWorklogInput {
|
|
29
30
|
issueKey: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tempo/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tempo/types.ts"],"names":[],"mappings":"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"}
|
package/dist/tempo/types.js
CHANGED
package/dist/tempo/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tempo/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tempo/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
package/dist/types.d.ts
CHANGED
package/dist/types.js
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crypto512/jicon-mcp",
|
|
3
|
-
"version": "0.1
|
|
4
|
-
"description": "Model Context Protocol server for Jira and
|
|
3
|
+
"version": "0.2.1",
|
|
4
|
+
"description": "Model Context Protocol server for Jira, Confluence, and Tempo integration",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"bin": {
|