Microsoft's new IIS Migration MCP Server introduces AI-powered guidance for enterprises migrating legacy ASP.NET applications to Azure App Service Managed Instance, addressing OS-level dependencies that have historically blocked lift-and-shift migrations.
AI-Guided Migration Transforms IIS to Azure App Service Managed Instance Transition
Enterprises running ASP.NET Framework workloads on Windows Server with IIS face a familiar dilemma: modernize or stay put. The applications function reliably, the infrastructure remains stable, and nobody wants to be responsible for breaking production during a cloud migration. Yet the operational costs of maintaining aging on-premises servers, patching Windows, and managing IIS continue to climb.
Microsoft has introduced a solution that bridges this gap: the IIS Migration MCP Server, an AI-guided system that transforms complex migrations to Managed Instance on Azure App Service from a daunting technical challenge into a streamlined, conversational process.
The Evolution: From Migration Blockers to Managed Instance
Traditional Azure App Service has long served as the lift-and-shift destination for IIS-hosted applications. However, applications with OS-level dependencies—Windows registry keys, COM components, SMTP relay, MSMQ queues, local file system access, or custom fonts—have historically been migration blockers. These dependencies forced teams into expensive re-architecture projects or kept them anchored to virtual machines.
Managed Instance on Azure App Service changes this equation entirely. Running on the PremiumV4 (PV4) SKU with IsCustomMode=true, it provides:
- Registry Adapters: Redirect Windows Registry reads to Azure Key Vault secrets without code changes
- Storage Adapters: Mount Azure Files, local SSD, or private VNET storage as drive letters (e.g., D:, E:)
- install.ps1 Startup Script: Execute PowerShell at instance startup to install Windows features, register COM components, install MSI packages, and deploy custom fonts
- Custom Mode: Full access to the Windows instance for configuration beyond standard PaaS guardrails
The key constraint is that Managed Instance on App Service requires PV4 SKU with IsCustomMode=true—a specific combination that no other SKU supports.
Traditional Migration vs. AI-Guided Approach
Microsoft has long provided PowerShell scripts for IIS migration—Get-SiteReadiness.ps1, Get-SitePackage.ps1, Generate-MigrationSettings.ps1, and Invoke-SiteMigration.ps1. These tools are free, well-tested, and reliable, yet they lack the intelligence to guide users through complex decision-making.
The Traditional Migration Challenge
A typical migration process involves:
- Running readiness checks that produce cryptic JSON output with check IDs like ContentSizeCheck, ConfigErrorCheck, GACCheck
- Manually interpreting 15+ readiness checks per site across dozens of sites
- Determining whether each site needs Managed Instance or standard App Service
- Figuring out which dependencies require registry adapters versus storage adapters versus install.ps1 configuration
- Writing install.ps1 scripts manually for each combination of OS features
- Authoring ARM templates for adapter configurations
- Carefully wiring together PackageResults.json → MigrationSettings.json with correct Managed Instance fields
- Deploying and discovering configuration issues
Even experienced Azure engineers find this process time-consuming, error-prone, and tedious—especially when migrating 20, 50, or 100+ IIS sites.
The AI-Guided Transformation
The IIS Migration MCP Server introduces an AI orchestration layer that transforms this manual grind into a guided conversation:
| Traditional Approach | Agentic Approach |
|---|---|
| Read raw JSON output from scripts | AI summarizes readiness as tables with plain-English descriptions |
| Memorize 15 check types and their severity | AI enriches each check with title, description, recommendation, and documentation links |
| Manually decide Managed Instance vs App Service | recommend_target analyzes all signals and recommends with confidence + reasoning |
| Write install.ps1 from scratch | generate_install_script builds it from detected features |
| Author ARM templates manually | generate_adapter_arm_template generates full templates with RBAC guidance |
| Wire JSON artifacts between phases by hand | Agents pass readiness_results_path → package_results_path → migration_settings_path automatically |
| Hope you set PV4 + IsCustomMode correctly | Enforced automatically—every tool validates Managed Instance constraints |
| Deploy and find out what broke | confirm_migration presents a full cost/resource summary before touching Azure |
The core value proposition is that the AI understands the "Managed Instance provisioning split"—knowing that registry access requires an ARM template with Key Vault-backed adapters, while SMTP needs an install.ps1 section enabling the Windows SMTP Server feature. The system detects these requirements from the IIS configuration and generates exactly the right artifacts.
Technical Architecture: The MCP Server in Action
The system is built on the Model Context Protocol (MCP), an open protocol that allows AI assistants like GitHub Copilot, Claude, or Cursor to call external tools through a standardized interface. The architecture consists of:
- VS Code + Copilot Chat: The interface where users interact with the orchestrator agent
- FastMCP Server: The Python-based server that exposes 13 tools organized across 5 phases
- 13 Python Tool Modules: Handling specific migration tasks
- PowerShell Bridge: Connecting Python to Microsoft's migration scripts
- Local IIS & Azure ARM API: The target systems being interacted with
The migration process follows five distinct phases:
Phase 1: Discovery
The system scans the local IIS server, enumerates all web sites, application pools, bindings, and virtual directories, then runs 15 readiness checks per site. This produces a ReadinessResults.json file with per-site status classifications:
- READY: No issues detected
- READY_WITH_WARNINGS: Minor issues that won't block migration
- READY_WITH_ISSUES: Non-fatal issues needing attention
- BLOCKED: Fatal issues (e.g., content > 2GB)
Phase 2: Assessment
Two assessment tools provide deeper analysis:
- assess_site_readiness: Transforms raw readiness data into human-readable format with plain-English descriptions, recommendations, and documentation links
- assess_source_code: Analyzes Azure Migrate application assessment reports to identify Managed Instance-relevant dependencies
Phase 3: Recommendation & Provisioning
This phase determines the optimal migration path:
- suggest_migration_approach: Routes to appropriate migration method based on source code availability
- recommend_target: Analyzes assessment data to recommend Azure deployment targets with confidence levels and reasoning
- generate_install_script: Creates PowerShell startup scripts for OS-level features
- generate_adapter_arm_template: Produces ARM templates for platform-level configurations
Phase 4: Deployment Planning & Packaging
The system prepares for actual deployment:
- plan_deployment: Creates validated deployment plans, enforcing PV4 + IsCustomMode=true for Managed Instance
- package_site: Packages IIS site content into deployment-ready ZIP files
- generate_migration_settings: Creates MigrationSettings.json with Managed Instance-specific fields
Phase 5: Execution
Before deployment, the system presents a full migration summary requiring explicit confirmation. Only after user approval does it execute the actual migration, creating billable Azure resources and producing deployment results.
The Managed Instance Provisioning Split
One of the most critical concepts is the provisioning split—dividing OS dependencies into two categories configured through different mechanisms:
| ARM Template (Platform-Level) | install.ps1 (OS-Level) |
|---|---|
| Registry Adapters → Key Vault secrets | COM/MSI Registration → regsvr32, RegAsm, msiexec |
| Storage Mounts → Azure Files | SMTP Server Feature → Install-WindowsFeature |
| MSMQ → Message queue setup | |
| Crystal Reports Runtime → SAP MSI installer | |
| Custom Fonts → Copy to C:\Windows\Fonts |
The MCP server handles this split automatically, detecting dependencies and generating the appropriate artifacts without requiring users to understand the underlying technical distinctions.
Business Impact: Transforming Migration Economics
The IIS Migration MCP Server delivers several business advantages:
Reduced Migration Risk
By providing clear, step-by-step guidance with human-in-the-loop safety gates, the system minimizes the risk of migration failures. Each phase transition requires explicit user approval, ensuring control while accelerating the process.
Lowered Expertise Requirements
Enterprises no longer need specialized Azure migration expertise for every project. The AI agents contain the institutional knowledge about Managed Instance constraints, adapter configurations, and OS-level customizations.
Faster Time-to-Migration
What traditionally took weeks of planning and execution can now be accomplished in days. The automated artifact generation eliminates the manual configuration work that constituted the bulk of migration effort.
Improved Decision Quality
The AI recommendations are based on comprehensive analysis of both IIS configuration and source code dependencies, providing more consistent and reliable decisions than human intuition alone.
Cost Optimization
By accurately identifying which applications require the expensive PV4 SKU versus which can use standard App Service, enterprises avoid over-provisioning resources and optimize their Azure spending.
Implementation Considerations
Organizations considering this approach should note several prerequisites:
- Windows Server with IIS: The source server for discovery and packaging
- PowerShell 5.1: Required for running Microsoft's migration scripts
- Python 3.10+: For the MCP server runtime
- Administrator privileges: Required for IIS operations
- Azure subscription: Target for deployment
- Azure PowerShell Az module: For deployment operations
- Migration Scripts ZIP: Microsoft's PowerShell migration scripts
The system works with any MCP-enabled client, including VS Code with GitHub Copilot, Claude Desktop, Cursor, and custom integrations via stdio transport.
Conclusion: A New Paradigm for Legacy App Modernization
The IIS Migration MCP Server represents a significant advancement in cloud migration technology. By combining Microsoft's battle-tested migration PowerShell scripts with AI orchestration that understands the nuances of Managed Instance on App Service, it transforms what was once a multi-week, expert-driven project into a guided conversation.
Whether migrating one site or one hundred, this approach reduces risk, eliminates guesswork, and produces auditable artifacts at every step. The human remains in control while the AI handles the complexity—a balance that will define successful cloud transformations in the coming years.
For enterprises with legacy .NET applications, this tool provides a practical path to modernization without the rearchitecture costs that have historically made cloud migration prohibitive. As organizations continue their digital transformation journeys, solutions like the IIS Migration MCP Server will play a crucial role in bridging the gap between legacy systems and cloud-native futures.
For more information, explore the following resources:
Comments
Please log in or register to join the discussion