Token导航 LogoToken导航TokenDH.com
Azure Apim MCP Server logo
运维云端stdio官方级别未说明来源级核验

Azure Apim MCP Server

MCP Server

基于Python/FastAPI和PostgreSQL构建的半导体订单API,部署在Azure容器应用中,并通过Azure API管理作为REST API和MCP(模型上下文协议)服务器公开。

工具数

8

提示词数

0

GitHub Stars

0

资源数

0
订单管理PythonClaudeAPI集成Claude DesktopClaudeVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ozgurkarahan

提供方

ozgurkarahan

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements-dev.txt

详细介绍

Azure APIM MCP服务器-微电子半导体订单API

半导体订购使用Python/FastAPI和PostgreSQL构建的API,部署到Azure容器应用程序,并通过Azure API管理公开为REST API和MCP(模型上下文协议)服务器。

建筑

graph LR
    Client[REST Client] -->|subscription key| APIM[Azure API Management]
    Claude[Claude Desktop] -->|MCP over HTTP| APIM
    APIM --> CA[Container App]
    CA -->|SQLAlchemy| PG[(PostgreSQL)]
    DevPortal[Developer Portal] --> APIM
    ACR[Container Registry] -->|image pull| CA

运作原理

REST API:客户端使用订阅密钥调用APIM /orders/api/v1/*.APIM将请求转发到容器应用程序后端。

MCP服务器:AI助手(Claude Desktop、VS Code等)连接到APIM /st-orders-mcp/mcp 使用流式HTTP传输。APIM本机将MCP工具调用(JSON-RPC)转换为REST API操作-不需要自定义MCP代码。MCP工具通过APIM REST API调用路由(不直接到后端),并通过策略注入内部订阅密钥。

技术栈

组件技术
API框架FastAPI(Python 3.11)
数据库PostgreSQL 16
ORMSQL炼金术2.0(异步)
移民Alembic
MCP服务器APIM本地MCP网关
基础架构Azure二头肌
托管Azure容器应用程序
API网关Azure API管理(StandardV2层)
身份验证APIM订阅密钥
CI/CDGitHub操作
容器注册表Azure容器注册表

本地开发

先决条件

  • Docker&Docker编写
  • Python 3.11+

快速开始

# Clone the repo
git clone https://github.com/ozgurkarahan/azure-apim-mcp-server.git
cd azure-apim-mcp-server

# Start with Docker Compose
docker-compose up --build

# API docs available at http://localhost:8000/docs

运行测试

pip install -r requirements-dev.txt
pytest tests/ -v

代码检查

ruff check src/ tests/

API 参考

所有端点都在 /api/v1/.

方法路径描述
得到/health健康检查
得到/health/db数据库连接
获取/发布/api/v1/products列出/创建产品
获取/放置/删除/api/v1/products/{id}获取/更新/软删除产品
获取/发布/api/v1/customers列出/创建客户
获取/放置/api/v1/customers/{id}获取/更新客户
获取/发布/api/v1/orders列出/创建订单
获取/放置/删除/api/v1/orders/{id}获取/更新/取消订单

MCP服务器

APIM原生MCP

APIM将8个REST API操作作为MCP工具公开在 /st-orders-mcp/mcp.通过二头肌展开(infra/modules/apim-mcp.bicep),不需要自定义代码。

工具:list_products、get_product、list_customers、get_customer、list_orders、get_order、create_order、update_order_status

Claude桌面配置:

{
  "mcpServers": {
    "st-orders": {
      "type": "http",
      "url": "https://.azure-api.net/st-orders-mcp/mcp",
      "headers": {
        "Ocp-Apim-Subscription-Key": ""
      }
    }
  }
}

Azure部署

先决条件

快速部署 azd

这是主要的部署方法。 azd 在单个命令中处理基础设施配置、应用程序部署和部署后配置。

# Initialize the azd environment
azd init -e dev

# Set required parameters
azd env set PUBLISHER_EMAIL 
azd env set POSTGRES_ADMIN_PASSWORD 

# Optional parameters
azd env set AUTH_CLIENT_ID 
azd env set AI_FOUNDRY_PRINCIPAL_ID 

# Deploy everything
azd up

环境变量 (阅读者 infra/main.bicepparam):

变量必填描述
PUBLISHER_EMAILAPIM发布者的电子邮件地址
POSTGRES_ADMIN_PASSWORDPostgreSQL管理员密码(不得包含 @ --中断异步URL解析)
AUTH_CLIENT_IDEntra ID应用程序注册客户端ID(仅当启用Easy Auth时)
AI_FOUNDRY_PRINCIPAL_IDAPIM角色分配的AI Foundry中心管理的身份主体ID

它是如何工作的:

  1. 第一阶段azd up 提供基础设施(ACR、APIM、PostgreSQL、带占位符映像的容器应用程序)并构建/部署应用程序容器
  2. 第2阶段 --The postdeploy 钩子(hooks/postdeploy.sh / postdeploy.ps1)部署后自动运行:等待应用程序健康检查,然后使用以下命令重新运行二头肌部署 DEPLOY_API_CONFIG=true 导入OpenAPI规范并配置MCP

这意味着一个单一 azd up 处理整个部署过程,无需手动执行两阶段步骤。

注: APIM StandardV2在首次部署时需要大约5分钟的时间进行配置。

GitHub操作(CI/CD)

GitHub操作工作流(.github/workflows/deploy.yml)运行推送 main 并使相同的两相流自动化:

  1. 部署基础设施 --第一阶段二头肌部署(基础设施)
  2. 构建并推进 --构建Docker镜像,推送到ACR
  3. 部署应用程序 --使用新映像更新容器应用程序
  4. 配置apim -健康检查+第2阶段Bicep部署(API导入+MCP配置)

所需的GitHub机密:

机密必填描述
AZURE_CREDENTIALS服务主体JSON来自 az ad sp create-for-rbac
AZURE_RESOURCE_GROUP资源组名称(例如。, rg-poc-apim)
POSTGRES_ADMIN_PASSWORDPostgreSQL管理员密码(不得包含 @)
PUBLISHER_EMAILAPIM发布者的电子邮件地址
AUTH_CLIENT_IDEntra ID应用程序注册客户端ID
AI_FOUNDRY_PRINCIPAL_IDAI Foundry中心管理的身份主体ID

服务主体设置 (GitHub操作需要):

# Create SP with Contributor role
az ad sp create-for-rbac --name "github-deploy-sp" --role Contributor \
  --scopes /subscriptions//resourceGroups/rg-poc-apim

# The SP also needs User Access Administrator for Bicep role assignments
SP_OBJECT_ID=$(az ad sp list --display-name "github-deploy-sp" --query "[0].id" -o tsv)
az role assignment create --assignee $SP_OBJECT_ID \
  --role "User Access Administrator" \
  --scope /subscriptions//resourceGroups/rg-poc-apim

Azure资源(通过二头肌)

  1. 用户分配的托管身份
  2. 密钥库
  3. Azure容器注册表(基本)
  4. PostgreSQL灵活服务器(B1ms,v16)
  5. 容器应用环境+容器应用
  6. API管理(StandardV2层,系统相关MI)
  7. APIM REST API(从OpenAPI导入)
  8. APIM MCP API(apiType: 'mcp',8工具)

项目结构

├── .github/workflows/    # CI/CD pipelines
├── hooks/                # azd lifecycle hooks
│   ├── postdeploy.sh     # Phase 2 Bicep deployment (Linux/macOS)
│   └── postdeploy.ps1   # Phase 2 Bicep deployment (Windows)
├── infra/                # Azure Bicep templates (main + 8 modules)
│   ├── main.bicep
│   ├── main.bicepparam   # Parameters (reads env vars from azd)
│   └── modules/
│       ├── managed-identity.bicep
│       ├── keyvault.bicep
│       ├── acr.bicep
│       ├── postgresql.bicep
│       ├── container-app.bicep
│       ├── apim.bicep
│       ├── apim-api.bicep      # REST API + product + subscription
│       └── apim-mcp.bicep      # MCP server (apiType: 'mcp')
├── src/app/              # FastAPI application
├── alembic/              # Database migrations
├── tests/                # Test suite
├── azure.yaml            # Azure Developer CLI project config
├── Dockerfile
└── docker-compose.yml

许可证

麻省理工学院

目录标签

目录标签

订单管理PythonClaudeAPI集成半导体本地部署API服务AzureMCP协议

支持客户端

Claude DesktopClaudeVS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

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

来源信息

继续浏览同类 MCP