azure-updates-mcp
by jonnybottles
README.md
### Disclaimer: This is an independent, self-built project and is not an official Microsoft tool or service.
# Azure Updates MCP Server
mcp-name: io.github.jonnybottles/azure-updates
Stay up-to-date with Azure platform changes through AI-powered natural language queries. This Python-based MCP (Model Context Protocol) server connects AI assistants like Claude to [Azure Updates](https://azure.microsoft.com/en-us/updates/), enabling you to search and filter Azure service announcements, feature releases, preview launches, and retirement notices—all through conversational queries.
## What It Does
Azure Updates MCP Server bridges the gap between Azure's official updates feed and your AI assistant, allowing you to:
- **Search updates by keyword** - Ask about specific services, technologies, or features (e.g., "What's new with Azure Kubernetes Service?")
- **Filter by status** - Find what's in Preview, Generally Available, or being Retired
- **Track deprecations** - Stay ahead of service retirements and breaking changes
- **Discover categories** - Explore available Azure products and services through faceted search
- **Query by date range** - Find updates within specific timeframes
- **Look up by GUID** - Retrieve specific announcements directly
Perfect for developers, cloud architects, and IT professionals who need to monitor Azure platform evolution, plan migrations, or stay informed about new capabilities—without manually checking the Azure updates website.
## Requirements
### General
- **Python 3.9+**
- An MCP-compatible client (Claude Desktop, Cursor, Claude Code, GitHub Copilot CLI, etc.)
### Using `uvx` (Recommended)
If you are installing or running the server via **`uvx`**, you must have **uv** installed first.
- **uv** (includes `uvx`): https://github.com/astral-sh/uv
Install uv:
```bash
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
irm https://astral.sh/uv/install.ps1 | iex
```
Verify installation:
```bash
uv --version
uvx --version
```
> `uvx` allows you to run the MCP server without installing the package globally.
### Using pip (Alternative)
If you prefer not to use `uvx`, you can install the package directly with pip.
```bash
pip install azure-updates-mcp
```
In this case, `uv` / `uvx` is **not required**.
## Installation
### Install from PyPI
```bash
uvx azure-updates-mcp
```
Or install with pip:
```bash
pip install azure-updates-mcp
```
### Upgrade to Latest Version
```bash
uvx azure-updates-mcp@latest
```
Or with pip:
```bash
pip install --upgrade azure-updates-mcp
```
## Quick Setup
[](https://vscode.dev/redirect/mcp/install?name=azure-updates-mcp&config=%7B%22type%22%3A%20%22stdio%22%2C%20%22command%22%3A%20%22uvx%22%2C%20%22args%22%3A%20%5B%22azure-updates-mcp%22%5D%7D)
[](https://cursor.com/docs/context/mcp)
[](https://code.claude.com/docs/en/mcp)
[](https://docs.github.com/en/copilot/how-tos/use-copilot-agents/use-copilot-cli)
> **One-click setup:** Click the VS Code badge for automatic configuration (requires `uv` installed)
> **Manual setup:** See instructions below for Cursor, Claude Code, Copilot CLI, or Claude Desktop
## Features
- **azure_updates_search** – Search and filter Azure updates by keyword, category, status, date range, or GUID. Set `include_facets=True` to get taxonomy counts (product categories, products, tags, statuses). Use `limit=0` with `include_facets=True` to discover available filter values.
## Prompt Examples
Once connected to an MCP client, you can ask questions like:
1. **Get recent updates**: "Show me the 10 most recent Azure updates"
2. **Search by keyword**: "Find all Azure updates related to Kubernetes or AKS"
3. **Filter by status**: "What Azure features are currently in preview?"
4. **Check for retirements**: "Are there any upcoming Azure service retirements I should know about?"
5. **Discover categories**: "What Azure product categories and services are available in the updates?"
## Usage
### Run the MCP Server
```bash
uvx azure-updates-mcp
```
Or if installed with pip:
```bash
azure-updates-mcp
```
### Connect from Claude Desktop
Add to your Claude Desktop MCP config:
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
**Using uvx (recommended)**
```json
{
"mcpServers": {
"azure-updates": {
"command": "uvx",
"args": ["azure-updates-mcp"]
}
}
}
```
**Using installed package**
```json
{
"mcpServers": {
"azure-updates": {
"command": "azure-updates-mcp"
}
}
}
```
### Connect from Cursor
**Option 1: One-Click Install (Recommended)**
```
cursor://anysphere.cursor-deeplink/mcp/install?name=azure-updates-mcp&config=eyJjb21tYW5kIjogInV2eCIsICJhcmdzIjogWyJhenVyZS11cGRhdGVzLW1jcCJdfQ==
```
**Option 2: Manual Configuration**
Add to your Cursor MCP config:
- macOS: `~/Library/Application Support/Cursor/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`
- Windows: `%APPDATA%\Cursor\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json`
### Connect from Claude Code
```bash
claude mcp add --transport stdio azure-updates -- uvx azure-updates-mcp
```
### Connect from GitHub Copilot CLI
Add to `~/.copilot/mcp-config.json`:
```json
{
"mcpServers": {
"azure-updates": {
"type": "stdio",
"command": "uvx",
"args": ["azure-updates-mcp"]
}
}
}
```
## Development
```bash
pytest
ruff check src/ tests/
```
## License
MIT
TDQS
A4.5/5.0
Scored across 1 tool
Disambiguation5/5
Only one tool exists, so there is no possibility of confusion between tools. The tool's purpose is clear and unambiguous.
Naming Consistency5/5
With a single tool, naming consistency is inherently perfect. The name 'azure_updates_search' follows a clear verb_noun pattern.
Tool Count3/5
The server has only one tool, which feels thin for typical server scopes. However, the tool is comprehensive and well-designed to handle all search and filter needs for Azure updates, justifying its standalone nature.
Completeness5/5
The single tool covers all necessary operations for searching Azure updates: keyword search, multiple filters, pagination, GUID retrieval, and facets. No obvious gaps exist for a read-only search domain.
Maintenance
ActivityInactive
ResponsivenessNo issues