Chapter 5 of 6 · Implementation

Azure API Center and the AI/MCP inventory

Runtime assurance 3 hours in a non-production POC

Chapter 5 of 6

Implement#

Use two delivery windows. Window one deploys API Center and starts APIM synchronization. Resume window two after the source is healthy. The 180-minute duration covers active facilitated work; schedule the synchronization wait, which can take up to 24 hours, outside the session timebox.

1. Set runtime values#

PowerShell

$approvedSubscriptionId = $env:AZURE_SUBSCRIPTION_ID
$session04AgentBaseUrl = $env:session08_AGENT_BASE_URL
$remoteMcpServerUrl = $env:session08_MCP_SERVER_URL
$remoteMcpServerTitle = "approved remote MCP server title"

Bash

approved_subscription_id="${AZURE_SUBSCRIPTION_ID:?Set AZURE_SUBSCRIPTION_ID.}"
session04_agent_base_url="${session08_AGENT_BASE_URL:?Set session08_AGENT_BASE_URL.}"
remote_mcp_server_url="${session08_MCP_SERVER_URL:?Set session08_MCP_SERVER_URL.}"
remote_mcp_server_title="approved remote MCP server title"

The direct agent URL must end at:

https://<account>.services.ai.azure.com/api/projects/<project>/agents/<agent>/endpoint/protocols/openai

2. Run preflight#

PowerShell

.\scripts\preflight.ps1 `
  -ApprovedSubscriptionId $approvedSubscriptionId `
  -session04AgentBaseUrl $session04AgentBaseUrl `
  -RemoteMcpServerUrl $remoteMcpServerUrl

Bash

./scripts/preflight.sh --approved-subscription-id "$approved_subscription_id" --session04-agent-base-url "$session04_agent_base_url" --remote-mcp-server-url "$remote_mcp_server_url"

Preflight rejects unresolved decisions, invalid metadata and URL shapes, the wrong Azure scope, unsupported regions, an unmarked APIM source, the wrong reader role, and name collisions. It parses the artifacts, checks the GA apic-extension integration command, compiles Bicep, and runs an ARM what-if.

3. Deploy and start synchronization#

PowerShell

.\scripts\deploy.ps1 `
  -ApprovedSubscriptionId $approvedSubscriptionId `
  -session04AgentBaseUrl $session04AgentBaseUrl `
  -RemoteMcpServerUrl $remoteMcpServerUrl

Bash

./scripts/deploy.sh --approved-subscription-id "$approved_subscription_id" --session04-agent-base-url "$session04_agent_base_url" --remote-mcp-server-url "$remote_mcp_server_url"

The script reruns preflight, deploys the marked API Center and direct agent definition, assigns the reader role, and creates the APIM integration with specification import enabled.

Confirm the plan in the portal. If Standard is required, complete the approved upgrade after the eligible APIM integration exists. Wait for Governed policy assistant Responses API to appear once. Stop and resume later if synchronization is still pending.

4. Complete live metadata and MCP registration#

After synchronization, update the APIM API entry and any other imported APIs with the required metadata.

Then open Inventory > Assets > Register an asset > MCP server:

  1. Enter the approved title, description, version, lifecycle, and metadata.
  2. Add $remoteMcpServerUrl and associate the approved nonproduction environment.
  3. Keep Streamable HTTP as the approved runtime transport and create the entry.

API Center may also generate an SSE definition. Do not change the approved runtime transport. Review managed API analysis for the two OpenAPI definitions. In the portal, confirm that the native MCP deployment location matches the approved URL and that the runtime is healthy. The stable ARM and CLI surfaces do not expose those native MCP checks.

Session 07

Azure API Center and the AI/MCP inventory slide deck