Rust OAuth2 Server – MCP 集成服务端
使用说明
-
项目简介
- 本仓库包含一个使用 MCP(Model Context Protocol)标准的服务端实现,用于向 AI 客户端(如大语言模型驱动的代理)暴露对 OAuth2 服务的访问能力。MCP 服务端通过 JSON-RPC 提供“工具(Tools)”来对外注册和执行功能,例如注册客户端、获取/撤销令牌、健康与指标查询等。MCP 客户端可通过标准化的工具调用,与后端 Rust/Actix-Web 的 OAuth2 服务进行交互。
-
主要功能点
- MCP 服务端实现:通过 JSON-RPC 提供工具清单与执行入口,供 LLM/代理调度执行。
- 工具集成:包含注册客户端、获取令牌、交换授权码、令牌撤销、健康检查、指标查询等工具。
- 连接后端:工具实现对接 Rust OAuth2 服务的 REST API(如 /clients/register、/oauth/token、/oauth/introspect、/oauth/revoke、/health、/metrics、/.well-known/openid-configuration)。
- 运行环境:Node.js 作为 MCP 服务器实现,后端 Rust 服务通过 HTTP/HTTPS 暴露 API。
- 安全与可观测性:结合现有监控/指标能力,配套日志与追踪。
-
安装步骤
- 启动 MCP 服务器
- 进入 mcp-server 目录,安装依赖并启动 Node 服务(需要 Node.js 环境)。
- 常规步骤:npm install
- 运行命令:node src/index.js
- 进入 mcp-server 目录,安装依赖并启动 Node 服务(需要 Node.js 环境)。
- 启动后端 OAuth2 服务器
- 按仓库中的文档在根目录下编译并运行整个 Rust OAuth2 服务(使用 cargo/run,或使用 Docker/Kubernetes 部署)。
- 配置 MCP 客户端(示例配置见下方的 JSON 配置片段)
- MCP 客户端需要知道 MCP 服务器的启动命令、参数及服务器名称等信息,具体在“服务器配置”中给出。
- 连接测试
- 启动后通过 MCP 客户端向 MCP 服务器发起工具调用,确保工具能够正确地调用后端 OAuth2 服务并返回结果。
- 启动 MCP 服务器
-
服务器配置(MCP 客户端需要的最小配置信息) 注:以下为生成用于 MCP 客户端的服务器配置示例,描述 MCP 服务器的启动命令、名称等信息。MCP 客户端本身不依赖代码,仅用于描述如何在客户端配置连接。
{ "server_name": "oauth2-server-mcp", "command": "node", "args": [ "/path/to/rust_oauth2_server/mcp-server/src/index.js" ], "env": { "OAUTH2_BASE_URL": "http://localhost:8080" } }
说明:
- server_name 表示 MCP 服务器在客户端注册时的标识名称。
- command/args 指定启动 MCP 服务器的命令及参数。此处为 Node.js 运行 mcp-server 的入口文件路径。
- env 中的 OAUTH2_BASE_URL 指向后端 OAuth2 服务的网关地址,MCP 工具在执行时会调用该后端 API。
- MCP 客户端并不需要额外的程序逻辑来实现服务器,只需提供以上配置信息即可建立连接并执行工具。
-
基本使用方法
- 启动 MCP 服务端后,使用 MCP 客户端向 MCP 服务器请求以下操作:
- 获取工具列表:了解可用的工具(如 register_client、get_token、exchange_code、introspect_token、revoke_token、health、metrics、openid_config 等)。
- 调用具体工具:按需求向指定工具传入参数,MCP 服务端将通过底层 HTTP 请求与 OAuth2 服务交互并返回结果。
- 结合 OpenID 配置与健康/指标等接口实现对后端的状态监控。
- 在集成测试中,可通过调用 health/readiness/metrics 等工具,验证 MCP 服务端与 OAuth2 服务的连通性与稳定性。
- 启动 MCP 服务端后,使用 MCP 客户端向 MCP 服务器请求以下操作:
- 关键词
- OAuth2 服务
- OpenID Connect
- 自动化集成
- 分布式观测
- API 安全性
- 分类ID
- 6