关于 MCP Server Template with Internet Identity Authentication
这是一个使用 Internet Identity 进行身份验证的 MCP 服务模板,展示基于浏览器的委托流程与受保护工具访问,面向 MCP 服务开发者。
主要功能
- 01Internet Identity 身份验证流程
- 02基于浏览器的验证界面
- 03委托链创建与传递
- 04身份验证状态管理
- 05受保护的 MCP 工具
适用场景
- 01构建需要身份验证的 MCP 服务原型
- 02在工具调用前要求身份核验
MCP 相关
项目实现了带有 `authenticate` 工具及需身份验证工具的 MCP 服务。配套的 React 应用创建委托链并将其发送给服务端。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
使用 Internet Identity 身份验证的 MCP 服务模板
本项目演示了一个采用 Internet Identity 身份验证流程的模型上下文协议(MCP)服务。
身份验证流程
┌────────────────┐ (1) Use authenticate tool ┌────────────────┐
│ │ ────────────────────────────────> │ │
│ │ │ │
│ AI Client │ │ MCP Server │
│ with MCP │ │ │
│ Support │ │ │
│ │ <─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │
└────────────────┘ (6) Authentication result └────────────────┘
│ │
│ │ (2) Open authentication URL
│ │ with pubkey & expiration
│ ▼
│ ┌────────────────┐
│ │ │
│ │ React Web App │
│ │ (Auth UI) │
│ │ │
│ └────────────────┘
│ │
│ │ (3) User authenticates
│ │ with Internet Identity
│ ▼
│ ┌────────────────┐
│ │ │
│ │ Internet │
│ │ Identity │
│ │ │
│ └────────────────┘
│ │
│ │ (4) Return delegation
│ ▼
│ ┌────────────────┐
│ │ │
│ │ React Web App │
│ │ (Auth UI) │
│ │ │
│ └────────────────┘
│ │
│ │ (5) Send delegation
│ │ to MCP Server
▼ ▼
┌────────────────┐ (7) Call other MCP tools ┌────────────────┐
│ │ ────────────────────────────────> │ │
│ │ │ │
│ AI Client │ │ MCP Server │
│ with MCP │ │ (Authenticated)│
│ Support │ │ │
│ │ <─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │
└────────────────┘ (8) Tool responses └────────────────┘
工作原理
-
请求身份验证:AI 客户端使用
authenticate工具调用 MCP 服务。 -
打开身份验证 URL:MCP 服务会打开一个浏览器窗口,其中包含身份验证 URL,参数包括:
pubkey:委派的公钥expiration:委派的过期时间,单位为毫秒
-
用户身份验证:React Web 应用(身份验证 UI)会显示界面,供用户使用 Internet Identity 或其他受支持的身份提供方进行身份验证。
-
创建委派:身份验证成功后,Web 应用会使用提供的公钥和过期时间为 MCP 服务创建委派链。
-
将委派发送到服务:Web 应用会将委派链发送到 MCP 服务的已配置端点。
-
身份验证结果:MCP 服务会向 AI 客户端返回身份验证结果。
-
访问受保护的工具:身份验证成功后,AI 客户端即可调用其他需要身份验证的 MCP 工具。
-
受保护的响应:通过身份验证的 MCP 服务会在响应工具调用时返回所请求的数据。
项目结构
-
mcp-server/:MCP 服务实现- 处理 MCP 工具注册和请求
- 管理身份验证状态
- 处理来自 Web 应用的委派
-
mcp-server-wallet-connect/:用于身份验证的 React Web 应用- 连接到 Internet Identity
- 为 MCP 服务创建委派
- 将委派发送回服务
设置说明
- 为两个项目配置环境变量
- 启动 MCP 服务
- 启动 React Web 应用
- 将 AI 客户端连接到 MCP 服务
如需详细的设置说明,请参阅各项目目录中的 README 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。