@azure-devops/mcp 2.2.2-nightly.20251202 → 2.3.0-nightly.20251203

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.
@@ -20,6 +20,7 @@ const REPO_TOOLS = {
20
20
  update_pull_request_reviewers: "repo_update_pull_request_reviewers",
21
21
  reply_to_comment: "repo_reply_to_comment",
22
22
  create_pull_request_thread: "repo_create_pull_request_thread",
23
+ update_pull_request_thread: "repo_update_pull_request_thread",
23
24
  resolve_comment: "repo_resolve_comment",
24
25
  search_commits: "repo_search_commits",
25
26
  list_pull_requests_by_commits: "repo_list_pull_requests_by_commits",
@@ -889,6 +890,49 @@ function configureRepoTools(server, tokenProvider, connectionProvider, userAgent
889
890
  };
890
891
  }
891
892
  });
893
+ server.tool(REPO_TOOLS.update_pull_request_thread, "Updates an existing comment thread on a pull request.", {
894
+ repositoryId: z.string().describe("The ID of the repository where the pull request is located."),
895
+ pullRequestId: z.number().describe("The ID of the pull request where the comment thread exists."),
896
+ threadId: z.number().describe("The ID of the thread to update."),
897
+ project: z.string().optional().describe("Project ID or project name (optional)"),
898
+ status: z
899
+ .enum(getEnumKeys(CommentThreadStatus))
900
+ .optional()
901
+ .describe("The new status for the comment thread."),
902
+ }, async ({ repositoryId, pullRequestId, threadId, project, status }) => {
903
+ try {
904
+ const connection = await connectionProvider();
905
+ const gitApi = await connection.getGitApi();
906
+ const updateRequest = {};
907
+ if (status !== undefined) {
908
+ updateRequest.status = CommentThreadStatus[status];
909
+ }
910
+ if (Object.keys(updateRequest).length === 0) {
911
+ return {
912
+ content: [{ type: "text", text: "Error: At least one field (status) must be provided for update." }],
913
+ isError: true,
914
+ };
915
+ }
916
+ const thread = await gitApi.updateThread(updateRequest, repositoryId, pullRequestId, threadId, project);
917
+ if (!thread) {
918
+ return {
919
+ content: [{ type: "text", text: `Error: Failed to update thread ${threadId}. The thread was not updated successfully.` }],
920
+ isError: true,
921
+ };
922
+ }
923
+ const trimmedThread = trimPullRequestThread(thread);
924
+ return {
925
+ content: [{ type: "text", text: JSON.stringify(trimmedThread, null, 2) }],
926
+ };
927
+ }
928
+ catch (error) {
929
+ const errorMessage = error instanceof Error ? error.message : "Unknown error occurred";
930
+ return {
931
+ content: [{ type: "text", text: `Error updating pull request thread: ${errorMessage}` }],
932
+ isError: true,
933
+ };
934
+ }
935
+ });
892
936
  server.tool(REPO_TOOLS.resolve_comment, "Resolves a specific comment thread on a pull request.", {
893
937
  repositoryId: z.string().describe("The ID of the repository where the pull request is located."),
894
938
  pullRequestId: z.number().describe("The ID of the pull request where the comment thread exists."),
package/dist/version.js CHANGED
@@ -1 +1 @@
1
- export const packageVersion = "2.2.2-nightly.20251202";
1
+ export const packageVersion = "2.3.0-nightly.20251203";
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@azure-devops/mcp",
3
- "version": "2.2.2-nightly.20251202",
3
+ "version": "2.3.0-nightly.20251203",
4
+ "mcpName": "microsoft.com/azure-devops",
4
5
  "description": "MCP server for interacting with Azure DevOps",
5
6
  "license": "MIT",
6
7
  "author": "Microsoft Corporation",
@@ -39,7 +40,7 @@
39
40
  "dependencies": {
40
41
  "@azure/identity": "^4.10.0",
41
42
  "@azure/msal-node": "^3.6.0",
42
- "@modelcontextprotocol/sdk": "1.23.0",
43
+ "@modelcontextprotocol/sdk": "1.24.0",
43
44
  "azure-devops-extension-api": "^4.252.0",
44
45
  "azure-devops-extension-sdk": "^4.0.2",
45
46
  "azure-devops-node-api": "^15.1.0",
@@ -64,7 +65,7 @@
64
65
  "ts-jest": "^29.4.0",
65
66
  "tsconfig-paths": "^4.2.0",
66
67
  "typescript": "^5.9.3",
67
- "typescript-eslint": "^8.46.4"
68
+ "typescript-eslint": "^8.48.0"
68
69
  },
69
70
  "lint-staged": {
70
71
  "**/*.(js|ts|jsx|tsx|json|css|md)": [