Skip to main content
Glama

Azure DevOps MCP Server

A Model Context Protocol (MCP) server that integrates Azure DevOps with GitHub Copilot Chat, allowing you to query work items naturally through conversation

πŸš€ What is MCP?

Model Context Protocol (MCP) is an open standard that connects AI assistants like GitHub Copilot to external data sources. This tool implements an MCP server that:

  • πŸ”Œ Connects GitHub Copilot to your Azure DevOps project

  • πŸ’¬ Enables natural language queries - just ask Copilot about your tickets

  • ⚑ Provides instant responses from cached data

  • πŸ”’ Keeps your data local - no third-party services involved

Instead of switching between VS Code and Azure DevOps web portal, you can ask Copilot directly:

  • "Show my sprint tickets"

  • "Summarize ticket 13080"

  • "What tickets are in ACC?"

🎯 What This Does

This tool helps you:

  • Instantly view all User Stories where you have verification tasks assigned

  • Query cached data without API rate limits or permission prompts

  • Summarize tickets with full details including comments and descriptions

  • Track your sprint work efficiently

  • Stay in your IDE - no context switching needed

✨ Key Features

  • πŸ”Œ MCP Protocol Implementation - Native integration with GitHub Copilot via Model Context Protocol

  • πŸš€ Cache-based queries - Instant responses from local cache

  • πŸ” Smart filtering - Automatically finds User Stories with your query

  • πŸ’¬ Full ticket details - Descriptions, comments, state, assignees, tags

  • πŸ“Š Sprint tracking - Focused on current sprint items only

  • πŸ€– Natural language interface - Ask Copilot in plain English, no special syntax needed

πŸ› οΈ Setup

1. Prerequisites

  • Node.js installed

  • Azure DevOps personal access token

2. Configuration

Create a .env file with your credentials:

AZURE_DEVOPS_ORG_URL=https://your-org.visualstudio.com AZURE_DEVOPS_TOKEN=your-personal-access-token AZURE_DEVOPS_PROJECT=your-project-name AZURE_DEVOPS_USER_EMAIL=your.email@company.com

3. Install Dependencies

npm install npm run build

πŸ“– How to Use

Step 1: Refresh Cache (Once per day or when needed)

npm run refresh

This fetches all User Stories from the current sprint where you have a "Verify" task assigned. Takes ~10-30 seconds depending on the number of stories.

Output example:

Found 12 user stories with your verify tasks βœ“ Cache updated successfully! Work items: 12 Last updated: 2025-11-17T07:33:36.435Z

Step 2: Query Your Tickets (Instant, no prompts!)

After caching, you can query instantly using GitHub Copilot Chat in VS Code:

In Copilot Chat, ask:

  • show all my sprint user stories

  • summarize ticket 13080

  • show all tickets in status "In ACC"

  • show tickets with tag "HIGHPRIO"

Or use the CLI:

# List all your verify stories node cli.js my-verify # Get details of a specific ticket node cli.js item 13080 # Query cached data npm run query

Query Cache Commands

npm run query

Available commands:

  • list - List all cached user stories

  • item <id> - Show details for a specific ticket

  • by-state <state> - Filter by state (Active, "In ACC", New, etc.)

  • info - Show cache information

🎨 MCP Server Integration with GitHub Copilot

What Makes This Special?

This tool implements the Model Context Protocol (MCP), which means:

  1. πŸ”Œ Direct Integration - Copilot can access your Azure DevOps data as if it's a native feature

  2. πŸ’¬ Natural Conversation - No special commands or syntax needed

  3. ⚑ Real-time Context - Copilot knows about your tickets while you code

  4. πŸ”’ Secure & Local - Your data stays on your machine, accessed via your personal token

How It Works

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ GitHub Copilot β”‚ "Show my sprint tickets" β”‚ in VS Code β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ MCP Protocol β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ MCP Server β”‚ Queries local cache β”‚ (This Tool) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Cached Data β”‚ Your sprint tickets β”‚ work-items.jsonβ”‚ (refreshed from Azure DevOps) β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
### MCP Configuration The MCP server is configured in `.vscode/settings.json`: ```json { "github.copilot.chat.codeGeneration.instructions": [ { "file": "azure-devops-mcp-server" } ], "mcp.servers": { "azure-devops": { "command": "node", "args": ["dist/index.js"], "cwd": "${workspaceFolder}/azure-devops-mcp-server" } } }

This tells VS Code to run the MCP server when Copilot needs Azure DevOps data.

πŸ“ Project Structure

azure-devops-mcp-server/ β”œβ”€β”€ src/ β”‚ β”œβ”€β”€ azure-devops-client.ts # Azure DevOps API client β”‚ └── index.ts # MCP server implementation β”œβ”€β”€ cache/ β”‚ └── work-items.json # Cached sprint data β”œβ”€β”€ cli.js # Command-line interface β”œβ”€β”€ refresh-cache.js # Cache refresh script β”œβ”€β”€ query-cache.js # Cache query script β”œβ”€β”€ .env # Your credentials (gitignored) └── package.json # Project configuration

πŸ”„ Typical Workflow

  1. Morning: Run npm run refresh to get today's sprint data

  2. During work: Ask Copilot about tickets - instant responses from cache

  3. Need updates? Run npm run refresh again

🎯 Why This Matters

Before this tool:

  • Every query required clicking "Allow" button

  • Interrupts your flow

  • Slow responses

With this tool:

  • Cache once, query unlimited times

  • No permission prompts

  • Instant responses in Copilot Chat

πŸš€ Quick Start for Team Members

  1. Clone/copy this folder to your machine

  2. Create with your Azure DevOps credentials

  3. Install dependencies: npm install && npm run build

  4. Refresh cache: npm run refresh

  5. Configure VS Code to enable MCP server (see MCP Configuration above)

  6. Start chatting with Copilot about your tickets!

πŸ’‘ Pro Tip: Once the MCP server is running, Copilot becomes your Azure DevOps assistant. Just ask questions naturally!

πŸ’‘ Tips

  • Refresh cache at the start of your workday

  • Cache includes all comments and descriptions

  • Works offline once cached

  • Cache file is human-readable JSON (check cache/work-items.json)

πŸ”§ Troubleshooting

"Error: azureClient.getUserStoriesWithMyVerifyTasks is not a function"

  • Run npm run build to recompile TypeScript

"Found 0 user stories"

  • Check your email in .env matches Azure DevOps

  • Verify you have "Verify" tasks assigned in current sprint

Cache is outdated

  • Run npm run refresh to update

πŸ“ License

ISC

-
security - not tested
F
license - not found
-
quality - not tested

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/LinhDangOpti/mcpserver'

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