Skip to main content
Glama
README.mdโ€ข4.72 kB
# ๐Ÿš€ Azure DevOps MCP Server A custom **Model Context Protocol (MCP)** server built with **NestJS**, enabling AI agents (like Claude Desktop) to securely query **Azure DevOps** data such as work items, projects, and ticket statistics. --- ## ๐Ÿ“Œ Overview This project exposes Azure DevOps data through a standards-based **MCP server**, allowing any MCP-compatible AI agent to perform real-time queries such as: * ๐Ÿ” List all projects in the organization * ๐Ÿ“ Get count of created / active / closed work items * ๐Ÿงฉ Fetch ticket details * ๐Ÿ“Š Query backlog items or sprints * ๐Ÿ—๏ธ Extend Azure DevOps automation through AI It supports **two modes**: ### 1๏ธโƒฃ STDIO MCP Server Tested locally using the MCP Inspector (not using a direct Claude Desktop STDIO client). ### 2๏ธโƒฃ HTTP MCP Server Allows remote access using MCP-over-HTTP. --- ## ๐Ÿ—๏ธ Architecture ``` NestJS Application โ”‚ โ”œโ”€โ”€ MCP Module โ”‚ โ”œโ”€โ”€ Tool Definitions โ”‚ โ”œโ”€โ”€ STDIO Transport โ”‚ โ””โ”€โ”€ HTTP Transport โ”‚ โ”œโ”€โ”€ Azure DevOps Service โ”‚ โ””โ”€โ”€ Work Item API โ”‚ โ””โ”€โ”€ Project API โ”‚ โ””โ”€โ”€ Utilities โ”œโ”€โ”€ MCP Message Handlers โ””โ”€โ”€ Logger ``` --- ## โœจ Features ### โœ”๏ธ Custom Tools for Azure DevOps Tools exposed to MCP clients: | Tool Name | Description | | ------------------ | -------------------------------------------------- | | `list_projects` | Returns all Azure DevOps projects | | `count_tickets` | Returns summary of created/active/resolved tickets | | `get_workitem` | Fetch details of a single work item | | `search_workitems` | Query work items based on filters | --- ### โœ”๏ธ STDIO Transport (MCP Inspector) This project was tested locally using the MCP Inspector, which acts as an MCP client that connects over STDIO to your server. Run the server so the inspector can connect over STDIO: ```bash node dist/main.js ``` Start the inspector with: ```bash npx @modelcontextprotocol/inspector ``` When prompted in the inspector, choose the STDIO connection and point it at the running process (the inspector will spawn or attach to the process as configured). --- ### โœ”๏ธ HTTP MCP Support Start server: ```bash npm run start:prod ``` You can POST MCP-style requests: ```http POST http://localhost:3000/mcp ``` --- ## ๐Ÿ”ง Installation ```bash git clone https://github.com/saktheeswar/Azure_Devops_MCP_Server.git cd azure-devops-mcp npm install npm run build ``` --- ## ๐Ÿ”‘ Environment Variables Create `.env`: ``` BASE_URL=url AUSER_NAME=your-personal-access-token ADO_PAT=your-default-project ``` --- ## โ–ถ๏ธ Running the Server ### Run in STDIO mode (for MCP Inspector) ```bash node dist/main.js ``` ### Run in HTTP mode ```bash npm run start:prod ``` --- ## ๐Ÿงช Testing with MCP Inspector (You will explain this with screenshots in your blog.) ```bash npx @modelcontextprotocol/inspector ``` Then connect using STDIO: ``` node dist/main.js ``` --- ## ๐Ÿ’ป Code Walkthrough ### ๐Ÿ“ MCP Server Setup ```ts const server = new Server({ name: "azure-devops-mcp", version: "1.0.0", tools: { list_projects: { ... }, count_tickets: { ... } } }); ``` --- ### ๐Ÿ“ Azure DevOps API Integration ```ts async getProjects() { const url = `${this.baseUrl}/projects?api-version=7.0`; return this.http.get(url, this.headers); } ``` --- ### ๐Ÿ“ STDIO Bootstrap ```ts bootstrapStdio(server); ``` --- ### ๐Ÿ“ HTTP Controller ```ts @Post('/mcp') handleMcp(@Body() body) { return this.mcpHttpService.process(body); } ``` --- ## ๐Ÿ“š Example MCP Tool Call ```json { "method": "tools/list_projects", "params": {} } ``` Response: ```json { "projects": [ { "name": "Frontend" }, { "name": "Backend" }, { "name": "Infrastructure" } ] } ``` --- ## ๐Ÿงฉ Use Cases ### For Developers * Query Azure DevOps without opening the UI * Get ticket summaries instantly * Automate repetitive DevOps activities ### For AI Assistants * Smart sprint planning * Ticket prioritization * Automated status reporting ### For Teams * Faster decision making * AI-powered insights --- ## ๐Ÿ”ฅ Future Enhancements * Create/Update work items using AI * Integration with Release Pipelines * Sprint burndown insights * PR and Repository analytics --- ## ๐Ÿ“Ž Screenshots (Add your own) * Claude Desktop working * MCP Inspector connected * Tool response logs --- ## ๐Ÿง‘โ€๐Ÿ’ป Author **Saktheeswaran M** AI Engineer & Full-Stack Developer --- ## ๐Ÿ”— Source Code ๐Ÿ‘‰ **GitHub Repository:** (https://github.com/saktheeswar/Azure_Devops_MCP_Server)

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/saktheeswar/Azure_Devops_MCP_Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server