UNPKG

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

Version:

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

55 lines (45 loc) 2.31 kB
import * as azdev from "azure-devops-node-api"; import * as WorkItemTrackingApi from "azure-devops-node-api/WorkItemTrackingApi"; import * as GitApi from "azure-devops-node-api/GitApi"; import { CoreApi } from "azure-devops-node-api/CoreApi"; import { BuildApi } from "azure-devops-node-api/BuildApi"; import { ReleaseApi } from "azure-devops-node-api/ReleaseApi"; import { getAccessToken } from "./token-manager"; import { PipelinesApi } from "azure-devops-node-api/PipelinesApi"; let connection: azdev.WebApi | null = null; export async function getAzureDevOpsConnection(organizationUrl: string): Promise<azdev.WebApi> { connection = null; try { const accessToken = await getAccessToken(); const authHandler = azdev.getBearerHandler(accessToken); connection = new azdev.WebApi(organizationUrl, authHandler); return connection; } catch (error) { console.error("Error getting Azure DevOps connection:", error); throw error; } } export async function getWorkItemTrackingApi(organizationUrl: string): Promise<WorkItemTrackingApi.IWorkItemTrackingApi> { const connection = await getAzureDevOpsConnection(organizationUrl); return await connection.getWorkItemTrackingApi(); } export async function getGitApi(organizationUrl: string): Promise<GitApi.IGitApi> { const connection = await getAzureDevOpsConnection(organizationUrl); return await connection.getGitApi(); } export async function getCoreApi(organizationUrl: string): Promise<CoreApi> { const connection = await getAzureDevOpsConnection(organizationUrl); return await connection.getCoreApi(); } export async function getBuildApi(organizationUrl: string): Promise<BuildApi> { const connection = await getAzureDevOpsConnection(organizationUrl); return await connection.getBuildApi(); } export async function getReleaseApi(organizationUrl: string): Promise<ReleaseApi> { const connection = await getAzureDevOpsConnection(organizationUrl); return await connection.getReleaseApi(); } export async function getPipelinesApi(organizationUrl: string): Promise<PipelinesApi> { const connection = await getAzureDevOpsConnection(organizationUrl); return await connection.getPipelinesApi(); }