LinhDangOpti/mcpserver
If you are the rightful owner of mcpserver and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The Azure DevOps MCP Server integrates Azure DevOps with GitHub Copilot Chat, enabling natural language queries for work items.
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 storiessummarize ticket 13080show 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 storiesitem <id>- Show details for a specific ticketby-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:
- 🔌 Direct Integration - Copilot can access your Azure DevOps data as if it's a native feature
- 💬 Natural Conversation - No special commands or syntax needed
- ⚡ Real-time Context - Copilot knows about your tickets while you code
- 🔒 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
- Morning: Run
npm run refreshto get today's sprint data - During work: Ask Copilot about tickets - instant responses from cache
- Need updates? Run
npm run refreshagain
🎯 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
- Clone/copy this folder to your machine
- Create
.envfile with your Azure DevOps credentials - Install dependencies:
npm install && npm run build - Refresh cache:
npm run refresh - Configure VS Code to enable MCP server (see MCP Configuration above)
- 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 buildto recompile TypeScript
"Found 0 user stories"
- Check your email in
.envmatches Azure DevOps - Verify you have "Verify" tasks assigned in current sprint
Cache is outdated
- Run
npm run refreshto update
📝 License
ISC