@mcp-apps/azure-devops-mcp-server
Version:
A Model Context Protocol (MCP) server for Azure DevOps integration
97 lines • 10.2 kB
JavaScript
#!/usr/bin/env node
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
// Import tools
const list_work_items_1 = require("./tools/list-work-items");
const create_work_item_1 = require("./tools/create-work-item");
const update_work_item_1 = require("./tools/update-work-item");
const git_list_repositories_1 = require("./tools/git-list-repositories");
const git_list_pull_requests_1 = require("./tools/git-list-pull-requests");
const git_get_repository_file_1 = require("./tools/git-get-repository-file");
const git_create_pull_request_1 = require("./tools/git-create-pull-request");
const projects_1 = require("./tools/projects");
const git_command_1 = require("./tools/git-command");
const git_clone_repository_1 = require("./tools/git-clone-repository");
const git_create_branch_1 = require("./tools/git-create-branch");
const git_push_changes_1 = require("./tools/git-push-changes");
const git_get_repository_status_1 = require("./tools/git-get-repository-status");
const git_commit_changes_1 = require("./tools/git-commit-changes");
const pipelines_1 = require("./tools/pipelines");
const test_cases_js_1 = require("./tools/test-cases.js");
// Import new PR analysis tools
const get_pr_basic_info_1 = require("./tools/get-pr-basic-info");
const get_pr_code_diffs_1 = require("./tools/get-pr-code-diffs");
const get_pr_detailed_changes_1 = require("./tools/get-pr-detailed-changes");
const get_pr_test_impact_1 = require("./tools/get-pr-test-impact");
const get_repository_context_1 = require("./tools/get-repository-context");
// Import PR review-action tools
const git_set_pr_vote_1 = require("./tools/git-set-pr-vote");
const git_list_pr_threads_1 = require("./tools/git-list-pr-threads");
const git_add_pr_comment_1 = require("./tools/git-add-pr-comment");
const git_reply_pr_comment_1 = require("./tools/git-reply-pr-comment");
// Import search tools
const search_1 = require("./tools/search");
// Create server instance
const server = new mcp_js_1.McpServer({
name: "azure-devops-mcp-server",
description: "Azure DevOps MCP Server",
version: "1.0.0",
});
// Register tools
server.tool(list_work_items_1.listWorkItemsTool.name, list_work_items_1.listWorkItemsTool.description, list_work_items_1.listWorkItemsTool.parameters, list_work_items_1.listWorkItemsTool.handler);
server.tool(create_work_item_1.createWorkItemTool.name, create_work_item_1.createWorkItemTool.description, create_work_item_1.createWorkItemTool.parameters, create_work_item_1.createWorkItemTool.handler);
server.tool(update_work_item_1.updateWorkItemTool.name, update_work_item_1.updateWorkItemTool.description, update_work_item_1.updateWorkItemTool.parameters, update_work_item_1.updateWorkItemTool.handler);
server.tool(git_list_repositories_1.listRepositoriesTool.name, git_list_repositories_1.listRepositoriesTool.description, git_list_repositories_1.listRepositoriesTool.parameters, git_list_repositories_1.listRepositoriesTool.handler);
server.tool(git_list_pull_requests_1.listPullRequestsTool.name, git_list_pull_requests_1.listPullRequestsTool.description, git_list_pull_requests_1.listPullRequestsTool.parameters, git_list_pull_requests_1.listPullRequestsTool.handler);
server.tool(git_get_repository_file_1.getRepositoryFileTool.name, git_get_repository_file_1.getRepositoryFileTool.description, git_get_repository_file_1.getRepositoryFileTool.parameters, git_get_repository_file_1.getRepositoryFileTool.handler);
server.tool(projects_1.listProjectsTool.name, projects_1.listProjectsTool.description, projects_1.listProjectsTool.parameters, projects_1.listProjectsTool.handler);
server.tool(git_create_pull_request_1.createPullRequestTool.name, git_create_pull_request_1.createPullRequestTool.description, git_create_pull_request_1.createPullRequestTool.parameters, git_create_pull_request_1.createPullRequestTool.handler);
// Register Git commands tools
server.tool(git_command_1.gitCommandTool.name, git_command_1.gitCommandTool.description, git_command_1.gitCommandTool.parameters, git_command_1.gitCommandTool.handler);
server.tool(git_clone_repository_1.cloneRepositoryTool.name, git_clone_repository_1.cloneRepositoryTool.description, git_clone_repository_1.cloneRepositoryTool.parameters, git_clone_repository_1.cloneRepositoryTool.handler);
server.tool(git_create_branch_1.createBranchTool.name, git_create_branch_1.createBranchTool.description, git_create_branch_1.createBranchTool.parameters, git_create_branch_1.createBranchTool.handler);
server.tool(git_push_changes_1.pushChangesTool.name, git_push_changes_1.pushChangesTool.description, git_push_changes_1.pushChangesTool.parameters, git_push_changes_1.pushChangesTool.handler);
server.tool(git_get_repository_status_1.getRepositoryStatusTool.name, git_get_repository_status_1.getRepositoryStatusTool.description, git_get_repository_status_1.getRepositoryStatusTool.parameters, git_get_repository_status_1.getRepositoryStatusTool.handler);
server.tool(git_commit_changes_1.commitChangesTool.name, git_commit_changes_1.commitChangesTool.description, git_commit_changes_1.commitChangesTool.parameters, git_commit_changes_1.commitChangesTool.handler);
// Register pipeline tools
server.tool(pipelines_1.listBuildPipelinesTool.name, pipelines_1.listBuildPipelinesTool.description, pipelines_1.listBuildPipelinesTool.parameters, pipelines_1.listBuildPipelinesTool.handler);
server.tool(pipelines_1.getBuildPipelineDetailsTool.name, pipelines_1.getBuildPipelineDetailsTool.description, pipelines_1.getBuildPipelineDetailsTool.parameters, pipelines_1.getBuildPipelineDetailsTool.handler);
server.tool(pipelines_1.listBuildRunsTool.name, pipelines_1.listBuildRunsTool.description, pipelines_1.listBuildRunsTool.parameters, pipelines_1.listBuildRunsTool.handler);
server.tool(pipelines_1.listReleasePipelinesTool.name, pipelines_1.listReleasePipelinesTool.description, pipelines_1.listReleasePipelinesTool.parameters, pipelines_1.listReleasePipelinesTool.handler);
server.tool(pipelines_1.getReleasePipelineDetailsTool.name, pipelines_1.getReleasePipelineDetailsTool.description, pipelines_1.getReleasePipelineDetailsTool.parameters, pipelines_1.getReleasePipelineDetailsTool.handler);
server.tool(pipelines_1.listReleaseRunsTool.name, pipelines_1.listReleaseRunsTool.description, pipelines_1.listReleaseRunsTool.parameters, pipelines_1.listReleaseRunsTool.handler);
// Register test case tools
server.tool(test_cases_js_1.queryTestCasesTool.name, test_cases_js_1.queryTestCasesTool.description, test_cases_js_1.queryTestCasesTool.parameters, test_cases_js_1.queryTestCasesTool.handler);
server.tool(test_cases_js_1.getTestCaseDetailsTool.name, test_cases_js_1.getTestCaseDetailsTool.description, test_cases_js_1.getTestCaseDetailsTool.parameters, test_cases_js_1.getTestCaseDetailsTool.handler);
server.tool(test_cases_js_1.createTestCaseTool.name, test_cases_js_1.createTestCaseTool.description, test_cases_js_1.createTestCaseTool.parameters, test_cases_js_1.createTestCaseTool.handler);
// Register PR analysis tools
server.tool(get_pr_basic_info_1.getPRBasicInfoTool.name, get_pr_basic_info_1.getPRBasicInfoTool.description, get_pr_basic_info_1.getPRBasicInfoTool.parameters, get_pr_basic_info_1.getPRBasicInfoTool.handler);
server.tool(get_pr_code_diffs_1.getPRCodeDiffsTool.name, get_pr_code_diffs_1.getPRCodeDiffsTool.description, get_pr_code_diffs_1.getPRCodeDiffsTool.parameters, get_pr_code_diffs_1.getPRCodeDiffsTool.handler);
server.tool(get_pr_detailed_changes_1.getPRDetailedChangesTool.name, get_pr_detailed_changes_1.getPRDetailedChangesTool.description, get_pr_detailed_changes_1.getPRDetailedChangesTool.parameters, get_pr_detailed_changes_1.getPRDetailedChangesTool.handler);
server.tool(get_pr_test_impact_1.getPRTestImpactTool.name, get_pr_test_impact_1.getPRTestImpactTool.description, get_pr_test_impact_1.getPRTestImpactTool.parameters, get_pr_test_impact_1.getPRTestImpactTool.handler);
server.tool(get_repository_context_1.getRepositoryContextTool.name, get_repository_context_1.getRepositoryContextTool.description, get_repository_context_1.getRepositoryContextTool.parameters, get_repository_context_1.getRepositoryContextTool.handler);
// Register PR review-action tools (vote / comment / reply)
server.tool(git_set_pr_vote_1.setPullRequestVoteTool.name, git_set_pr_vote_1.setPullRequestVoteTool.description, git_set_pr_vote_1.setPullRequestVoteTool.parameters, git_set_pr_vote_1.setPullRequestVoteTool.handler);
server.tool(git_list_pr_threads_1.listPullRequestThreadsTool.name, git_list_pr_threads_1.listPullRequestThreadsTool.description, git_list_pr_threads_1.listPullRequestThreadsTool.parameters, git_list_pr_threads_1.listPullRequestThreadsTool.handler);
server.tool(git_add_pr_comment_1.addPullRequestCommentTool.name, git_add_pr_comment_1.addPullRequestCommentTool.description, git_add_pr_comment_1.addPullRequestCommentTool.parameters, git_add_pr_comment_1.addPullRequestCommentTool.handler);
server.tool(git_reply_pr_comment_1.replyPullRequestCommentTool.name, git_reply_pr_comment_1.replyPullRequestCommentTool.description, git_reply_pr_comment_1.replyPullRequestCommentTool.parameters, git_reply_pr_comment_1.replyPullRequestCommentTool.handler);
// Register search tools (code / work items / wiki)
server.tool(search_1.searchCodeTool.name, search_1.searchCodeTool.description, search_1.searchCodeTool.parameters, search_1.searchCodeTool.handler);
server.tool(search_1.searchWorkItemsTool.name, search_1.searchWorkItemsTool.description, search_1.searchWorkItemsTool.parameters, search_1.searchWorkItemsTool.handler);
server.tool(search_1.searchWikiTool.name, search_1.searchWikiTool.description, search_1.searchWikiTool.parameters, search_1.searchWikiTool.handler);
// Start the server
async function main() {
try {
const transport = new stdio_js_1.StdioServerTransport();
await server.connect(transport);
console.error("Azure DevOps MCP Server running on stdio");
}
catch (error) {
console.error("Error starting server:", error);
process.exit(1);
}
}
main();
//# sourceMappingURL=index.js.map