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

MCP Oauth Proxy

MCP Server

一个轻量级的Rust代理服务,用于在Claude的MCP连接器和下游MCP服务器之间进行OAuth 2.1认证转换。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
RustClaude安全Claude

安装说明

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

作者 / 组织

aolkin

提供方

aolkin

最后核验

2026/5/17 20:23

运行时

Docker

快速接入

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

命令预览

docker run -d \

详细介绍

mcp-oauth代理

此存储库已存档,以支持Cloudflare MCP服务器门户,该门户实现了相同的目标。

一个轻量级的Rust代理,位于Claude的MCP连接器(需要OAuth 2.1)和使用其他身份验证方法的下游MCP服务器之间。它为Claude提供了一个兼容的OAuth 2.1接口,同时处理到下游服务的凭证转换。

这解决了什么

Claude的web界面通过“连接器”支持MCP(模型上下文协议)服务器,但只支持基于OAuth的身份验证。许多MCP服务器使用更简单的身份验证(API密钥、承载令牌)。这个代理弥合了这一差距。

支持的身份验证策略

1.通道

用户在OAuth授权流期间提供令牌/API密钥。代理直接将其作为OAuth访问令牌返回给Claude。在每个MCP请求上,代理将其转发给下游服务器,并可选择重新格式化标头。

无需存储。 最适合长期使用API密钥或个人访问令牌。

2.链接OAuth

代理通过下游服务(例如GitHub)启动真正的OAuth流。下游服务的令牌作为代理的令牌传递给Claude。Claude透明地处理刷新——代理只是将刷新请求转发到下游令牌端点。

无需存储 (无国籍)。权衡:如果轮换刷新令牌在刷新过程中丢失,用户必须重新授权。

快速开始

# Clone and build
cargo build --release

# Edit config
cp config.example.toml config.toml
# (configure your downstream MCPs — see docs/CONFIG.md)

# Generate a secret key
openssl rand -base64 32
# Put this value in config.toml as state_secret

# Run
./target/release/mcp-oauth-proxy --config config.toml

# In Claude's connector settings, add your MCP URL:
#   https://your-domain.com/mcp/github
# Claude will discover OAuth endpoints automatically via .well-known

安装演练:从零到工作代理

1.建造

cargo build --release

或者使用Docker:

docker build -t mcp-oauth-proxy .

2.配置

cp config.example.toml config.toml

编辑 config.toml:

  • public_url 到您的HTTPS域(例如。, https://mcp.example.com)
  • 生成一个秘密: openssl rand -base64 32 并设置 state_secret
  • 添加一个或多个 [[downstream]] 条目(参见 docs/CONFIG.md)

对于链式OAuth(例如GitHub):

  • 在提供商处注册OAuth应用程序(例如。,https://github.com/settings/developers)
  • 将回调URL设置为 https://your-domain.com/callback/mcp/
  • oauth_client_idoauth_client_secret 在配置中(或使用环境变量)

3.使用HTTPS进行部署

Claude的连接器需要HTTPS。选择以下选项之一:

选项A:在Caddy后面(自动TLS)

# Caddyfile
mcp.example.com {
    reverse_proxy localhost:8080
}

选项B:在nginx后面

server {
    listen 443 ssl;
    server_name mcp.example.com;
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_buffering off;  # Important for SSE
    }
}

选项C:Cloudflare隧道(最简单)

cloudflared tunnel --url http://localhost:8080

选项D:Docker

docker run -d \
  -p 8080:8080 \
  -v $(pwd)/config.toml:/etc/mcp-oauth-proxy/config.toml:ro \
  -e MCP_PROXY_STATE_SECRET="$(openssl rand -base64 32)" \
  mcp-oauth-proxy

4.联系克劳德

在Claude的连接器设置中,添加您的MCP URL:

https://mcp.example.com/mcp/github

克劳德将自动:

  1. 通过以下方式发现OAuth端点 GET /.well-known/oauth-protected-resource/mcp/github
  2. 将您重定向到授权(passthrough为表单,链式为OAuth提供者)
  3. 将授权码替换为令牌
  4. 开始通过代理发出MCP请求

5.健康检查

验证代理是否正在运行:

curl https://mcp.example.com/health
# Returns: OK

日志记录

控制日志级别 RUST_LOG:

RUST_LOG=info ./target/release/mcp-oauth-proxy --config config.toml
RUST_LOG=debug ./target/release/mcp-oauth-proxy --config config.toml

记录的事件:请求方法+路径、响应状态、下游URL(在代理上)、身份验证流事件(授权、代码发布、代码交换、刷新代理)。

从未记录:访问令牌,刷新令牌,API密钥,PKCE验证器,状态Blob。

环境变量

变量覆盖
RUST_LOG日志级别(默认值: info)
MCP_PROXY_STATE_SECRETserver.state_secret
MCP_PROXY__CLIENT_SECRETdownstream[name].oauth_client_secret

文档

目录标签

目录标签

RustClaude安全OAuth代理本地部署认证转换MCP协议Rust开发轻量级服务

支持客户端

Claude

接入字段

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

stdio

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

oauth

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiooauth部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP