安全认证协议实现

一个基于MCP认证规范和RFC 8707的Python(Flask)应用程序实现,用于解决Confused Deputy问题,包含认证服务器、MCP服务器和客户端三个组件。

  • by pottava
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 pottava/secure-mcp-202510

使用说明

安全MCP

MCP 的认证规格(2025-06-18) 标准样品Python(Flask)应用程序实施。

"Confused Deputy" 为了解决问题RFC 8707 的明细栏样式中定义的设置。
它由三个组件组成。

  1. auth_server.py: 验证服务器。提交令牌。
  2. mcp_server.py: MCP 资源服务器。验证令牌并运行工具。
  3. mcp_client.py: MCP 客户端。获取令牌MCP 调用服务器。

安装,安装

ssh-keygen -t rsa -b 2048 -m PEM -f jwtRS256.key -N ""
openssl rsa -in jwtRS256.key -pubout -outform PEM -out jwtRS256.key.pub

服务器启动

认证服务器(接收resource参数并将其aud 设定为索赔JWT )在端口5001启动

flask --app auth_server run -p 5001

MCP 服务器(aud索赔和scope 在端口5000上启动严格验证索赔的资源服务器)

flask --app mcp_server run -p 5000

执行演示

启动两个服务器后,在第三个终端运行客户端脚本。
此脚本自动执行建议的使用顺序和安全攻击模拟。

python mcp_client.py