add-azure-mcp-tools

Guides the full lifecycle of adding new commands to Azure MCP toolsets from scaffolding through PR submission.

3.6k|607|Updated Apr 9, 2025
One-click install
npx skills add https://github.com/microsoft/mcp --skill add-azure-mcp-tools
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: add-azure-mcp-tools
Source: https://github.com/microsoft/mcp/tree/main/.github/skills/add-azure-mcp-tools
Command: npx skills add https://github.com/microsoft/mcp --skill add-azure-mcp-tools

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Adding a new tool to the Azure MCP server involves many coordinated steps—options classes, service implementations, command registration, JSON serialization contexts, unit tests, live test resources, and security validation. This Skill provides a gated, phase-by-phase workflow so nothing is missed and every contribution meets the repository's security and engineering standards.

Core Features & Use Cases

  • Phased Implementation Workflow: Walks through toolset scaffolding (Phase 0), command implementation (Phase 1), unit tests (Phase 2), and PR submission, with explicit gates that must pass before proceeding.
  • Security-First Guidance: Enforces input validation per Azure resource naming rules, safe logging practices (never logging option objects), endpoint validation via EndpointValidator, and MCP-specific threat mitigations.
  • Code Patterns & Templates: Provides ready-to-adapt C# templates for Options classes, SubscriptionCommand implementations, service layers with sovereign cloud support, and JSON serialization contexts.
  • Use Case: A developer wants to add a "storage container delete" command to the Azure MCP server. The Skill guides them through creating the options class, implementing the service with proper endpoint validation, writing the command with CommandMetadata attributes, adding unit tests, and verifying the build gates pass.

Quick Start

Ask the AI to add a new Azure MCP tool, for example by describing the command you want such as adding a storage container delete command or creating a new KeyVault toolset with a secret get command.

Frequently Asked Questions about add-azure-mcp-tools

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a new command to the Azure MCP server?

Follow the phased workflow: create an Options class with [Option] attributes, implement the service interface inheriting BaseAzureService or BaseAzureResourceService, write the command class inheriting SubscriptionCommand, register it in the toolset Setup class, and add unit tests. Each phase has a build gate that must pass.

What base class should an Azure MCP command inherit from?

Commands needing an Azure subscription inherit from SubscriptionCommand<TOptions, TResult> with ISubscriptionResolver injected. Commands that do not need a subscription, such as CLI wrappers or documentation tools, inherit directly from BaseCommand<TOptions, TResult>.

Does every Azure MCP tool need test-resources.bicep files?

Only commands that interact with Azure resources require test-resources.bicep, test-resources-post.ps1, RBAC role assignments, and recorded live tests. Non-Azure commands like CLI wrappers or best-practice tools skip these but still require unit tests.

How do I handle data plane endpoints across Azure sovereign clouds?

Use a switch expression on AzureService.CloudConfiguration.CloudType to select the correct endpoint suffix for public, China, and US Government clouds. Never hardcode URLs like blob.core.windows.net, and apply EndpointValidator.ValidateAzureServiceEndpoint for user-derived endpoints.

Why should I never log the options object in Azure MCP commands?

Option objects may contain secrets, connection strings, or PII that would leak into logs. Log only individually named, known-safe fields such as options.Subscription and options.ResourceGroup, and strip sensitive values from error messages returned to callers.