Token导航 LogoToken导航

MCP Server · 运维云端

Remote Auth MCP Apim Py

Remote MCP server with auth gated by Azure API Management

stdio官方级别未说明来源级核验工具 0@modelcontextprotocol/inspector@0.9.0
BicepJavaScriptAPI集成

快速开始

作者 / 组织
localden
提供方
localden
运行时
Node.js

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

30

仓库热度

收录来源

2 个

MCP.so

选型结论

Remote Auth MCP Apim Py 属于运维云端类 MCP Server,公开资料标注 0 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前先确认权限范围。

分类

运维云端

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

npx @modelcontextprotocol/inspector@0.9.0

客户端配置示例

{
  "mcpServers": {
    "remote-auth-mcp-apim-py": {
      "command": "npx",
      "args": [
        "@modelcontextprotocol/inspector@0.9.0"
      ]
    }
  }
}

按公开安装命令拼出来的示例,字段名和参数以仓库 README 为准;带 YOUR_API_KEY 这类占位符的位置记得换成自己的值。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Node.js,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

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

  4. 4

    验证是否可用

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

接入前确认

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

详细介绍

🤫 经过身份验证的远程MCP服务器

此示例显示了如何在Azure上部署受Entra ID保护的MCP服务器。

该示例还使用客户端获取令牌的授权模式 _对于MCP服务器_ 首先,然后使用 代表流量 将其兑换为可用于 微软图形这一切也是以一种完全隐秘的方式进行的。

⚠️ 重要提示:实验实施

\[!重要\] 这是一个实验性的实现,不应该在生产场景中使用。 此示例演示了如何通过实现OAuth 2.0动态客户端注册和PKCE流模式来构建具有Entra ID的受保护MCP服务器,这些模式可以弥补Entra ID对这些标准的本机支持中的当前差距。虽然它展示了技术上的可能性,但它仅用于教育和概念验证目的。 对于生产场景,考虑使用预先注册的应用程序和标准OAuth流的既定身份验证模式。

它的用途

\[!注意\] 您可以使用 模型上下文协议检查器 或 Visual Studio Code 以测试此MCP服务器。

授权流程是如何工作的

此实现使用复杂的OAuth 2.0流和PKCE(代码交换证明密钥)来安全地对MCP客户端进行身份验证。以下是这一切是如何结合在一起的:

sequenceDiagram
    participant Client as MCP Client
    participant Browser as User's Browser
    participant APIM as API Management
    participant Entra as Entra ID
    participant Function as Azure Function
    participant Graph as Microsoft Graph

    Note over Client,Graph: 1. Discovery & Registration
    Client->>APIM: GET /.well-known/oauth-authorization-server
    APIM->>Client: OAuth metadata (authorization_endpoint, token_endpoint, etc.)
    
    Client->>APIM: POST /register (Dynamic Client Registration)
    Note over APIM: Store client info in CosmosDB
Generate unique client_id
    APIM->>Client: Client credentials (client_id, no secret)

    Note over Client,Graph: 2. Authorization with PKCE
    Note over Client: Generate code_verifier & code_challenge
    Client->>Browser: Open authorization URL with PKCE params
    Browser->>APIM: GET /authorize?client_id=...&code_challenge=...
    
    Note over APIM: Check for existing consent cookie
🍪 __Host-MCP_APPROVED_CLIENTS
    alt No previous consent
        APIM->>Browser: Redirect to /consent page
        Note over Browser: User reviews permissions and clicks "Allow"
        Browser->>APIM: POST /consent (with CSRF protection)
        Note over APIM: Set consent cookie
🍪 __Host-MCP_APPROVED_CLIENTS
🍪 __Host-MCP_CONSENT_STATE
    end
    
    APIM->>Browser: Redirect to Entra ID with state correlation
    Note over APIM: Set Entra state cookie
🍪 __Host-MCP_ENTRA_STATE
(contains sessionId|entraidState|clientState)
    
    Browser->>Entra: Authorize with Entra ID
    Note over Browser: User authenticates with Entra ID
    Entra->>APIM: Callback with authorization code
    
    Note over APIM: Validate state correlation
Exchange code for Entra access token
Generate encrypted session token
    APIM->>Browser: Redirect with MCP authorization code

    Note over Client,Graph: 3. Token Exchange
    Browser->>APIM: POST /token (code + code_verifier)
    Note over APIM: Validate PKCE challenge
Return encrypted session token
    APIM->>Browser: Access token (encrypted session key)
    Browser->>Client: Token for MCP communication

    Note over Client,Graph: 4. Authenticated MCP Communication
    Client->>APIM: GET /mcp/sse (with Bearer token)
    Note over APIM: Decrypt session token
Lookup cached Entra token
Add to request for downstream
    APIM->>Function: Forward with Entra access token
    
    Function->>Graph: API calls using on-behalf-of flow
    Graph->>Function: User data
    Function->>APIM: MCP response
    APIM->>Client: Authenticated MCP response

使用的安全功能和Cookie

此实现使用多种安全机制和Cookie来确保安全流:

Cookie目的
__Host-MCP_APPROVED_CLIENTS记住特定客户的用户同意
__Host-MCP_DENIED_CLIENTS记住拒绝同意以防止再次提示
__Host-MCP_CONSENT_STATE验证提交的同意书
__Host-MCP_ENTRA_STATE将Entra ID回调与原始请求相关联
__Host-MCP_CSRF_TOKEN保护同意书免受CSRF攻击
\[!注意\] 所有Cookie的使用 __Host- 前缀、安全、HttpOnly和SameSite=Lax用于最大安全性(除 __Host-MCP_ENTRA_STATE 其使用SameSite=None进行跨站点重定向)。

主要安全功能:

  • 🔐 PKCE(代码交换证明密钥) -防止授权码被拦截
  • 🍪 安全Cookie -所有Cookie的使用 __Host- 最大安全性前缀
  • 🛡️ CSRF保护 -具有恒定时间验证的双重提交cookie模式
  • 🔄 状态相关性 -多层状态验证可防止会话固定
  • 🔒 加密会话令牌 -会话标识符经过AES加密
  • ⏰ 令牌缓存 -Entra令牌缓存有加密的会话密钥以提高性能

入门

按照以下步骤开始。

  1. 安装Azure开发者命令行界面.
  1. 在本地克隆存储库:
   git clone https://github.com/localden/remote-auth-mcp-apim-py
  1. 导航到终端中的存储库:
   cd remote-auth-mcp-apim-py
  1. 确保 Microsoft.App 资源提供程序已在您的订阅上注册 Azure门户 或运行以下命令 Azure CLI命令:
   az login
   az provider register --namespace Microsoft.App --wait
  1. 登录Azure开发者命令行界面:
   azd auth login
  1. 将项目部署到Azure:
   azd up
\[!重要\] 部署此项目将产生Azure成本。如果部署用于测试和实验,请确保在测试后删除创建的资源组。

部署和测试项目

当你奔跑时 azd up,在 infra 目录将在您的Azure帐户中设置。您可以浏览现有的二头肌文件,了解将自动部署哪些基础设施。

部署完成后,您将看到 端点 打印在终端上:

例如,在上面的屏幕截图中,端点是 https://apim-2lzunaz2nu642.azure-api.net/mcp/sse。复制它。

\[!注意\] 在下一步之前,请确保您已 已安装-需要运行 模型上下文协议检查器.

在您的终端中,运行:

npx @modelcontextprotocol/inspector@0.9.0
\[!注意\] 我们正在使用 0.9.0 发布模型上下文协议检查器,因为它是测试受保护的MCP服务器时最稳定的版本。

这将提供一个端点,您可以在其中看到模型上下文协议检查器在本地运行。在浏览器中打开URL。

切换 传输类型 向 上海证券交易所 并设置 统一资源定位符 到您从运行部署中获得的端点。点击 连接.

系统将提示您使用凭据进行身份验证 在部署基础架构的租户中Entra ID应用程序在部署时动态注册,一个用于服务器,另一个将用于 代表流量 获取 微软图形 访问。

一旦您同意,您将返回模型上下文协议检查器登录页面。等待几秒钟,直到建立连接-您将看到一个绿色 连接 标签在页面上。

连接后,单击 列出工具 并选择 get_graph_user_details。这将使您能够从Microsoft Graph获取有关当前已验证用户的数据。点击 运行工具.

如果一切顺利,您将在响应块中看到您的用户数据,如下所示:

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
  "businessPhones": [],
  "displayName": "YOUR_NAME",
  "givenName": null,
  "jobTitle": null,
  "mail": "YOUR_EMAIL",
  "mobilePhone": null,
  "officeLocation": null,
  "preferredLanguage": null,
  "surname": null,
  "userPrincipalName": "YOUR_UPN",
  "id": "c6b77314-c0ec-44b2-b0bb-2c971a753f0c",
  "success": true
}

反馈和报告问题

确保 打开一个问题 如果你遇到任何障碍或有意见。

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

cloud-platformsBicep本地部署AzureFunctionsAPI管理OAuth2.0PKCE动态客户端注册

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

典型使用场景

看服务状态

查询容器、日志和监控指标,定位异常。

执行部署变更

在权限范围内触发发布、回滚和环境切换。

核对资源用量

汇总用量,找出闲置和超额的部分。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Node.js,换机器要重新装一遍。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在运维云端场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

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

MCP.so · 本页

0stdio有2 个2026-05-17
Ui Tars Desktop 8a825770

MCP World

0stdio有1 个2026-05-17
Elie222 MCP

MCP World

0未说明未标注1 个2026-05-17
Arizeai Phoenix MCP

MCP World

0stdio有3 个2026-05-17
Unity MCP 87ee506e

MCP World

42HTTP有2 个2026-05-17

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

常见问题

5 条

Remote Auth MCP Apim Py 怎么安装?

公开资料给出的安装命令是 npx @modelcontextprotocol/inspector@0.9.0,运行环境为 Node.js。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Remote Auth MCP Apim Py 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Node.js;保存后完全退出客户端再打开,配置才会生效。

Remote Auth MCP Apim Py 收费吗?

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

Remote Auth MCP Apim Py 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Remote Auth MCP Apim Py 支持哪些客户端?

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

来源信息

继续浏览同类 MCP