@mcp-apps/azure-devops-mcp-server
Version:
A Model Context Protocol (MCP) server for Azure DevOps integration
88 lines • 8.55 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");
// 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