Azure DevOps Sprint MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Azure DevOps Sprint MCP Servershow my open work items in the current sprint"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Azure DevOps Sprint MCP Server
Model Context Protocol (MCP) server for Azure DevOps sprint board and work item management
Enterprise-grade MCP server for managing Azure DevOps work items, sprints, and boards through natural language (Claude Desktop) or programmatic interfaces. Built with FastMCP and designed for production use with Azure Managed Identity authentication.
โจ Features
15 MCP Tools - Complete work item and sprint management
Multi-Project Support - Work with multiple Azure DevOps projects simultaneously (NEW in v2.1)
Health & Monitoring - Built-in server health checks and performance metrics
Enterprise Authentication - Azure Managed Identity, Service Principal, or PAT support
Production Ready - Error handling, retry logic, caching, and security hardening
Docker Native - Optimized containers with health checks and dual transport modes
Related MCP server: Azure DevOps MCP Server
๐ Quick Start
Prerequisites
Linux/macOS: Python 3.10+ or Docker
Windows: Docker Desktop with WSL 2 โ See Windows/WSL Guide
Azure DevOps organization access
Authentication: Azure CLI (
az login), Service Principal, or PAT
Step 1: Clone and Configure
# Clone repository
git clone https://github.com/yourusername/azure-devops-sprint-mcp.git
cd azure-devops-sprint-mcp
# Create .env file from template
cp .env.example .env
# Edit .env with your settings (required!)
nano .env # or use your preferred editorRequired in .env:
AZURE_DEVOPS_ORG_URL=https://dev.azure.com/your-organization
AZURE_DEVOPS_PROJECT=YourProject # RecommendedStep 2: Choose Your Deployment Mode
Option A: Docker (Recommended)
# Login to Azure for authentication
az login
# Start server with Docker
docker-compose up -d
# View logs
docker-compose logs -fOption B: Python (Local Development)
# Run setup script (creates venv, installs dependencies)
./scripts/setup.sh
# Login to Azure for authentication
az login
# Start server
./scripts/start.shQuick Verification
# Check server is running
curl http://localhost:8000/mcp
# Check Docker logs (if using Docker)
docker-compose logs
# Stop server
docker-compose down # Docker mode
# OR
./scripts/stop.sh # Python modeโ๏ธ Configuration
The .env file supports these options:
# Required
AZURE_DEVOPS_ORG_URL=https://dev.azure.com/your-organization
# Recommended (default project for multi-project support)
AZURE_DEVOPS_PROJECT=MyProject
# Authentication Methods (choose one)
# 1. Managed Identity (Recommended) - Just run 'az login', no config needed!
# 2. Service Principal (for automation)
# AZURE_CLIENT_ID=your-client-id
# AZURE_CLIENT_SECRET=your-client-secret
# AZURE_TENANT_ID=your-tenant-id
# 3. Personal Access Token (legacy)
# AZURE_DEVOPS_PAT=your-pat-token
# Server Settings (optional)
# MCP_TRANSPORT=http
# PORT=8000Recommended: Use Azure Managed Identity (az login) - no tokens to manage, automatic refresh, and preserves your user identity in Azure DevOps audit logs.
๐ Documentation
Setup & Installation - Complete setup guide for all deployment modes
Usage Guide - Tool reference, examples, and best practices
WSL + Claude Desktop - Windows users guide for Claude Desktop integration
Docker Deployment - Docker and production deployment guide
Troubleshooting - Common issues and solutions
API Reference - Fields, states, types, and WIQL queries
Development Guide - For contributors
Changelog - Version history
๐ ๏ธ MCP Tools (15 Total)
Core Work Item Tools
get_my_work_items- Get your assigned work itemsget_work_item_details- Get complete work item detailsupdate_work_item- Update work item fieldscreate_work_item- Create new work itemsadd_comment- Add comments to work items
Sprint Management Tools
get_sprint_work_items- Get work items for a sprintget_current_sprint- Get current active sprintget_team_iterations- List all sprints/iterationsmove_to_sprint- Move work items between sprints
Advanced Query Tools (NEW in v2.0)
get_work_item_hierarchy- Get parent-child work item treessearch_work_items- Full-text search across work itemsget_historical_work_items- Query historical state changes
Monitoring Tools (NEW in v2.1)
health_check- Server health and auth statusget_service_statistics- Performance metrics and cache stats
MCP Resources (3)
sprint://current- Current sprint overviewsprint://{iteration_path}- Specific sprint detailsworkitem://{id}- Work item details with comments
๐ก Common Use Cases
Daily Standup with Claude Desktop
"Show me my active work items for today"
"What's the status of our current sprint?"
"Move work item 12345 to the next sprint"
Sprint Planning
# Get current sprint capacity
sprint = await sprint_service.get_current_sprint()
print(f"Progress: {sprint['completion_percentage']}%")
# Get work items
items = await sprint_service.get_sprint_work_items()Multi-Project Management (NEW)
"Show me work items from Project-A and Project-B"
# Work with multiple projects
manager = ServiceManager(auth)
items_a = await manager.get_workitem_service("Project-A").get_my_work_items()
items_b = await manager.get_workitem_service("Project-B").get_my_work_items()See docs/USAGE.md for more examples.
๐ Authentication
The server supports three authentication methods (tried in order):
1. Azure Managed Identity (โญ Recommended)
Benefits:
โ Uses your personal Azure credentials
โ No tokens to manage or rotate
โ Automatic token refresh
โ All operations tracked as YOUR user
Setup:
# Just login to Azure CLI
az login
# Server automatically uses your credentials
./scripts/start.sh2. Service Principal (For Automation)
# Set in .env
AZURE_CLIENT_ID=your-client-id
AZURE_CLIENT_SECRET=your-client-secret
AZURE_TENANT_ID=your-tenant-id3. Personal Access Token (Development Only)
# Set in .env
AZURE_DEVOPS_PAT=your-pat-tokenSee docs/SETUP.md for detailed authentication setup.
๐ณ Docker Deployment
Quick Start
# Start with docker-compose
docker-compose up -d
# View logs
docker-compose logs -f
# Stop
docker-compose downProduction Deployment
See docs/DOCKER.md for:
Azure Container Registry (ACR) deployment
Azure Container Instances (ACI) deployment
Health checks and monitoring
Environment configuration
Important Notes
Cache Configuration: The Azure DevOps SDK cache is stored in /tmp/.azure-devops (ephemeral, recreated on container restart). The application's performance cache (src/cache.py) is in-memory and provides 95%+ hit rates for work item queries. No persistent cache volume is needed, simplifying deployment and avoiding permission issues.
๐ฅ๏ธ Claude Desktop Integration
Linux/macOS (Direct)
Edit ~/.config/Claude/claude_desktop_config.json:
{
"mcpServers": {
"azure-devops": {
"command": "python",
"args": ["/path/to/azure-devops-sprint-mcp/scripts/run_stdio.py"],
"env": {
"AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/yourorg",
"AZURE_DEVOPS_PROJECT": "YourProject"
}
}
}
}Windows + WSL (Docker Bridge)
See comprehensive guide: docs/WSL-CLAUDE-DESKTOP.md
Quick Summary:
Start Docker container in WSL:
docker-compose up -dConfigure Claude Desktop (Windows):
{ "mcpServers": { "azure-devops": { "command": "C:\\Users\\YourUsername\\azure-devops-mcp\\run_docker_stdio.bat" } } }Restart Claude Desktop
๐ Project Structure
azure-devops-sprint-mcp/
โโโ src/ # Core MCP server implementation
โ โโโ server.py # FastMCP server (15 tools + 3 resources)
โ โโโ auth.py # Multi-method authentication
โ โโโ service_manager.py # Multi-project management
โ โโโ cache.py # Performance caching
โ โโโ validation.py # Security validators
โ โโโ services/ # Sprint and work item services
โโโ tests/ # Comprehensive test suite
โโโ docs/ # Complete documentation
โโโ scripts/ # Maintenance and bridge scripts
โ โโโ setup.sh # First-time setup
โ โโโ start.sh # Start server
โ โโโ stop.sh # Stop server
โ โโโ restart.sh # Restart server
โ โโโ run_stdio.py # STDIO bridge (Linux/macOS)
โ โโโ run_docker_stdio.py # Docker bridge (Windows/WSL)
โ โโโ run_docker_stdio.bat # Batch bridge (Windows)
โโโ examples/ # Example usage scripts
โโโ docker/ # Docker development files
โโโ Dockerfile # Production Docker image
โโโ docker-compose.yml # Docker Compose config
โโโ pyproject.toml # Package metadata
โโโ requirements.txt # Dependencies
โโโ .env.example # Configuration template๐งช Development
Setup Development Environment
# Clone and setup
git clone https://github.com/yourusername/azure-devops-sprint-mcp.git
cd azure-devops-sprint-mcp
./scripts/setup.sh
# Install dev dependencies
pip install -e ".[dev]"Run Tests
# All tests
pytest
# Unit tests only (skip integration)
pytest -m "not integration"
# With coverage
pytest --cov=srcCode Quality
# Format code
black src tests
# Lint
ruff check src tests
# Type checking
mypy srcSee docs/DEVELOPMENT.md for detailed development guide.
๐ฏ What's New in v2.1
Multi-Project Support - Work with multiple Azure DevOps projects simultaneously
ServiceManager for lazy-loaded, cached service instances
Per-project cache isolation
All tools accept optional
projectparameterBackward compatible with default project
Health & Monitoring Tools
health_check()- Server health and authentication statusget_service_statistics()- Performance metrics and cache statistics
Improved Documentation
Reorganized docs into docs/ folder
Dedicated Windows/WSL setup guide
Consolidated troubleshooting guide
Complete API reference
Maintenance Scripts
./scripts/setup.sh- Automated setup./scripts/start.sh- Start server (Docker or Python)./scripts/stop.sh- Stop server./scripts/restart.sh- Restart server
See CHANGELOG.md for complete version history.
๐ Troubleshooting
Common Issues
Authentication Failed:
# Verify Azure login
az account show
# If not logged in:
az loginServer Won't Start:
# Check logs
docker-compose logs
# Restart
./scripts/restart.shWindows/WSL Issues:
Ensure Docker Desktop is running
Enable WSL integration in Docker Desktop settings
See docs/TROUBLESHOOTING.md for comprehensive troubleshooting guide.
๐ Performance
โ 70% smaller responses - Specific field selection vs expand='All'
โ 95%+ cache hit rate - TTL-based in-memory caching with auto-invalidation
โ Sub-second cached queries - In-memory LRU cache (no persistent storage needed)
โ Automatic retry - Exponential backoff for transient errors
โ Query limits enforced - No unbounded result sets
โ Simplified deployment - SDK cache in
/tmp(no volume permission management)
๐ค Contributing
Contributions welcome! Please see docs/DEVELOPMENT.md for:
Development setup
Code style guidelines
Testing requirements
Pull request process
๐ License
MIT License - See LICENSE file for details.
๐ Links
Documentation: docs/
Issues: https://github.com/yourusername/azure-devops-sprint-mcp/issues
Azure DevOps API: https://learn.microsoft.com/rest/api/azure/devops/
MCP Protocol: https://modelcontextprotocol.io/
FastMCP: https://github.com/jlowin/fastmcp
Built with โค๏ธ using FastMCP and Azure DevOps REST API
Version 2.1 - Multi-Project Support - Production Ready
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/St3v3a/azure-devops-sprint-mcp-public'
If you have feedback or need assistance with the MCP directory API, please join our Discord server