azure-updates-mcp
Click on "Deploy 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-updates-mcpShow me recent Azure retirement announcements"
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.
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, 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.
Related MCP server: kusto-mcp
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:
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
irm https://astral.sh/uv/install.ps1 | iexVerify installation:
uv --version
uvx --version
uvxallows 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.
pip install azure-updates-mcpIn this case, uv / uvx is not required.
Installation
Install from PyPI
uvx azure-updates-mcpOr install with pip:
pip install azure-updates-mcpUpgrade to Latest Version
uvx azure-updates-mcp@latestOr with pip:
pip install --upgrade azure-updates-mcpQuick Setup
One-click setup: Click the VS Code badge for automatic configuration (requires
uvinstalled) 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=Trueto get taxonomy counts (product categories, products, tags, statuses). Uselimit=0withinclude_facets=Trueto discover available filter values.
Prompt Examples
Once connected to an MCP client, you can ask questions like:
Get recent updates: "Show me the 10 most recent Azure updates"
Search by keyword: "Find all Azure updates related to Kubernetes or AKS"
Filter by status: "What Azure features are currently in preview?"
Check for retirements: "Are there any upcoming Azure service retirements I should know about?"
Discover categories: "What Azure product categories and services are available in the updates?"
Usage
Run the MCP Server
uvx azure-updates-mcpOr if installed with pip:
azure-updates-mcpConnect from Claude Desktop
Add to your Claude Desktop MCP config:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Using uvx (recommended)
{
"mcpServers": {
"azure-updates": {
"command": "uvx",
"args": ["azure-updates-mcp"]
}
}
}Using installed package
{
"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.jsonWindows:
%APPDATA%\Cursor\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
Connect from Claude Code
claude mcp add --transport stdio azure-updates -- uvx azure-updates-mcpConnect from GitHub Copilot CLI
Add to ~/.copilot/mcp-config.json:
{
"mcpServers": {
"azure-updates": {
"type": "stdio",
"command": "uvx",
"args": ["azure-updates-mcp"]
}
}
}Development
pytest
ruff check src/ tests/License
MIT
Available Tools
1 toolazure_updates_searchA
Search, filter, and retrieve Azure service updates from the official JSON API.
Combines keyword search, category filtering, status filtering, and date range filtering into a single flexible tool. All filter parameters are optional and can be combined. When no filters are provided, returns the most recent updates.
Use this tool to:
Browse recent updates (no filters)
Search for updates mentioning a specific topic (query="AKS")
Filter by product (product="Azure Kubernetes Service")
Filter by product category (product_category="Compute")
Filter by service category (category="Azure Kubernetes Service") -- partial match across all taxonomy
Find updates by status (status="In preview", "Launched", "Retirements", "In development")
Get updates in a date range (start_date="2025-01-01", end_date="2025-01-31")
Retrieve a specific update by its GUID/ID (guid="...")
Combine any of the above (query="networking" + status="Launched")
Paginate with offset (offset=10, limit=10 for page 2)
Discover available categories and taxonomy (include_facets=True, limit=0)
Get an overview with facets + recent items (include_facets=True, limit=10)
Args: query: Optional keyword for server-side full-text search. category: Optional category to filter by (case-insensitive partial match across products, product_categories, and tags). status: Optional status filter. Valid values: Launched, In preview, In development, Retirements. start_date: Optional start date in ISO format (YYYY-MM-DD). Only include updates created on or after this date. end_date: Optional end date in ISO format (YYYY-MM-DD). Only include updates created on or before this date. Defaults to today when start_date is provided. guid: Optional unique identifier to retrieve a single specific update. When provided, all other filters are ignored and a single update is returned. limit: Maximum number of results to return (default: 10, max: 100). Set to 0 with include_facets=True for a facets-only response. Ignored when guid is provided. offset: Number of results to skip for pagination (default: 0). product: Optional product name filter (exact match against products list). product_category: Optional product category filter (exact match). include_facets: When True, includes taxonomy facets (product_categories, products, tags, statuses) with occurrence counts in the response. Use with limit=0 to get only facets (replaces category listing).
Returns: Dictionary with: - total_found: Number of updates matching the filters (from API count) - updates: List of matching update objects (up to limit) - filters_applied: Summary of which filters were used - facets: (only when include_facets=True) Taxonomy with product_categories, products, tags, and statuses lists, each containing {name, count} items
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| category | No | ||
| status | No | ||
| start_date | No | ||
| end_date | No | ||
| guid | No | ||
| limit | No | ||
| offset | No | ||
| product | No | ||
| product_category | No | ||
| include_facets | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explains that all filters are optional, default returns recent updates, guid overrides other filters, and facets behavior. It also mentions the return structure. There is no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear opening, a bulleted use-case list, and parameter explanations. It is thorough but slightly lengthy; however, every sentence adds value. It front-loads the core purpose before detailing options.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 11 parameters and an output schema, the description explains all parameter interactions, pagination, facets, and return dictionary fields. It is complete enough for an agent to use the tool correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must fully explain each parameter. It does so comprehensively: all 11 parameters are described with types, defaults, allowed values (e.g., status enum), and behaviors (e.g., limit=0 for facets-only). This adds significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool searches, filters, and retrieves Azure service updates from the official JSON API. It emphasizes combining multiple filter types into one flexible tool, which distinguishes it from potential siblings (though none listed).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a detailed bulleted list of use cases, from browsing recent updates to filtering by various criteria and using facets. It explains when to use each parameter combination, including the behavior when guid is provided. However, it does not explicitly mention when not to use the tool or suggest alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.3.0- First observed
azure_updates_search
TDQS
Scored across 1 tool
Only one tool exists, so there is no possibility of confusion between tools. The tool's purpose is clear and unambiguous.
With a single tool, naming consistency is inherently perfect. The name 'azure_updates_search' follows a clear verb_noun pattern.
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.
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
Related MCP Connectors
A live, curated feed of new AI agent capabilities across MCP, SDKs, models, and APIs.
Capture feature requests and bug reports from chat into a searchable, AI-categorized backlog.
Versioned documentation registry and semantic search for AI tools and coding assistants.
Search your knowledge bases from any AI assistant using hybrid RAG.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables intelligent interaction with Azure resources through natural language by translating requests into safe, auditable Azure CLI commands with plan/review workflows and direct access to 8 Azure services including Storage, Cosmos DB, Key Vault, and more.31MIT
- AlicenseAqualityAmaintenanceEnables AI assistants to query Azure Data Explorer using natural language, eliminating the need to write KQL.7847MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to search and retrieve Azure service updates, retirements, and feature announcements using natural language queries with fast local caching.MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to interact with Azure DevOps Server 2022 through natural language, enabling queries and operations on pipelines, pull requests, builds, and repositories.163931MIT