mcpField
M
MCP Server Template with Internet Identity Authentication

MCP Server Template with Internet Identity Authentication

本地服务
github.com/baolongt开发工具181 周前更新

关于 MCP Server Template with Internet Identity Authentication

这是一个使用 Internet Identity 进行身份验证的 MCP 服务模板,展示基于浏览器的委托流程与受保护工具访问,面向 MCP 服务开发者。

主要功能

  1. 01Internet Identity 身份验证流程
  2. 02基于浏览器的验证界面
  3. 03委托链创建与传递
  4. 04身份验证状态管理
  5. 05受保护的 MCP 工具

适用场景

  1. 01构建需要身份验证的 MCP 服务原型
  2. 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         └────────────────┘
工作原理
  1. 请求身份验证:AI 客户端使用 authenticate 工具调用 MCP 服务。

  2. 打开身份验证 URL:MCP 服务会打开一个浏览器窗口,其中包含身份验证 URL,参数包括:

    • pubkey:委派的公钥
    • expiration:委派的过期时间,单位为毫秒
  3. 用户身份验证:React Web 应用(身份验证 UI)会显示界面,供用户使用 Internet Identity 或其他受支持的身份提供方进行身份验证。

  4. 创建委派:身份验证成功后,Web 应用会使用提供的公钥和过期时间为 MCP 服务创建委派链。

  5. 将委派发送到服务:Web 应用会将委派链发送到 MCP 服务的已配置端点。

  6. 身份验证结果:MCP 服务会向 AI 客户端返回身份验证结果。

  7. 访问受保护的工具:身份验证成功后,AI 客户端即可调用其他需要身份验证的 MCP 工具。

  8. 受保护的响应:通过身份验证的 MCP 服务会在响应工具调用时返回所请求的数据。

项目结构

  • mcp-server/:MCP 服务实现

    • 处理 MCP 工具注册和请求
    • 管理身份验证状态
    • 处理来自 Web 应用的委派
  • mcp-server-wallet-connect/:用于身份验证的 React Web 应用

    • 连接到 Internet Identity
    • 为 MCP 服务创建委派
    • 将委派发送回服务

设置说明

  1. 为两个项目配置环境变量
  2. 启动 MCP 服务
  3. 启动 React Web 应用
  4. 将 AI 客户端连接到 MCP 服务

如需详细的设置说明,请参阅各项目目录中的 README 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。