UNPKG

@mcp-apps/azure-devops-mcp-server

Version:

A Model Context Protocol (MCP) server for Azure DevOps integration

88 lines 8.55 kB
#!/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"); // FOR TESTING ONLY: Uncomment the following lines to use a specific access token // import { getAccessToken } from "./utils/token-manager"; // const accessToken = getAccessToken(); // Create server instance const server = new mcp_js_1.McpServer({ name: "azure-devops-mcp-server", description: "Azure DevOps MCP Server", version: "1.0.0", capabilities: { resources: {}, tools: {}, }, }); // 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); // 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