Skip to content

Commit b9f9f59

Browse files
author
gitName
committed
update screenshots
1 parent 529315e commit b9f9f59

File tree

8 files changed

+55
-44
lines changed

8 files changed

+55
-44
lines changed

articles/api-management/export-rest-mcp-server.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Learn how to expose a REST API in Azure API Management as an MCP se
44
author: dlepow
55
ms.service: azure-api-management
66
ms.topic: how-to
7-
ms.date: 07/22/2025
7+
ms.date: 07/23/2025
88
ms.author: danlep
99
ms.collection: ce-skilling-ai-copilot
1010
ms.custom:
@@ -35,7 +35,7 @@ Learn more about:
3535

3636
+ Make sure that your instance manages an HTTP-compatible API (any API imported as a REST API, including APIs imported from Azure resources) that you'd like to expose as an MCP server. To import a sample API, see [Import and publish your first API](import-and-publish.md).
3737
> [!NOTE]
38-
> Only HTTP APIs managed in API Management can be exposed as MCP servers.
38+
> Other API types in API Management that aren't HTTP-compatible can't be exposed as MCP servers.
3939
4040
+ To test the MCP server, you can use Visual Studio Code with access to [GitHub Copilot](https://code.visualstudio.com/docs/copilot/setup).
4141

@@ -47,21 +47,22 @@ Follow these steps to expose a managed REST API in API Management as an MCP serv
4747
1. In the [Azure portal](https://portal.azure.com), navigate to your API Management instance.
4848
[!INCLUDE [preview-callout-mcp-feature-flag](includes/preview/preview-callout-mcp-feature-flag.md)]
4949

50-
1. In the left menu, under **APIs**, select **MCP servers** > **+ Create new MCP server**.
50+
1. In the left menu, under **APIs**, select **MCP Servers** > **+ Create MCP server**.
5151
1. Select **Expose an API as an MCP server**.
52-
1. In **Backend API**:
52+
1. In **Backend MCP server**:
5353
1. Select a managed **API** to expose as an MCP server.
5454
1. Select one or more **API operations** to expose as tools. You can select all operations or only specific operations.
5555
> [!NOTE]
5656
> You can update the operations exposed as tools later in the **Tools** blade of your MCP server.
5757
1. In **New MCP server**:
58-
1. Enter a **Name** and optional **Description** for the MCP server in API Management.
59-
1. In **Base URL**, configure the final URL where the MCP server will be accessible in API Management.
58+
1. Enter a **Name** for the MCP server in API Management.
59+
1. Optionally, enter a **Description** for the MCP server.
6060
1. Select **Create**.
6161

6262
:::image type="content" source="media/export-rest-mcp-server/create-mcp-server.png" alt-text="Screenshot of creating an MCP server in the portal." :::
6363

64-
The MCP server is created and the API operations are exposed as tools. The MCP server is listed in the **MCP servers** pane. The **URL** column shows the endpoint of the MCP server that you can call for testing or within a client application.
64+
* The MCP server is created and the API operations are exposed as tools.
65+
* The MCP server is listed in the **MCP Servers** blade. The **Server URL** column shows the endpoint of the MCP server that you can call for testing or within a client application.
6566

6667

6768
:::image type="content" source="media/export-rest-mcp-server/mcp-server-list.png" alt-text="Screenshot of the MCP server list in the portal.":::

articles/api-management/expose-existing-mcp-server.md

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
2-
title: Connect and govern existing MCP server in API Management | Microsoft Docs
2+
title: Connect and govern existing MCP server in Azure API Management
33
description: Learn how to expose and govern an existing Model Context Protocol (MCP) server in Azure API Management.
44
author: dlepow
55
ms.service: azure-api-management
66
ms.topic: how-to
7-
ms.date: 07/22/2025
7+
ms.date: 07/23/2025
88
ms.author: danlep
99
ms.collection: ce-skilling-ai-copilot
1010
ms.custom:
@@ -14,7 +14,7 @@ ms.custom:
1414

1515
[!INCLUDE [api-management-availability-premium-standard-basic-premiumv2-standardv2-basicv2](../../includes/api-management-availability-premium-standard-basic-premiumv2-standardv2-basicv2.md)]
1616

17-
This article shows how to use API Management to expose and govern an existing MCP-compatible server - a tool server hosted outside of API Management. Expose the server's tools through API Management using its built-in [AI gateway](genai-gateway-capabilities.md) capabilities so that MCP clients can call them using the MCP protocol.
17+
This article shows how to use API Management to expose and govern an existing MCP-compatible server - a tool server hosted outside of API Management. Expose and govern the server's tools through API Management so that MCP clients can call them using the MCP protocol.
1818

1919
[!INCLUDE [preview-callout-mcp-servers](includes/preview/preview-callout-mcp-servers.md)]
2020

@@ -41,7 +41,7 @@ Learn more about:
4141

4242
+ Access to an external MCP-compatible server (for example, hosted in Azure Logic Apps, Azure Functions, LangServe, or other platforms).
4343

44-
+ Appropriate credentials to the MCP server (OAuth 2.0 client credentials or API keys) for secure access.
44+
+ Appropriate credentials to the MCP server (such as OAuth 2.0 client credentials or API keys, depending on the server) for secure access.
4545

4646
+ To test the MCP server, you can use Visual Studio Code with access to [GitHub Copilot](https://code.visualstudio.com/docs/copilot/setup).
4747

@@ -53,25 +53,24 @@ Follow these steps to expose an existing MCP server is API Management:
5353
[!INCLUDE [preview-callout-mcp-feature-flag](includes/preview/preview-callout-mcp-feature-flag.md)]
5454

5555
1. In the left-hand menu, under **APIs**, select **MCP servers** > **+ Create MCP server**.
56-
1. Select **Connect existing MCP server**.
57-
1. In **Backend API**:
56+
1. Select **Expose an existing MCP server**.
57+
1. In **Backend MCP server**:
5858
1. Enter the existing **MCP server base URL**.
59-
1. Select a **Transport type**:
60-
- **Streamable HTTP** (default) - Server delivers data continuously over HTTP as it becomes available
61-
- **Server-sent events (SSE)** - Server pushes real-time updates to clients. When selected, optionally enter the following paths:
62-
- `/sse` - path for streaming responses
63-
- `/messages` - path for receiving tool requests from agents
59+
1. In**Transport type**, **Streamable HTTP** is selected by default.
6460
1. In **New MCP server**:
65-
1. Enter a **Name** and optional **Description** for the MCP server in API Management.
66-
1. In **Base path**, enter a route prefix for tools.
67-
1. In **Base URL**, configure the final URL where the MCP server will be accessible in API Management.
61+
1. Enter a **Name** the MCP server in API Management.
62+
1. In **Base path**, enter a route prefix for tools. Example: `mytools`
63+
1. Optionally, enter a **Description** for the MCP server.
6864
1. Select **Create**.
6965

7066
:::image type="content" source="media/expose-existing-mcp-server/create-mcp-server.png" alt-text="Screenshot of creating an MCP server in the portal." :::
7167

72-
The MCP server is connected and is listed in the **MCP servers** pane. The **URL** column shows the MCP server URL that you can call for testing or within a client application.
68+
* The MCP server is created and the remote server's operations are exposed as tools.
69+
* The MCP server is listed in the **MCP Servers** pane. The **Server URL** column shows the MCP server URL that you can call for testing or within a client application.
7370

74-
> [!NOTE]
71+
:::image type="content" source="media/expose-existing-mcp-server/mcp-server-list.png" alt-text="Screenshot of the MCP server list in the portal.":::
72+
73+
> [!IMPORTANT]
7574
> API Management doesn't display tools from the existing MCP server. All tool registration and configuration must be done on the existing remote MCP server.
7675
7776
[!INCLUDE [api-management-configure-test-mcp-server](../../includes/api-management-configure-test-mcp-server.md)]

articles/api-management/mcp-server-overview.md

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,14 @@ ms.service: azure-api-management
66
ms.topic: concept-article
77
ms.date: 07/23/2025
88
ms.author: danlep
9+
ms.collection: ce-skilling-ai-copilot
910
ms.custom:
1011
---
1112

1213
# About MCP servers in Azure API Management
1314

15+
[!INCLUDE [api-management-availability-premium-standard-basic-premiumv2-standardv2-basicv2](../../includes/api-management-availability-premium-standard-basic-premiumv2-standardv2-basicv2.md)]
16+
1417
This article introduces features in Azure API Management that you can use to manage Model Context Protocol (MCP) servers. MCP servers allow AI agents to access external data sources, such as databases or APIs, through a standardized protocol.
1518

1619
Use API Management to securely expose and govern API operations as tools for large language models (LLMs) and AI agents like GitHub Copilot, ChatGPT, Claude, and more. API Management provides centralized control over MCP server authentication, authorization, and monitoring. It simplifies the management of MCP servers while helping to mitigate common security risks and ensuring scalability.
@@ -43,11 +46,6 @@ The MCP architecture is built on [JSON-RPC 2.0 for messaging](https://modelconte
4346

4447
* **Local MCP servers** MCP clients use standard input/output as a local transport method to connect to MCP servers on the same machine,.
4548

46-
Azure API Management supports the remote MCP server mode, using native features of API Management and [capabilities of the AI gateway](./genai-gateway-capabilities.md) to manage MCP server endpoints.
47-
48-
> [!NOTE]
49-
> MCP server support in API Management is in preview. In preview, API Management supports MCP server tools, but doesn't currently support MCP resources or prompts.
50-
5149
## MCP server endpoints
5250

5351

@@ -60,13 +58,17 @@ MCP provides the following transport types and typical endpoints for remote serv
6058

6159
## Expose MCP servers in API Management
6260

63-
API Management supports > [!NOTE]
64-
> Information the user should notice even if skimmingtwo built-in ways to expose MCP servers:
61+
Azure API Management supports the remote MCP server mode, using native features of API Management and [capabilities of the AI gateway](./genai-gateway-capabilities.md) to manage MCP server endpoints.
62+
63+
> [!NOTE]
64+
> MCP server support in API Management is in preview. In preview, API Management supports MCP server tools, but doesn't currently support MCP resources or prompts.
65+
66+
API Management provides two built-in ways to expose MCP servers:
6567

6668
| Source | Description |
6769
|-------------------------------------------|-----------------------------------------------------------------------------------------------|
68-
| REST API as MCP server | Expose any REST API managed in API Management as an MCP server, including REST APIs imported from Azure resources. API operations become MCP tools. [Learn more](export-rest-mcp-server.md). |
69-
| Existing MCP server | Expose an MCP-compatible server (for example, LangChain, LangServe, Logic Apps, Azure Functions) via API Management. [Learn more](expose-existing-mcp-server.md). |
70+
| REST API as MCP server | Expose any REST API managed in API Management as an MCP server, including REST APIs imported from Azure resources. API operations become MCP tools. [Learn more](export-rest-mcp-server.md) |
71+
| Existing MCP server | Expose an MCP-compatible server (for example, LangChain, LangServe, Azure logic app, Azure function app) via API Management. [Learn more](expose-existing-mcp-server.md) |
7072

7173

7274
## Govern MCP servers
@@ -83,21 +85,23 @@ Configure policies such as the following::
8385

8486
## Secure access to the MCP server
8587

86-
You can secure both inbound access to the MCP server (from an MCP client to API Management) and outbound access (from API Management to the MCP server backend).
88+
You can secure either or both inbound access to the MCP server (from an MCP client to API Management) and outbound access (from API Management to the MCP server backend).
8789

8890
### Secure inbound access
8991

90-
One option to secure inbound access is to configure a policy to validate a JSON web token (JWT) generated using an identity provider in the incoming requests. This ensures that only authorized clients can access the MCP server. Use the generic [validate-jwt](validate-jwt-policy.md) policy, or the [validate-azure-ad-token](validate-azure-ad-token-policy.md) policy when using Microsoft Entra ID, to validate the JWT token in the incoming requests. The following is a basic example of validating a Microsoft Entra ID token:
92+
One option to secure inbound access is to configure a policy to validate a JSON web token (JWT) generated using an identity provider in the incoming requests. This ensures that only authorized clients can access the MCP server. Use the generic [validate-jwt](validate-jwt-policy.md) policy, or the [validate-azure-ad-token](validate-azure-ad-token-policy.md) policy when using Microsoft Entra ID, to validate the JWT token in the incoming requests.
93+
94+
The following is a basic example of validating a Microsoft Entra ID token presented in an `Authorization` header in the incoming request:
9195

9296
```xml
93-
<validate-azure-ad-token header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid.">
97+
<validate-azure-ad-token header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid.">
9498
<client-application-ids>
9599
<application-id>your-client-id</application-id>
96100
</client-application-ids>
97101
</validate-azure-ad-token>
98102
```
99103

100-
For more inbound authorization options and samples, see:
104+
For more inbound authorization options and samples, including using OAuth authorization, see:
101105

102106
* [MCP server authorization with Protected Resource Metadata (PRM) sample](https://github.com/blackchoey/remote-mcp-apim-oauth-prm)
103107

-5.02 KB
Loading
-1.85 KB
Loading
-2.2 KB
Loading
47.3 KB
Loading

includes/api-management-configure-test-mcp-server.md

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,20 @@ ms.author: danlep
99

1010
Configure one or more API Management [policies](../articles/api-management/api-management-howto-policies.md) to help manage the MCP server. The policies are applied to all API operations exposed as tools in the MCP server and can be used to control access, authentication, and other aspects of the tools.
1111

12-
For a tutorial on how to configure policies, see [Transform and protect your API](../articles/api-management/transform-api.md).
12+
Learn more about configuring policies:
13+
14+
* [Policies in API Management](../articles/api-management/api-management-howto-policies.md)
15+
* [Transform and protect your API](../articles/api-management/transform-api.md)
16+
* [Set and edit policies](../articles/api-management/set-edit-policies.md)
1317

1418
To configure policies for the MCP server:
19+
1520
1. In the [Azure portal](https://portal.azure.com), navigate to your API Management instance.
1621
[!INCLUDE [preview-callout-mcp-feature-flag](../articles/api-management/includes/preview/preview-callout-mcp-feature-flag.md)]
1722

18-
1. In the left-hand menu, under **APIs**, select **MCP servers**.
19-
1. Select the MCP server that you created.
20-
1. In the left menu, under **Details**, select **Policies**.
23+
1. In the left-hand menu, under **APIs**, select **MCP Servers**.
24+
1. Select an MCP server from the list.
25+
1. In the left menu, under **MCP**, select **Policies**.
2126
1. In the policy editor, add or edit the policies you want to apply to the MCP server's tools. The policies are defined in XML format. For example, you can add a policy to limit calls to the MCP server's tools (in this example, 5 calls per 30 seconds per client IP address).
2227

2328
```xml
@@ -41,8 +46,8 @@ To add the MCP server in Visual Studio Code:
4146

4247
1. Use the **MCP: Add Server** command from the Command Palette.
4348
1. When prompted, select the server type: **HTTP (HTTP or Server Sent Events)**.
44-
1. Enter the **URL of the MCP server** in API Management. Example: `https://<apim-service-name>.azure-api.net/<api-name>-mcp/sse` (for SSE endpoint) or `https://<apim-service-name>.azure-api.net/<api-name>-mcp/mcp` (for MCP endpoint)
45-
1. Enter a **server ID** of your choice.
49+
1. Enter the **Server URL** of the MCP server in API Management. Example: `https://<apim-service-name>.azure-api.net/<api-name>-mcp/mcp` (for MCP endpoint)
50+
1. Enter a **Server ID** of your choice.
4651
1. Select whether to save the configuration to your **workspace settings** or **user settings**.
4752
* **Workspace settings** - The server configuration is saved to a `.vscode/mcp.json` file only available in the current workspace.
4853

@@ -56,7 +61,7 @@ Add fields to the JSON configuration for settings such as authentication header.
5661

5762
### Use tools in agent mode
5863

59-
After adding an MCP server, you can use tools in agent mode.
64+
After adding an MCP server in Visual Studio Code, you can use tools in agent mode.
6065

6166
1. In GitHub Copilot chat, select **Agent** mode and select the **Tools** button to see available tools.
6267

@@ -89,7 +94,9 @@ After adding an MCP server, you can use tools in agent mode.
8994

9095
## Related content
9196

92-
* [Python sample: Secure remote MCP servers using Azure API Management (experimental)](https://github.com/Azure-Samples/remote-mcp-apim-functions-python)
97+
* [Sample: MCP Servers authorization with Protected Resource Metadata (PRM)](https://github.com/blackchoey/remote-mcp-apim-oauth-prm/)
98+
99+
* [Sample: Secure remote MCP servers using Azure API Management (experimental)](https://github.com/Azure-Samples/remote-mcp-apim-functions-python)
93100

94101
* [MCP client authorization lab](https://github.com/Azure-Samples/AI-Gateway/tree/main/labs/mcp-client-authorization)
95102

0 commit comments

Comments
 (0)