targetprocess-mcp-server 2.1.6 → 2.1.7-a
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 +1 -2
- package/build/index.js +10 -54
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -51,14 +51,13 @@ Cards — Read
|
|
|
51
51
|
- `get_bug_comments` — Get comments on a bug (id, optional results)
|
|
52
52
|
- `get_user_story_comments` — Get comments on a user story (id, optional results)
|
|
53
53
|
- `get_user_story_test_cases` — Fetch the linked test plan and all its test cases (with steps) for a user story (resourceId)
|
|
54
|
-
- `
|
|
54
|
+
- `search_tp_cards` — Search TP cards by keyword or phrase in description (keyword, optional entityType: UserStories | Bugs, default: UserStories)
|
|
55
55
|
|
|
56
56
|
Cards — Write
|
|
57
57
|
- `add_comment` — Post a comment to any card (id, comment)
|
|
58
58
|
- `create_bug` — Create a standalone bug (title, bugContent, optional origin)
|
|
59
59
|
- `create_bug_based_on_card` — Create a bug linked to an existing user story or bug card (card object with id+type, title, bugContent, optional origin)
|
|
60
60
|
- `create_test_plan` — Create a test plan linked to a UserStory, Bug, or Feature (title, resourceId, optional resourceType, optional description/startDate/endDate)
|
|
61
|
-
- `add_test_cases` — Create a test plan and add generated test cases to it in one call (resourceId, testPlanTitle, testCases array of {name, description}, optional resourceType)
|
|
62
61
|
|
|
63
62
|
Test Case Workflows
|
|
64
63
|
- `write_test_cases` — Fetch a card (UserStory, Bug, or Feature) by ID and trigger the full test case writing workflow: Claude analyzes the card, generates detailed test cases covering happy path, edge cases, and error scenarios, creates a linked test plan via `create_test_plan`, then calls `add_test_cases_to_test_plan`. Each test case description contains Preconditions and Test Type as HTML; steps are passed as a structured array (resourceId, optional resourceType)
|
package/build/index.js
CHANGED
|
@@ -332,16 +332,20 @@ server.registerTool('get_release_open_user_stories', {
|
|
|
332
332
|
}],
|
|
333
333
|
};
|
|
334
334
|
});
|
|
335
|
-
server.registerTool('
|
|
336
|
-
title: 'Search
|
|
337
|
-
description: `Searches
|
|
338
|
-
NOTE: after results are returned, try filter results by most relevant to what user is looking for in the description text`,
|
|
335
|
+
server.registerTool('search_tp_cards', {
|
|
336
|
+
title: 'Search TP cards by keyword or phrase in description',
|
|
337
|
+
description: `Searches TP cards (UserStories or Bugs) by keyword or phrase or partial keyphrase in Card Description e.g. "Text Element", "Font field"
|
|
338
|
+
NOTE: after results are returned, try analyze and filter results by most relevant to what user is looking for in the description text`,
|
|
339
339
|
inputSchema: {
|
|
340
340
|
keyword: z.string()
|
|
341
341
|
.describe('Keyword or partial name or keyphrase to search for in description'),
|
|
342
|
+
entityType: z.enum(["UserStories", "Bugs"])
|
|
343
|
+
.default("UserStories")
|
|
344
|
+
.optional()
|
|
345
|
+
.describe('Type of TP entity to search — UserStories or Bugs (default: UserStories)'),
|
|
342
346
|
},
|
|
343
|
-
}, async ({ keyword }) => {
|
|
344
|
-
const results = await tp.searchContainsDescriptionText({ text: keyword, entityType
|
|
347
|
+
}, async ({ keyword, entityType = "UserStories" }) => {
|
|
348
|
+
const results = await tp.searchContainsDescriptionText({ text: keyword, entityType });
|
|
345
349
|
if (!results) {
|
|
346
350
|
return {
|
|
347
351
|
content: [{
|
|
@@ -375,54 +379,6 @@ server.registerTool('search_user_stories_by_keyword', {
|
|
|
375
379
|
}],
|
|
376
380
|
};
|
|
377
381
|
});
|
|
378
|
-
server.registerTool('search_all_cards_by_keyword', {
|
|
379
|
-
title: 'Search TP cards (user stories, bugs, features) by keyword or partial name',
|
|
380
|
-
description: `Searches tp cards (user stories, bugs, features) by keyword or partial name or partial keyphrase e.g. "Text Element"
|
|
381
|
-
NOTE: this is a fallback tool if "search_user_stories_by_keyword" tool does not satisfy the user's query`,
|
|
382
|
-
inputSchema: {
|
|
383
|
-
keyword: z.string()
|
|
384
|
-
.describe('Keyword or partial name or keyphrase to search for'),
|
|
385
|
-
},
|
|
386
|
-
}, async ({ keyword }) => {
|
|
387
|
-
const results = await Promise.all([
|
|
388
|
-
tp.searchContainsNameText({ text: keyword, entityType: "UserStories" }),
|
|
389
|
-
tp.searchContainsNameText({ text: keyword, entityType: "Bugs" }),
|
|
390
|
-
tp.searchContainsNameText({ text: keyword, entityType: "Features" }),
|
|
391
|
-
]);
|
|
392
|
-
const generalResults = results.map((item) => item.Items).flat();
|
|
393
|
-
if (!generalResults) {
|
|
394
|
-
return {
|
|
395
|
-
content: [{
|
|
396
|
-
type: 'text',
|
|
397
|
-
text: `Failed to find card by keyword: "${keyword}"\n JSON: ${JSON.stringify(generalResults, null, 2)}`
|
|
398
|
-
}],
|
|
399
|
-
};
|
|
400
|
-
}
|
|
401
|
-
const items = generalResults || [];
|
|
402
|
-
if (items.length == 0) {
|
|
403
|
-
return {
|
|
404
|
-
content: [{
|
|
405
|
-
type: "text",
|
|
406
|
-
text: `No results for ${keyword}`,
|
|
407
|
-
}],
|
|
408
|
-
};
|
|
409
|
-
}
|
|
410
|
-
const parsedItems = items.map((item) => {
|
|
411
|
-
const dom = new JSDOM(`<html><body><div id="content">${item.Description}</div></body></html>`);
|
|
412
|
-
const descriptionText = dom.window.document.getElementById('content')?.textContent;
|
|
413
|
-
return {
|
|
414
|
-
title: item.Name,
|
|
415
|
-
id: item.Id,
|
|
416
|
-
description: descriptionText,
|
|
417
|
-
};
|
|
418
|
-
});
|
|
419
|
-
return {
|
|
420
|
-
content: [{
|
|
421
|
-
type: 'text',
|
|
422
|
-
text: JSON.stringify(parsedItems)
|
|
423
|
-
}],
|
|
424
|
-
};
|
|
425
|
-
});
|
|
426
382
|
server.registerTool('get_bug_content', {
|
|
427
383
|
title: 'Get TP bug content',
|
|
428
384
|
description: 'Get tp card (bug) content by specified id, e.g. 145789',
|