18 KiB
Installation Testing Guide
This guide covers testing Azure MCP Server installation across different platforms and IDEs.
Table of Contents
Prerequisites
Before testing installation, ensure you have:
- Azure Subscription - Access to an Azure subscription
Platform-Specific Testing
Windows Testing
Installation Steps
-
Install Prerequisites
# Check if Node.js is installed node --version # If not installed, download from https://nodejs.org/ -
Install via NPM
npm install -g @azure/mcp@latest -
Install via NuGet
dotnet tool install Azure.Mcp
Verification
# Check Azure MCP version
azmcp --version
# Verify Azure CLI
az --version
# Test basic command
azmcp server start --help
Things to Test
- Installation completes without errors
- Binary is accessible from command line
- Extension loads in VS Code
- Server starts successfully
- Memory usage after installation: _____ MB
- Installation time: _____ minutes
macOS Testing
Installation Steps
-
Install Prerequisites
# Check if Node.js is installed node --version # Install via Homebrew if needed brew install node -
Install via NPM
npm install -g @azure/mcp@latest -
Install via .NET Tool
dotnet tool install Azure.Mcp
Verification
# Check Azure MCP version
azmcp --version
# Verify Azure CLI
az --version
# Test basic command
azmcp server start --help
Platform-Specific Checks
- Intel Macs: Installation works on x64 architecture
- Apple Silicon: Installation works on ARM64 architecture
Things to Test
- Installation completes without errors
- Binary has correct permissions (executable)
- Extension loads in VS Code
- Server starts successfully
- No "unidentified developer" warnings
- Memory usage after installation: _____ MB
- Installation time: _____ minutes
Linux Testing
Installation Steps
-
Install Prerequisites
# Check if Node.js is installed node --version # Ubuntu/Debian sudo apt update sudo apt install nodejs npm # Fedora sudo dnf install nodejs npm -
Install via NPM (Alternative)
npm install -g @azure/mcp@latest -
Install via .NET Tool (Alternative)
dotnet tool install Azure.Mcp
Verification
# Check Azure MCP version
azmcp --version
# Verify Azure CLI
az --version
# Test basic command
azmcp server start --help
Things to Test
- Installation completes without errors
- Binary has correct permissions
- Extension loads in VS Code
- Server starts successfully
- No dependency conflicts
- Memory usage after installation: _____ MB
- Installation time: _____ minutes
IDE Installation Testing
VS Code
Versions to Test
- VS Code Stable (latest)
- VS Code Insiders (latest)
Installation Testing
-
Install Extension
- Method 1: Via Extension Marketplace
- Method 2: Via Installation Link
-
Verify Installation
1. Open Command Palette (Ctrl+Shift+P / Cmd+Shift+P) 2. Run "MCP: List Servers" 3. Verify "Azure MCP Server" appears in the list 4. Click "Start Server" 5. Check Output window for startup logs
Things to Test
- Extension installs without errors
- Extension appears in Extensions list
- Server starts successfully
- Tools appear in GitHub Copilot Chat
- Tool count matches expectations
- Configuration changes are applied
- Server restarts successfully
- Logs are visible in Output window
Performance Checks
- Extension activation time: _____ ms
- Memory usage (extension): _____ MB
- Memory usage (server): _____ MB
- CPU usage during idle: _____ %
Visual Studio 2022
Versions to Test
- Visual Studio 2022 Community
- Visual Studio 2022 Professional
- Visual Studio 2022 Enterprise
Installation Testing
-
Install GitHub Copilot for Azure Extension
1. Open Visual Studio 2022 2. Go to Extensions → Manage Extensions... 3. Switch to the Browse tab in Extension Manager 4. Search for "GitHub Copilot for Azure" 5. Click Install 6. Restart Visual Studio when prompted -
Verify Installation
1. Open a solution or project 2. Open GitHub Copilot Chat 3. Select Agent Mode 4. Click the tools icon to view available tools 5. Search for "Azure MCP Server" to filter results 6. Verify Azure MCP tools appear in the list
Things to Test
- GitHub Copilot for Azure extension installs successfully
- Extension appears in Extensions list after restart
- GitHub Copilot Chat opens correctly
- Can switch to Agent Mode
- Tools icon shows available MCP tools
- Can search/filter for "Azure MCP Server" tools
- Server responds to commands in Agent mode
Performance Checks
- Extension load time: _____ seconds
- Memory usage: _____ MB
- CPU usage during idle: _____ %
IntelliJ IDEA
Versions to Test
- IntelliJ IDEA Ultimate (2024.3+)
- IntelliJ IDEA Community (2024.3+)
Installation Testing
-
Install GitHub Copilot Plugin
1. Open IntelliJ IDEA 2. Go to Settings/Preferences > Plugins 3. Search for "GitHub Copilot" 4. Install GitHub Copilot plugin 5. Restart IDE -
Configure Azure MCP Server
1. Go to File → Settings (or IntelliJ IDEA → Preferences on macOS) 2. Navigate to Tools → AI Assistant → Model Context Protocol (MCP) 3. Click the + icon to add a new MCP server 4. In the "New MCP Server" dialog, enter: - Name: Azure MCP Server - Command: npx (or azmcp if installed via dotnet tool) - Arguments: -y @azure/mcp@latest server start 5. Click OK to save 6. Restart AI Assistant if prompted -
Verify Installation
1. Open GitHub Copilot Chat 2. Verify Azure MCP tools are available 3. Test a simple command (e.g., "List my Azure subscriptions")
Things to Test
- GitHub Copilot plugin installs without errors
- Plugin appears in Plugins list
- MCP configuration dialog is accessible
- Can add Azure MCP Server configuration
- Server configuration saves successfully
- Azure MCP integrates with Copilot Chat
- Tools are accessible in chat
- Server responds to commands
Performance Checks
- Plugin load time: _____ seconds
- Memory usage: _____ MB
- CPU usage during idle: _____ %
UI-Based Mode Toggling Testing (Distribution-Specific)
Different distribution mechanisms provide different ways to configure server modes. Test the UI controls for each distribution method.
Distribution Method 1: VS Code Extension
Objective: Test VS Code Settings UI for mode toggling
Available Settings:
-
Azure Mcp: Enabled Services
- Location: Settings → Extensions → Azure MCP
- Purpose: Filter which Azure service namespaces are exposed
- Type: Multi-select list
- Options: storage, keyvault, cosmos, sql, etc.
-
Azure Mcp: Read Only
- Location: Settings → Extensions → Azure MCP
- Purpose: Enable read-only mode (blocks write operations)
- Type: Checkbox
- Default: Unchecked (read-write mode)
-
Azure Mcp: Server Mode
- Location: Settings → Extensions → Azure MCP
- Purpose: Choose tool exposure strategy
- Type: Dropdown
- Options:
single,namespace(default),all
Test 1: Change Server Mode via UI
Steps:
- Open VS Code Settings (Ctrl+, or Cmd+,)
- Search for "Azure MCP"
- Locate "Azure Mcp: Server Mode" dropdown
- Select "namespace" (default)
- Note current tool count in Copilot Chat
- Change to "all"
- Restart server: Command Palette → "MCP: List Servers" → Azure MCP → Start/Restart
- Check tool count again
Verify:
- Setting UI is accessible and clear
- Dropdown shows all three options: single, namespace, all
- Default is "namespace"
- Changing mode requires server restart (prompt shown)
- Tool count changes after restart:
- namespace: ~40-50 tools
- all: 100+ tools
- single: 1 tool
Test 2: Toggle Read-Only Mode via UI
Steps:
- Open VS Code Settings
- Search for "Azure MCP"
- Locate "Azure Mcp: Read Only" checkbox
- Check the box to enable read-only mode
- Restart server
- Test read operation: "List my storage accounts"
- Test write operation: "Create a storage account"
- Uncheck the box to disable read-only mode
- Restart server
- Test write operation again
Verify:
- Checkbox is visible and labeled clearly
- Default state is unchecked (read-write)
- Enabling requires server restart
- Read operations work in both modes
- Write operations blocked when enabled
- Write operations allowed when disabled
- Clear error messages when operations are blocked
Test 3: Filter Enabled Services via UI
Steps:
- Open VS Code Settings
- Search for "Azure MCP"
- Locate "Azure Mcp: Enabled Services" setting
- Click "Add Item" button
- Add "storage" to the list
- Add "keyvault" to the list
- Restart server
- Check available tools in Copilot Chat
Verify:
- Setting shows "Add Item" button
- Can add multiple service namespaces
- Can remove items from list
- Empty list = all services enabled
- Non-empty list = only specified services enabled
- Tool count reflects filtered services
- Test prompt for allowed service: "List storage accounts"
- Test prompt for filtered service: "List Cosmos DB accounts"
Test 4: Combine Multiple Settings
Steps:
- Set "Enabled Services" to: storage, keyvault
- Set "Server Mode" to: namespace
- Enable "Read Only" checkbox
- Restart server
- Test various operations
Verify:
- All three settings applied correctly
- Only Storage and Key Vault namespaces exposed (~2 tools)
- Read operations work for allowed services
- Write operations blocked by read-only mode
- Filtered services not accessible
Test 5: Settings Persistence
Steps:
- Configure settings: mode=namespace, readOnly=true, services=[storage]
- Restart VS Code completely
- Check if settings persisted
- Open Settings UI and verify values
- Start MCP server
- Verify configuration is applied
Verify:
- Settings persist across VS Code restarts
- Settings shown correctly in UI after restart
- Server starts with saved configuration
- No need to reconfigure
Distribution Method 2: NPM Package
Objective: Test CLI flag-based mode configuration with NPM-installed package
Installation:
npm install -g @azure/mcp@latest
Test 1: Server Mode via CLI Flags
Test namespace mode:
azmcp server start --mode namespace
Verify:
- Server starts successfully
- ~40-50 namespace-level tools exposed
- Tools grouped by service
Test all mode:
azmcp server start --mode all
Verify:
- Server starts successfully
- 100+ individual tools exposed
- Each operation has dedicated tool
Test single mode:
azmcp server start --mode single
Verify:
- Server starts successfully
- Exactly 1 tool exposed
- Internal routing functional
Test 2: Read-Only Mode via CLI Flag
Enable read-only:
azmcp server start --read-only
Verify:
- Server starts in read-only mode
- Read operations allowed
- Write operations blocked
Combine with mode:
azmcp server start --mode namespace --read-only
Verify:
- Both flags applied correctly
- Namespace mode + read-only restrictions
Test 3: Namespace Filtering via CLI Flags
Filter to specific services:
azmcp server start --namespace storage --namespace keyvault
Verify:
- Only specified namespaces exposed
- Other services filtered out
- Can specify multiple --namespace flags
Test 4: Tool Filtering via CLI Flags
Filter to specific tools:
azmcp server start --tool azmcp_subscription_list --tool azmcp_group_list
Verify:
- Only specified tools exposed
- Automatically switches to all mode
- Can specify multiple --tool flags
Distribution Method 3: .NET Tool (DNX)
Objective: Test CLI flag-based configuration with .NET tool installation
Installation:
dotnet tool install --global Azure.Mcp
Test 1: Server Mode via CLI Flags
Test namespace mode:
azmcp server start --mode namespace
Verify:
- .NET tool version works identically to NPM version
- All mode flags functional
- Tool exposure matches expectations
Test 2: Configuration File Support
Create config file (azmcp.config.json):
{
"serverMode": "namespace",
"readOnly": true,
"enabledServices": ["storage", "keyvault"]
}
Start with config:
azmcp server start --config azmcp.config.json
Verify:
- Config file loaded successfully
- Settings from file applied
- CLI flags override config file if specified
Distribution Method 4: IntelliJ IDEA Plugin
Objective: Test MCP Server configuration dialog for mode configuration
Installation:
- IntelliJ IDEA → Settings/Preferences → Plugins
- Search "Model Context Protocol (MCP)"
- Install plugin
- Restart IDE
Configuration Dialog Fields:
Based on IntelliJ's MCP configuration dialog:
- Name: Display name for the MCP server (e.g., "Azure MCP Server")
- Command: Executable command (e.g.,
npxorazmcp) - Arguments: Command-line arguments including mode flags
- Environment variables: Key-value pairs for configuration
- Working directory: Optional working directory path
Test 1: Configure via MCP Server Dialog
Steps:
- Navigate to File → Settings
- Go to Tools → AI Assistant → Model Context Protocol (MCP)
- Click the
+icon to open "New MCP Server" dialog - Enter the following values:
- Name:
Azure MCP Server - Command:
npx - Arguments:
-y @azure/mcp@latest server start
- Name:
- Leave other fields blank for default configuration
- Click OK to save
- Restart AI Assistant or IDE if prompted
Verify:
- Dialog opens correctly with all fields
- Can enter server name
- Command and arguments fields accept input
- Configuration saves successfully
- Server appears in MCP server list
- Server starts when AI Assistant is opened
Test 2: Configure Namespace Mode via Arguments
Steps:
- Open MCP Server configuration dialog
- Edit existing "Azure MCP Server" entry
- Update Arguments field to:
-y @azure/mcp@latest server start --mode namespace - Click OK and restart
- Test tool availability
Verify:
- Arguments field accepts mode flag
- Server restarts with new configuration
- Namespace mode applied (~40-50 tools)
- Tools grouped by service namespace
Test 3: Configure Read-Only Mode via Arguments
Steps:
- Edit "Azure MCP Server" configuration
- Update Arguments field to:
-y @azure/mcp@latest server start --mode namespace --read-only - Click OK and restart
- Test read operation: "List my storage accounts"
- Test write operation: "Create a storage account"
Verify:
- Read-only flag accepted in arguments
- Read operations work
- Write operations blocked
- Error messages displayed
Test 4: Configure Service Filtering via Arguments
Steps:
- Edit "Azure MCP Server" configuration
- Update Arguments field to:
-y @azure/mcp@latest server start --namespace storage --namespace keyvault - Click OK and restart
- Test allowed service: "List storage accounts"
- Test filtered service: "List Cosmos DB accounts"
Verify:
- Multiple namespace flags work
- Only specified services exposed
- Allowed services functional
- Filtered services not accessible
Test 5: Configuration Persistence
Steps:
- Configure server with specific mode and flags
- Close IntelliJ completely
- Reopen IntelliJ
- Navigate to MCP settings
- Verify configuration still present
- Start AI Assistant and test
Verify:
- Configuration persists across IDE restarts
- No need to reconfigure
- Server starts with saved settings
//TODO: Add VS, CLaude, Docker instructions.
What to Report for UI Issues
When logging UI configuration issues, include:
- Distribution method (VS Code ext, NPM, .NET tool, etc.)
- IDE/Platform version
- Screenshot of settings UI
- Expected vs actual behavior
- Steps to reproduce
- Settings file content (if applicable)
- Server startup logs
- Whether restart was performed
Verification Steps
After installation on any platform/IDE, verify:
1. Server Status
# Check if server is running
# In VS Code: Check Output > MCP: Azure MCP Server
# Look for: "Server started successfully"
2. Tool Discovery
# In GitHub Copilot Chat (Agent mode):
# Ask: "What Azure MCP tools are available?"
# Verify: Tools are listed
3. Authentication
# Login to Azure
az login
# Test authentication
# Ask Copilot: "List my Azure subscriptions"
4. Basic Functionality
# Test a simple command
# Ask Copilot: "List my Azure resource groups"
# Verify: Resource groups are returned
Related Resources
Next Steps: After completing installation testing, proceed to Scenario Testing.