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?"

Related MCP server: Azure DevOps MCP Server

🎯 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 .env file 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

Related MCP Connectors

Related MCP Servers