wolfpack-mcp 1.0.1 → 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.
Files changed (3) hide show
  1. package/README.md +17 -6
  2. package/dist/index.js +46 -1
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -103,14 +103,15 @@ Work items are tasks or tickets assigned to team members.
103
103
 
104
104
  #### `list_work_items`
105
105
 
106
- Lists work items assigned to you.
106
+ Lists work items assigned to you. By default, excludes completed and closed items to show active work.
107
107
 
108
108
  - **Parameters:**
109
109
  - `team_id` (number, optional): Team ID (use `list_teams` to get IDs)
110
- - `status` (string, optional): Filter by status (new, doing, review, completed, blocked)
110
+ - `status` (string, optional): Filter by status (new, doing, review, completed, blocked). Use `completed` or `closed` to see those items.
111
111
  - `limit` (number, optional): Maximum number of items to return
112
112
  - `offset` (number, optional): Number of items to skip for pagination
113
113
  - **Returns:** Array of work item objects
114
+ - **Note:** Results are automatically paginated. If there are more than 200 items, you'll receive a truncation warning with the first 50 items.
114
115
 
115
116
  #### `get_work_item`
116
117
 
@@ -157,17 +158,18 @@ Issues track bugs, feature requests, and other items in the issue tracker.
157
158
 
158
159
  #### `list_issues`
159
160
 
160
- Lists issues from the team issue tracker.
161
+ Lists issues from the team issue tracker. By default, excludes closed issues.
161
162
 
162
163
  - **Parameters:**
163
164
  - `team_id` (number, optional): Team ID to filter issues
164
- - `status` (string, optional): Filter by status (open, in-progress, resolved, closed)
165
+ - `status` (string, optional): Filter by status (open, in-progress, resolved, closed). Use `closed` to see closed items.
165
166
  - `severity` (string, optional): Filter by severity (low, medium, high, critical)
166
167
  - `type` (string, optional): Filter by type (bug, feature-request, task, improvement, question)
167
168
  - `assigned_to_id` (string, optional): Filter by assignee ('unassigned' or 'me' for special cases)
168
169
  - `limit` (number, optional): Maximum number of items
169
170
  - `offset` (number, optional): Items to skip
170
171
  - **Returns:** Array of issue objects
172
+ - **Note:** Results are automatically paginated. If there are more than 200 items, you'll receive a truncation warning.
171
173
 
172
174
  #### `get_issue`
173
175
 
@@ -319,14 +321,15 @@ Radar items are strategic initiatives or roadmap items that group related work.
319
321
 
320
322
  #### `list_radar_items`
321
323
 
322
- Lists radar items from the team.
324
+ Lists radar items from the team. By default, excludes completed items.
323
325
 
324
326
  - **Parameters:**
325
327
  - `team_id` (number, optional): Team ID to filter
326
- - `stage` (string, optional): Filter by stage (pending, now, next, later, completed)
328
+ - `stage` (string, optional): Filter by stage (pending, now, next, later, completed). Use `completed` to see completed items.
327
329
  - `limit` (number, optional): Maximum items to return
328
330
  - `offset` (number, optional): Items to skip
329
331
  - **Returns:** Array of radar item objects
332
+ - **Note:** Results are automatically paginated. If there are more than 200 items, you'll receive a truncation warning.
330
333
 
331
334
  #### `get_radar_item`
332
335
 
@@ -337,6 +340,14 @@ Gets a specific radar item by ID or reference number.
337
340
  - `team_id` (number, optional): Team ID (required when using refId)
338
341
  - **Returns:** Radar item object with work items and participants
339
342
 
343
+ ## Automatic Updates
344
+
345
+ The MCP server checks for updates on startup. If a newer version is available, you'll see a notification in the server logs with instructions to update:
346
+
347
+ ```
348
+ npm install -g wolfpack-mcp@latest
349
+ ```
350
+
340
351
  ## Security
341
352
 
342
353
  - API keys authenticate with your Wolfpack account
package/dist/index.js CHANGED
@@ -3,8 +3,51 @@ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
3
3
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
4
  import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
5
5
  import { z } from 'zod';
6
+ import { createRequire } from 'module';
6
7
  import { WolfpackClient } from './client.js';
7
8
  import { validateConfig, config } from './config.js';
9
+ // Get current package version
10
+ const require = createRequire(import.meta.url);
11
+ const packageJson = require('../package.json');
12
+ const CURRENT_VERSION = packageJson.version;
13
+ const PACKAGE_NAME = packageJson.name;
14
+ // Check for updates from npm registry
15
+ async function checkForUpdates() {
16
+ try {
17
+ const response = await fetch(`https://registry.npmjs.org/${PACKAGE_NAME}/latest`, {
18
+ headers: { Accept: 'application/json' },
19
+ signal: AbortSignal.timeout(5000), // 5 second timeout
20
+ });
21
+ if (!response.ok)
22
+ return;
23
+ const data = (await response.json());
24
+ const latestVersion = data.version;
25
+ if (latestVersion && latestVersion !== CURRENT_VERSION) {
26
+ const [latestMajor, latestMinor, latestPatch] = latestVersion.split('.').map(Number);
27
+ const [currentMajor, currentMinor, currentPatch] = CURRENT_VERSION.split('.').map(Number);
28
+ // Check if latest is actually newer
29
+ const isNewer = latestMajor > currentMajor ||
30
+ (latestMajor === currentMajor && latestMinor > currentMinor) ||
31
+ (latestMajor === currentMajor &&
32
+ latestMinor === currentMinor &&
33
+ latestPatch > currentPatch);
34
+ if (isNewer) {
35
+ console.error('');
36
+ console.error('╔════════════════════════════════════════════════════════════╗');
37
+ console.error('║ UPDATE AVAILABLE ║');
38
+ console.error(`║ ${PACKAGE_NAME} ${CURRENT_VERSION} → ${latestVersion}`.padEnd(61) + '║');
39
+ console.error('║ ║');
40
+ console.error('║ Run: npm install -g wolfpack-mcp@latest ║');
41
+ console.error('║ Or update your package.json and run: npm install ║');
42
+ console.error('╚════════════════════════════════════════════════════════════╝');
43
+ console.error('');
44
+ }
45
+ }
46
+ }
47
+ catch {
48
+ // Silently ignore update check failures - don't block startup
49
+ }
50
+ }
8
51
  // Work Item schemas
9
52
  const ListWorkItemsSchema = z.object({
10
53
  team_id: z.number().optional().describe('Team ID to filter work items'),
@@ -915,6 +958,8 @@ class WolfpackMCPServer {
915
958
  });
916
959
  }
917
960
  async start() {
961
+ // Check for updates (non-blocking)
962
+ checkForUpdates();
918
963
  // Resolve team on startup
919
964
  if (config.teamSlug) {
920
965
  // Explicit team slug configured - use it
@@ -950,7 +995,7 @@ class WolfpackMCPServer {
950
995
  }
951
996
  const transport = new StdioServerTransport();
952
997
  await this.server.connect(transport);
953
- console.error('Wolfpack MCP Server v1.0.0 started');
998
+ console.error(`Wolfpack MCP Server v${CURRENT_VERSION} started`);
954
999
  }
955
1000
  }
956
1001
  // Validate configuration before starting
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wolfpack-mcp",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "MCP server for Wolfpack AI-enhanced software delivery tools",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",