wolfpack-mcp 1.0.15 → 1.0.17
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/README.md +12 -0
- package/dist/index.js +28 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -93,6 +93,15 @@ To pre-select a default team, add to your config:
|
|
|
93
93
|
}
|
|
94
94
|
```
|
|
95
95
|
|
|
96
|
+
## Project Focus
|
|
97
|
+
|
|
98
|
+
The MCP server is designed to work within **one project at a time**:
|
|
99
|
+
|
|
100
|
+
- The agent will identify which project you're working in before taking actions
|
|
101
|
+
- Once a project is identified, all operations stay within that project
|
|
102
|
+
- The agent will not perform bulk actions across multiple projects
|
|
103
|
+
- To switch projects, explicitly tell Claude (e.g., "switch to the Platform project")
|
|
104
|
+
|
|
96
105
|
## API Key Permissions
|
|
97
106
|
|
|
98
107
|
When creating your API key, select the permissions you need:
|
|
@@ -137,6 +146,9 @@ Verify [wolfpacks.work](https://wolfpacks.work) is accessible from your network.
|
|
|
137
146
|
- Permissions are configurable per key—grant only what you need
|
|
138
147
|
- Revoke keys anytime from Account Settings
|
|
139
148
|
|
|
149
|
+
For additional security, you can **restrict API keys to specific projects** when creating them in Account Settings. This
|
|
150
|
+
ensures the key can only access the projects you select, regardless of your team memberships.
|
|
151
|
+
|
|
140
152
|
## Available Tools Reference
|
|
141
153
|
|
|
142
154
|
<details>
|
package/dist/index.js
CHANGED
|
@@ -223,6 +223,18 @@ const CreateIssueCommentSchema = z.object({
|
|
|
223
223
|
issue_id: z.string().describe('The issue UUID'),
|
|
224
224
|
content: z.string().describe('Comment content (markdown)'),
|
|
225
225
|
});
|
|
226
|
+
// Helper to detect if a work item description contains a plan
|
|
227
|
+
function hasPlan(description) {
|
|
228
|
+
if (!description)
|
|
229
|
+
return false;
|
|
230
|
+
// Check for markdown checklist items (plan indicators)
|
|
231
|
+
if (/- \[[ x]\]/.test(description))
|
|
232
|
+
return true;
|
|
233
|
+
// Check for --- separator with content after (agent-added section)
|
|
234
|
+
if (/\n---\n/.test(description))
|
|
235
|
+
return true;
|
|
236
|
+
return false;
|
|
237
|
+
}
|
|
226
238
|
class WolfpackMCPServer {
|
|
227
239
|
server;
|
|
228
240
|
client;
|
|
@@ -245,7 +257,14 @@ class WolfpackMCPServer {
|
|
|
245
257
|
// Team tools
|
|
246
258
|
{
|
|
247
259
|
name: 'list_teams',
|
|
248
|
-
description: 'List all teams you have access to.
|
|
260
|
+
description: 'List all teams (projects) you have access to. ' +
|
|
261
|
+
'IMPORTANT - PROJECT FOCUS RULES: ' +
|
|
262
|
+
'1) Call this FIRST to identify which project you are working in. ' +
|
|
263
|
+
'2) Once you identify a project, STAY WITHIN that project for all operations unless the user explicitly asks to switch projects. ' +
|
|
264
|
+
'3) NEVER perform bulk actions across multiple projects - always work in one project at a time. ' +
|
|
265
|
+
'4) If the user mentions a specific project, use that project for all subsequent operations. ' +
|
|
266
|
+
'5) If unclear which project to use, ASK the user before proceeding. ' +
|
|
267
|
+
'Returns team IDs, slugs, and names. Single-team users have their team auto-selected; multi-team users must specify team_id in other tool calls.',
|
|
249
268
|
inputSchema: {
|
|
250
269
|
type: 'object',
|
|
251
270
|
properties: {},
|
|
@@ -783,8 +802,15 @@ class WolfpackMCPServer {
|
|
|
783
802
|
const parsed = GetWorkItemSchema.parse(args);
|
|
784
803
|
const workItem = await this.client.getWorkItem(parsed.work_item_id, parsed.team_id || this.client.getTeamId() || undefined);
|
|
785
804
|
if (workItem) {
|
|
805
|
+
let text = JSON.stringify(workItem, null, 2);
|
|
806
|
+
// Add hint if no plan detected in description
|
|
807
|
+
if (!hasPlan(workItem.description)) {
|
|
808
|
+
text =
|
|
809
|
+
'REMINDER: This work item has no plan. Before starting work, use update_work_progress to add a plan below a "---" separator. Preserve the original description and append your plan with markdown checkboxes (- [ ] task).\n\n' +
|
|
810
|
+
text;
|
|
811
|
+
}
|
|
786
812
|
return {
|
|
787
|
-
content: [{ type: 'text', text
|
|
813
|
+
content: [{ type: 'text', text }],
|
|
788
814
|
};
|
|
789
815
|
}
|
|
790
816
|
return {
|