返回市场
开放MCP认证代理服务器

开放MCP认证代理服务器

作者:wso286 星标更新:2025-09-25

项目介绍

Open MCP Auth Proxy

适用于模型上下文协议(MCP)服务器的轻量级授权代理,根据MCP授权规范执行授权。

<a href="">🚀 发布</a> <a href="">💬 Stackoverflow</a> <a href="">💬 Discord</a> <a href="">🐦 Twitter</a> <a href="">📝 许可证</a>

架构图

🚀 特性

  • 动态授权:基于MCP授权规范。
  • JWT验证:验证令牌签名,检查audience声明,并强制作用域要求。
  • 身份提供商集成:支持集成任何OAuth/OIDC提供商,如Asgardeo、Auth0、Keycloak等。
  • 协议版本协商:通过MCP-Protocol-Version头进行。
  • 灵活传输模式:支持STDIO、SSE和流式HTTP传输选项。

🛠️ 快速开始

前提条件

  • 运行中的MCP服务器(如果您还没有MCP服务器,请使用示例MCP服务器
  • 支持MCP授权规范的MCP客户端
  1. Github发布页面下载最新版本。

  2. 在演示模式下启动代理(使用预配置的身份验证与Asgardeo沙盒):

  • Linux/macOS:
./openmcpauthproxy --demo
  • Windows:
.\openmcpauthproxy.exe --demo
  1. 使用类似MCP Inspector的MCP客户端连接。

🔒 集成身份提供商

Asgardeo

要启用通过您的Asgardeo组织的授权:

  1. 在Asgardeo中注册并创建一个组织

  2. 创建一个M2M应用程序

  3. 授权此应用程序调用“应用程序管理API”,使用internal_application_mgt_create范围 image

  4. 更新config.yaml,添加以下参数。

base_url: "http://localhost:8000"                              # 您的MCP服务器的URL  
listen_port: 8080                                              # 代理监听地址

resource_identifier: "http://localhost:8080"                 # 代理服务器URL
scopes_supported:                                            # 对于MCP服务器所需的作用域
- "read:tools"
- "read:resources"
audience: "<audience_value>"                                 # 访问令牌受众
authorization_servers:                                       # 授权服务器发行者标识符
- "https://api.asgardeo.io/t/acme"
jwks_uri: "https://api.asgardeo.io/t/acme/oauth2/jwks"       # JWKS URL
  1. 启动带有Asgardeo集成的代理:
./openmcpauthproxy --asgardeo

其他OAuth提供商

传输模式

STDIO模式

当使用stdio模式时,代理:

  • 使用配置中指定的命令启动MCP服务器作为子进程
  • 通过标准输入/输出(stdio)与子进程通信

注意:任何指定的命令(例如下面示例中的npx)必须首先安装在您的系统上

  1. 在您的config.yaml中配置stdio模式:
stdio:
  enabled: true
  user_command: "npx -y @modelcontextprotocol/server-github"  # 示例使用GitHub MCP服务器
  env:                           # 环境变量(可选)
    - "GITHUB_PERSONAL_ACCESS_TOKEN=gitPAT"    
  1. 使用stdio模式运行代理:
./openmcpauthproxy --demo
  • SSE模式(默认):用于Server-Sent Events传输
  • 流式HTTP模式:用于流式HTTP传输

可用命令行选项

# 在演示模式下启动(使用Asgardeo沙盒)
./openmcpauthproxy --demo

# 使用您自己的Asgardeo组织启动
./openmcpauthproxy --asgardeo

# 使用stdio传输模式而不是SSE
./openmcpauthproxy --demo --stdio

# 启用调试日志
./openmcpauthproxy --demo --debug

# 显示所有可用选项
./openmcpauthproxy --help

贡献

我们感谢您的贡献,无论是改进文档、添加新功能还是修复错误。要开始,请参阅我们的贡献指南