Token导航 LogoToken导航TokenDH.com
Mcpserver Auth Demo logo
安全风控stdio官方级别未说明来源级核验

Mcpserver Auth Demo

MCP Server

一个演示如何创建需要OAuth 2.0认证的MCP服务器的示例,提供受JWT令牌保护的数学工具。

工具数

2

提示词数

0

GitHub Stars

5

资源数

0
Jupyter NotebookDocker安全

安装说明

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

作者 / 组织

alefcarlos

提供方

alefcarlos

最后核验

2026/5/17 20:20

运行时

Docker

快速接入

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

命令预览

docker run --rm --volumes-from <container> quay.io/keycloak/keycloak:latest export --realm local --file /opt/keycloak/da...

详细介绍

受保护的MCP服务器示例

此示例演示了如何创建需要OAuth 2.0身份验证才能访问其工具和资源的MCP服务器。服务器提供由JWT承载令牌身份验证保护的简单数学工具(加法和乘法)。

概述

受保护的MCP服务器示例显示了如何:

  • 创建具有OAuth 2.0保护的MCP服务器
  • 配置JWT承载令牌身份验证
  • 实施受保护的MCP工具和资源
  • 与ASP集成。NET Core身份验证和授权
  • 为客户端发现提供OAuth资源元数据

先决条件

  • .NET 10.0或更高版本

设置和运行

用户

*电子邮件*: alef@alef.com *密码*: 123

第一步:启动Aspire Host项目

首先,您需要使用aspire启动所有deps:

aspire run

OAuth服务器将在以下时间启动 http://localhost:8080 服务器将在 http://localhost:5522

mcp的vscode客户端尚不支持使用自签名证书的https,因此您需要使用http端点进行测试。 #248170

步骤2:使用vscode测试服务器

跟随 本指南 使用Visual Studio代码测试服务器

步骤2.1:使用MCP检查器测试服务器

访问 http://localhost:6274/ 并遵循 Guided OAuth Flow

步骤2.2:使用手动流程笔记本测试服务器

文件 manual-flow.ipynb 包含一个Jupyter笔记本,演示如何从OAuth服务器手动获取访问令牌,并使用它访问受保护的MCP服务器端点。

服务器提供什么

保护资源

  • MCP端点: http://localhost:5522/ (需要身份验证)
  • OAuth资源元数据: http://localhost:5522/.well-known/oauth-protected-resource

可用工具

服务器提供需要身份验证的数学工具:

  1. 添加:添加两个数字
  • 参数: a (双倍), b (双)
  • 例子: Add 随着 a: 2.5, b: 4.25 回报 6.75
  1. :将两个数字相乘
  • 参数: a (双倍), b (双)
  • 例子: Multiply 随着 a: 3, b: 5 回报 15

验证配置

服务器配置为:

  • 接受来自OAuth服务器的JWT承载令牌 https://localhost:8080
  • 将令牌受众验证为 apiservice
  • 要求令牌具有适当的作用域(mcp:tools, profile)
  • 为客户端发现提供OAuth资源元数据

建筑

服务器使用:

  • ASP。NET核心 用于托管和HTTP处理
  • JWT承载身份验证 用于令牌验证
  • MCP身份验证扩展 用于OAuth资源元数据
  • 简单的进程内逻辑 用于数学运算
  • 授权 保护MCP端点

OAuth服务器

此演示使用 Keycloak 26 实现 RFC 8414RFC 7591 这是MCP OAuth资源元数据所必需的。

配置详情

  • 服务器URL: http://localhost:5522
  • OAuth服务器: http://localhost:8080
  • MCP检查员: http://localhost:6274

无客户端测试

您可以使用HTTP工具直接测试服务器:

  1. 从OAuth服务器获取访问令牌
  2. 将令牌包含在 Authorization: Bearer 头球
  3. 向MCP端点发出请求

外部依赖项

数学工具没有外部数据依赖关系。

故障排除

  • 确保ASP。NET Core开发证书是受信任的。
  dotnet dev-certs https --clean
  dotnet dev-certs https --trust
  • 验证受信任的主机以进行动态客户端注册。

Realm完全导出

确保Keycloak容器已停止,并运行以下命令导出领域配置:

docker run --rm --volumes-from  quay.io/keycloak/keycloak:latest export --realm local --file /opt/keycloak/data/export.json --users same_file
docker cp :/opt/keycloak/data/export.json .

参考文献

  • https://github.com/localden/min-cs-mcp-auth/tree/main
  • https://github.com/modelcontextprotocol/csharp-sdk
  • https://github.com/mikekistler/mcp-auth-illustrated/blob/main/github.ipynb
  • https://www.youtube.com/watch?v=H0SGK1yPHD0
  • https://modelcontextprotocol.io/docs/tutorials/security/authorization
  • https://www.keycloak.org/2025/09/keycloak-2640-released
  • https://modelcontextprotocol.io/specification/draft/basic/authorization

目录标签

目录标签

Jupyter NotebookDocker安全本地部署OAuth2.0JWT认证MCP服务器数学工具ASP.NETCore

接入字段

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

stdio

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

oauth

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiooauth部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP