Token导航 LogoToken导航

MCP Server · 安全风控

Apim MCP Gateway

利用Azure API Management作为安全网关,为企业提供OAuth2认证、速率限制、请求日志和统一入口的MCP服务器访问解决方案。

未说明官方级别未说明来源级核验工具 2
Bicep安全开发工具

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
BandaruDheeraj
提供方
BandaruDheeraj

工具数量

2

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Apim MCP Gateway 属于安全风控类 MCP Server,公开资料标注 2 个工具,通过传输方式未标注接入,客户端适配情况以官方文档为准,没有现成的安装命令;接入前要先准备 API Key。

分类

安全风控

传输方式

未说明

认证方式

API Key

部署方式

公开资料未说明

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 2 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

公开资料仍需确认:安装命令

详细介绍

使用Azure API管理网关确保MCP访问安全

演示如何将Azure API管理作为 安全网关 使用企业级策略、身份验证和监控将MCP服务器暴露给Azure SRE代理。

场景概述

问题:您有MCP服务器提供对Azure资源(日志分析、Kubernetes等)的访问,但您需要企业控制:速率限制、身份验证、审计日志记录以及多个后端的单个入口点。

解决方案:Azure API管理在MCP服务器前充当安全网关。APIM提供OAuth2身份验证、速率限制、缓存、请求日志记录,并可以通过单个端点路由到多个MCP后端。

建筑

┌──────────────────────────────────────────────────────────────────────────────┐
│                                 INTERNET                                      │
│                                                                               │
│                           ❌ CLI BLOCKED                                      │
│                 az monitor log-analytics query → DENIED                       │
└───────────────────────────────────┬──────────────────────────────────────────┘
                                    │
                                    ▼
┌──────────────────────────────────────────────────────────────────────────────┐
│                    Azure API Management (Developer SKU)                       │
│                                                                               │
│  • OAuth2/Entra ID Auth      • Rate Limiting     • Request Logging           │
│  • API Key validation        • Policy Enforcement                            │
│  • Centralized entry point for MCP access                                    │
│                                                                               │
│  https://apim-xxx.azure-api.net/log-analytics/mcp/                          │
└────────────────────────────────────┬─────────────────────────────────────────┘
                                     │ HTTPS (Public)
                                     ▼
┌──────────────────────────────────────────────────────────────────────────────┐
│                     Virtual Network (10.0.0.0/16)                             │
│                                                                               │
│  ┌──────────────────────────────┐     ┌──────────────────────────────────┐  │
│  │   Container Apps Subnet       │     │   Private Endpoints Subnet       │  │
│  │        (10.0.0.0/23)          │     │        (10.0.2.0/24)             │  │
│  │                               │     │                                   │  │
│  │  ┌─────────────────────────┐  │     │  ┌─────────────────────────────┐ │  │
│  │  │   Log Analytics MCP     │  │     │  │  AMPLS Private Endpoint     │ │  │
│  │  │        Server           │──┼─────┼─▶│                             │ │  │
│  │  │                         │  │     │  └──────────────┬──────────────┘ │  │
│  │  │  🔑 API Key Protected   │  │     │                 │                │  │
│  │  │  External ingress       │  │     └─────────────────┼────────────────┘  │
│  │  │  VNet-integrated        │  │                       │                    │
│  │  └─────────────────────────┘  │                       │                    │
│  └──────────────────────────────┘                        │                    │
└──────────────────────────────────────────────────────────┼────────────────────┘
                                                           │ Private Link
                                                           ▼
┌──────────────────────────────────────────────────────────────────────────────┐
│                   Azure Monitor Private Link Scope (AMPLS)                    │
│                                                                               │
│   queryAccessMode: PrivateOnly  ◀── BLOCKS public queries                    │
│                                                                               │
│   ┌───────────────────────────────────────────────────────────────────────┐  │
│   │              Log Analytics Workspace (PRIVATE)                         │  │
│   │                                                                        │  │
│   │   publicNetworkAccessForQuery: Disabled  ◀── CLI/Portal BLOCKED       │  │
│   └───────────────────────────────────────────────────────────────────────┘  │
└──────────────────────────────────────────────────────────────────────────────┘
💡 备注:此示例使用 外部容器应用程序 API关键成本效率验证(约50美元/月APIM开发人员)。对于 真正的网络隔离 其中APIM是唯一的入口点,请参阅 博客文章 这需要 高级APIM (约700美元/月),并集成ExpressRoute。

请求流:

  1. SRE代理调用APIM网关端点(外部)
  2. APIM验证API密钥(或OAuth2令牌,如果已配置)
  3. APIM应用速率限制并记录请求
  4. APIM路由到MCP服务器(具有API密钥的外部容器应用程序)
  5. MCP服务器使用托管身份+私有链接查询日志分析
  6. 响应通过APIM返回(记录+缓存)

为什么这行得通(CLI不行):

  • 日志分析工作区具有 publicNetworkAccessForQuery: Disabled
  • 外部的直接CLI查询包括 已屏蔽
  • MCP服务器运行在一个ExpressRoute集成的容器应用程序环境中
  • MCP服务器具有AMPLS(Azure Monitor专用链路作用域)的专用链路访问权限
  • MCP服务器 能 通过专用连接查询日志分析
  • 这演示了MCP如何桥接对锁定资源的访问

主要优势

挑战没有MCP网关有MCP网关
🔒 私人资源CLI被网络规则阻止MCP通过专用链路桥接
🔐 认证每个MCP服务器的API密钥集中式OAuth2/Entra ID
⚡ 速率限制无-过载风险每个客户端配额和限制
📊 监控分散的日志统一的应用程序洞察
🔄 多个后端要管理的多个URL单个网关端点
🛡️ 安全策略按服务器实施集中式策略管理
📝 审计跟踪可见性有限完整的请求/响应日志记录

私有资源访问——核心价值主张

问题:

# This FAILS from your laptop - Log Analytics blocks public queries
az monitor log-analytics query --workspace $workspaceId --analytics-query "Heartbeat | take 5"
# ERROR: Access denied. publicNetworkAccessForQuery: Disabled

解决方案:

# This WORKS via MCP Gateway - MCP Server has Private Link access
curl -X POST "https://your-apim.azure-api.net/log-analytics/mcp/" \
  -H "Authorization: Bearer $token" \
  -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"query_logs","arguments":{"query":"Heartbeat | take 5"}},"id":1}'
# SUCCESS: Query results returned via MCP Server inside VNet

✅ 测试和验证(2026年1月)

该样本经过端到端测试,结果如下:

组件状态注释
容器映像构建✅通过以下方式构建 az acr build 到 sreagentmcpacr
MCP服务器(容器应用程序)✅外部入口,VNet集成,API密钥保护
IMAP+专用链接✅AMPLS带 queryAccessMode: PrivateOnly
管理身份+RBAC✅分配了日志分析阅读器角色
MCP tools/list✅返回5个工具(query_logs、list_tables等)
MCP list_tables✅已成功查询私有日志分析工作区
APIM网关✅开发人员SKU,使用API密钥路由到MCP后端
APIM→ MCP → 私人洛杉矶✅全E2E流量通过网关工作

测试环境:

  • APIM : apim-apim-mcp-vnet-test-sdtn6z2y5uxmy.azure-api.net
  • MCP服务器: log-analytics-mcp.agreeablesea-122937a2.eastus2.azurecontainerapps.io
  • 日志分析工作区ID: 87fb2e86-b0f2-492c-be65-6a819471dc66
  • API密钥: demo-api-key-sdtn6z2y5uxmy

样本测试命令:

$headers = @{ "Content-Type" = "application/json"; "X-API-Key" = "demo-api-key-xxx" }
$body = '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_tables"}}'
Invoke-RestMethod -Uri "https://apim-xxx.azure-api.net/log-analytics/mcp/" -Method POST -Headers $headers -Body $body

先决条件

  • 具有参与者访问权限的Azure订阅
  • 已安装Azure CLI
  • 输入租户ID

快速开始

1.使用现有或部署API管理

选项A:使用现有的APIM实例(推荐)

# List existing APIM instances
az apim list --query "[].{name:name,rg:resourceGroup,sku:sku.name}" -o table

# Use an existing instance - no deployment wait time!
$apimName = "your-existing-apim"
$apimRg = "your-resource-group"

选项B:部署一个新的APIM实例(30-45分钟)

# Create resource group
az group create --name apim-mcp-gateway-rg --location eastus

# Create APIM instance (Developer tier - takes 30-45 min)
az apim create `
  --name mcp-gateway `
  --resource-group apim-mcp-gateway-rg `
  --publisher-name "Contoso" `
  --publisher-email "admin@contoso.com" `
  --sku-name Developer

2.构建并推送容器镜像

⚠️ 必须首先构建容器映像。 图像 ghcr.io/bandarudheeraj/log-analytics-mcp:latest 不公开存在。
# Build using Azure Container Registry (no local Docker needed)
az acr build `
  --registry  `
  --image log-analytics-mcp:latest `
  ./prototypes/log-analytics-mcp-server

3.部署MCP服务器后端

# Create Container Apps environment
az containerapp env create `
  --name mcp-servers-env `
  --resource-group apim-mcp-gateway-rg `
  --location eastus

# Deploy with ACR image and credentials
az containerapp create `
  --name log-analytics-mcp `
  --resource-group apim-mcp-gateway-rg `
  --environment mcp-servers-env `
  --image .azurecr.io/log-analytics-mcp:latest `
  --registry-server .azurecr.io `
  --target-port 8000 `
  --ingress external `
  --env-vars "LOG_ANALYTICS_WORKSPACE_ID=your-workspace-id"

4.配置APIM后端

# Create backend pointing to Container App
az apim backend create `
  --resource-group apim-mcp-gateway-rg `
  --service-name mcp-gateway `
  --backend-id log-analytics-mcp `
  --url "https://log-analytics-mcp.internal.eastus.azurecontainerapps.io"

5.在APIM中创建API

# Create API
az apim api create `
  --resource-group apim-mcp-gateway-rg `
  --service-name mcp-gateway `
  --api-id log-analytics-mcp `
  --path log-analytics `
  --display-name "Log Analytics MCP"

# Create operation for MCP endpoint
az apim api operation create `
  --resource-group apim-mcp-gateway-rg `
  --service-name mcp-gateway `
  --api-id log-analytics-mcp `
  --operation-id mcp-post `
  --display-name "MCP POST" `
  --method POST `
  --url-template "/mcp/"

6.应用安全策略

创建 policy.xml:

⚠️ 重要: renewal-period 必须为1-300秒。 cache-store 需要 cache-lookup 入境。

    
        
        
        
        
            
                {{SREAgentAppId}}
            
        
        -->
        
        
        
        
        
        
        
        
        
    
    
    
        
    
    
    
        
        
        
    

应用策略:

az apim api policy create `
  --resource-group apim-mcp-gateway-rg `
  --service-name mcp-gateway `
  --api-id log-analytics-mcp `
  --policy-format xml `
  --value-path ./policy.xml

7.配置SRE代理

name: EnterpriseObservabilityAgent
description: Query Azure resources through enterprise MCP gateway

mcp_tools:
  - LogAnalyticsMCP

tool_definitions:
  LogAnalyticsMCP:
    type: mcp
    transport: streamable_http
    url: https://mcp-gateway.azure-api.net/log-analytics/mcp/
    auth:
      type: oauth2
      tenant_id: ${TENANT_ID}
      client_id: ${CLIENT_ID}
      client_secret: ${CLIENT_SECRET}
      scope: api://${APIM_APP_ID}/.default

8.测试网关

# Get OAuth2 token
$token = (az account get-access-token --resource api://$APIM_APP_ID --query accessToken -o tsv)

# Call MCP through APIM
curl -X POST "https://mcp-gateway.azure-api.net/log-analytics/mcp/" `
  -H "Authorization: Bearer $token" `
  -H "Content-Type: application/json" `
  -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"list_tables"},"id":1}'

9.清理

az group delete --name apim-mcp-gateway-rg --yes --no-wait

此示例中的文件

文件描述
azure.yamlAzure开发人员CLI配置
deploy-sample.ps1完整部署脚本
policy.xml带有OAuth2的APIM策略,速率限制
cleanup.ps1删除所有资源
blog-post.md完整教程文章
infra/二头肌基础结构模板
src/MCP服务器源代码

预计成本

资源每月成本备注
API管理(开发人员)~$50不用于生产
API管理(基础)~150美元小型生产
API管理(标准)~700美元带有SLA的生产
容器应用程序~50-100美元MCP服务器后端
应用洞察可变基于数据量
💡 小贴士:使用开发人员层进行学习,使用基础或标准层进行生产。

安全特性

1.OAuth2+Entra ID

  • 基于令牌的身份验证(无静态API密钥)
  • 根据客户身份
  • 可配置令牌到期

2.费率限制

  • 每客户配额
  • 防止滥用和DoS
  • 优雅降级

3.审计追踪

  • 完整的请求/响应日志记录
  • 应用洞察集成
  • 合规性就绪

4.立即撤销

  • 撤销客户的应用程序注册
  • 无需到处旋转按键

何时使用此模式

✅ 适合:

  • 多台MCP服务器 -用于日志分析、Kubernetes、Cosmos DB MCP的单网关端点
  • 企业身份验证 -需要OAuth2/Entra ID而不是API密钥
  • 需要速率限制 -保护后端免受过载或滥用
  • 审计要求 -完整的请求/响应日志记录到Application Insights
  • 现有APIM基础设施 -利用现有投资(无需新部署!)
  • 缓存需求 -缓存频繁查询以减少后端负载

❌ 考虑替代方案:

  • 单MCP服务器,简单认证 -使用API密钥直接访问更简单
  • 仅用于开发/测试 -跳过APIM开销,直接使用容器应用程序
  • 对成本敏感 -APIM增加了成本(根据级别,每月约50-700美元)
  • 私有Direct3D要求 -请参阅 私有Direct3D可观察性 改为取样

Direct3D集成选项

选项1:APIM外部模式(推荐)

APIM具有公共IP,但连接到ExpressRoute后端:

Internet → APIM (Public) → VNet → MCP Server (Internal) → Private Resources

选项2:APIM内部模式

APIM仅可从DateTime:

VPN/ExpressRoute → VNet → APIM (Private) → MCP Server → Private Resources

选项3:带专用端点的APIM

APIM使用专用链接来访问ExpressRoute资源:

Internet → APIM (Public) → Private Endpoint → VNet → Private Resources

后续步骤

  • 添加更多MCP服务器(Kubernetes、Cosmos DB、SQL)
  • 配置自定义域
  • 设置违反速率限制的警报
  • 与现有的APIM基础架构集成

相关样本

工具与能力

工具数量

2

资源数量

0

提示词数量

0

能力标签

Bicep本地部署API管理安全网关企业认证速率限制请求日志

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

资产与漏洞排查

批量查询资产和漏洞信息,输出待修清单。

日志审计

从日志里筛出异常访问和高风险操作。

合规检查

按规则核对配置项,记录不符合项。

选择建议

值得选的地方

  • 只提供 2 个工具,职责集中,接入后不容易误操作。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 需要自备API Key,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在安全风控场景里让模型直接调用外部能力的人。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 暂时拿不到API Key的人。
  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Apim MCP Gateway

MCP World · 本页

2未说明未标注1 个2026-05-17
Modelcontextprotocol C22988b0

MCP World

0stdio有1 个2026-05-17
Hexstrike AI

MCP World

0stdio有1 个2026-05-17
Cyber Strike AI

MCP World

75未说明未标注1 个2026-05-17
MCP Scan

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Apim MCP Gateway 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

Apim MCP Gateway 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Apim MCP Gateway 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Apim MCP Gateway 需要 API Key 吗?

公开资料标注的认证方式是API Key,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Apim MCP Gateway 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP