targetprocess-mcp-server 1.0.20 → 1.0.22
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 +11 -3
- package/build/index.js +34 -11
- package/build/tp.js +6 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -41,6 +41,10 @@ Releases
|
|
|
41
41
|
- `get_release_open_bugs` — Get only active/open bugs for a release (name, withDescription, optional results)
|
|
42
42
|
- `get_release_open_user_stories` — Get only active/open user stories for a release (name, withDescription, optional results)
|
|
43
43
|
|
|
44
|
+
Features
|
|
45
|
+
- `get_feature_user_stories` — Get all user stories for a feature by its ID (id)
|
|
46
|
+
- `get_not_covered_user_stories_in_feature` — Get user stories in a feature not yet covered by tests, includes `covered` field based on "Test Automation" custom field (id)
|
|
47
|
+
|
|
44
48
|
Cards — Read
|
|
45
49
|
- `get_bug_content` — Fetch full content of a bug by ID (id)
|
|
46
50
|
- `get_user_story_content` — Fetch full content of a user story by ID (id)
|
|
@@ -54,6 +58,12 @@ Cards — Write
|
|
|
54
58
|
- `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)
|
|
55
59
|
- `create_test_plan` — Create a test plan linked to a user story (title, userStoryId)
|
|
56
60
|
|
|
61
|
+
Projects
|
|
62
|
+
- `get_projects` — Get all Targetprocess projects (no params needed)
|
|
63
|
+
|
|
64
|
+
User
|
|
65
|
+
- `get_logged_in_user` — Get the currently logged-in user's info (no params needed)
|
|
66
|
+
|
|
57
67
|
> `origin` accepted values: `Production - Customer`, `Production - Internal`, `Pre-Release - Customer`, `Pre-Release - Internal`, `Regression - Dev01`, `Regression - Team Env`, `Manual QA` *(default)*, `Developer Raised`, `Operations`
|
|
58
68
|
---
|
|
59
69
|
|
|
@@ -70,7 +80,6 @@ Cards — Write
|
|
|
70
80
|
"env": {
|
|
71
81
|
"TP_TOKEN": "<your-tp-token>" // Settings -> Authentication and Security -> New Access Token,
|
|
72
82
|
"TP_BASE_URL": "<tp-api-endpoint>",
|
|
73
|
-
"TP_API_VERSION": "v1",
|
|
74
83
|
"TP_OWNER_ID": "<tp-owner-id>", // your user id
|
|
75
84
|
"TP_PROJECT_ID": "<tp-project-id>",
|
|
76
85
|
"TP_TEAM_ID": "<tp-team-id>"
|
|
@@ -95,7 +104,6 @@ Cards — Write
|
|
|
95
104
|
"env": {
|
|
96
105
|
"TP_TOKEN": "<your-tp-token>" // Settings -> Authentication and Security -> New Access Token,
|
|
97
106
|
"TP_BASE_URL": "<tp-api-endpoint>",
|
|
98
|
-
"TP_API_VERSION": "v1",
|
|
99
107
|
"TP_OWNER_ID": "<tp-owner-id>", // your user id
|
|
100
108
|
"TP_PROJECT_ID": "<tp-project-id>",
|
|
101
109
|
"TP_TEAM_ID": "<tp-team-id>"
|
|
@@ -108,7 +116,7 @@ Cards — Write
|
|
|
108
116
|
|
|
109
117
|
### Claude Code
|
|
110
118
|
```bash
|
|
111
|
-
claude mcp add
|
|
119
|
+
claude mcp add targetprocess -s user \
|
|
112
120
|
-e TP_TOKEN=<your-tp-token> -e TP_BASE_URL=<tp-api-endpoint> -- npx -y targetprocess-mcp-server
|
|
113
121
|
```
|
|
114
122
|
|
package/build/index.js
CHANGED
|
@@ -592,9 +592,8 @@ server.registerTool('get_bug_comments', {
|
|
|
592
592
|
});
|
|
593
593
|
server.registerTool('create_bug_based_on_card', {
|
|
594
594
|
title: 'Create a new bug card based on provided card id',
|
|
595
|
-
description: `Create a new bug card based on provided card id that summarizes the problem in concise,
|
|
596
|
-
|
|
597
|
-
and content explaining what happened in detail.
|
|
595
|
+
description: `Create a new bug card based on provided card id that summarizes the problem in concise, descriptive manner answering questions What? Where? When?, and content explaining what happened in detail.
|
|
596
|
+
NOTE: this tool requires a user story or bug card as a reference (i.e. card ID).
|
|
598
597
|
CRITICAL WORKFLOW: Before calling this tool, you MUST follow these steps:
|
|
599
598
|
1) IF you already have user story or bug card content, proceed to step 3 skipping step 2;
|
|
600
599
|
2) ELSE call "get_user_story_content" tool or "get_bug_content" tool to get user story or bug card content;
|
|
@@ -650,9 +649,8 @@ server.registerTool('create_bug_based_on_card', {
|
|
|
650
649
|
});
|
|
651
650
|
server.registerTool('create_bug', {
|
|
652
651
|
title: 'Create a new bug card',
|
|
653
|
-
description: `Create a new bug card that summarizes the problem in concise,
|
|
654
|
-
|
|
655
|
-
and content explaining what happened in detail.
|
|
652
|
+
description: `Create a new bug card that summarizes the problem in concise, descriptive manner answering questions "What? Where? When?" and content explaining what happened in detail.
|
|
653
|
+
NOTE: this tool does not require a user story or bug card referenced.
|
|
656
654
|
CRITICAL WORKFLOW: Before calling this tool, you MUST follow these steps:
|
|
657
655
|
1) format the new bug inside html <div> tags with Issue Description, Steps to Reproduce, Expected Behavior, Actual Behavior;
|
|
658
656
|
2) add a comment to the newly created bug with its Id and Title`,
|
|
@@ -660,11 +658,7 @@ server.registerTool('create_bug', {
|
|
|
660
658
|
title: z.string()
|
|
661
659
|
.describe('Bug card title that summarizes the problem in concise, descriptive, and actionable manner, enabling a developer to understand the issue without opening the report'),
|
|
662
660
|
bugContent: z.string()
|
|
663
|
-
.describe(`Bug description content, explain what happened in detail.
|
|
664
|
-
Include expected behaviour and what actually occurred.
|
|
665
|
-
Be specific and avoid assumptions.
|
|
666
|
-
Clearly outline the actions needed to trigger the bug.
|
|
667
|
-
Number each step so anyone can follow them easily`),
|
|
661
|
+
.describe(`Bug description content, explain what happened in detail. Include expected behaviour and what actually occurred. Be specific and avoid assumptions. Clearly outline the actions needed to trigger the bug. Number each step so anyone can follow them easily`),
|
|
668
662
|
origin: z.enum([
|
|
669
663
|
"Production - Customer",
|
|
670
664
|
"Production - Internal",
|
|
@@ -858,6 +852,35 @@ server.registerTool('get_feature_user_stories', {
|
|
|
858
852
|
}],
|
|
859
853
|
};
|
|
860
854
|
});
|
|
855
|
+
server.registerTool('get_projects', {
|
|
856
|
+
title: 'Get projects',
|
|
857
|
+
description: 'Get all Targetprocess projects',
|
|
858
|
+
}, async ({}) => {
|
|
859
|
+
const response = await tp.getProjects();
|
|
860
|
+
if (!response) {
|
|
861
|
+
return {
|
|
862
|
+
content: [{
|
|
863
|
+
type: 'text',
|
|
864
|
+
text: `Failed to get projects, JSON: ${JSON.stringify(response, null, 2)}`
|
|
865
|
+
}],
|
|
866
|
+
};
|
|
867
|
+
}
|
|
868
|
+
const items = response.Items || [];
|
|
869
|
+
if (items.length === 0) {
|
|
870
|
+
return {
|
|
871
|
+
content: [{
|
|
872
|
+
type: 'text',
|
|
873
|
+
text: `No projects found`,
|
|
874
|
+
}],
|
|
875
|
+
};
|
|
876
|
+
}
|
|
877
|
+
return {
|
|
878
|
+
content: [{
|
|
879
|
+
type: 'text',
|
|
880
|
+
text: JSON.stringify(items.map((p) => ({ id: p.Id, name: p.Name })))
|
|
881
|
+
}],
|
|
882
|
+
};
|
|
883
|
+
});
|
|
861
884
|
server.registerTool('get_logged_in_user', {
|
|
862
885
|
title: 'Get logged in user',
|
|
863
886
|
description: 'Get logged in user',
|
package/build/tp.js
CHANGED
|
@@ -339,6 +339,12 @@ export class TpClient {
|
|
|
339
339
|
apiVersion: this.v2
|
|
340
340
|
});
|
|
341
341
|
}
|
|
342
|
+
async getProjects() {
|
|
343
|
+
return this.get({
|
|
344
|
+
pathParam: { "Projects": '' },
|
|
345
|
+
param: { "format": "json" },
|
|
346
|
+
});
|
|
347
|
+
}
|
|
342
348
|
async getContext() {
|
|
343
349
|
return this.get({
|
|
344
350
|
pathParam: { "Context": '' },
|