mcpField
A
AI Agent Identity and Verifiable Data

AI Agent Identity and Verifiable Data

本地服务
github.com/empe-ioAI 与智能体084 周前更新

关于 AI Agent Identity and Verifiable Data

AI Agent Identity and Verifiable Data 是连接 EMPE Issuer Service 的 MCP 服务适配器,面向创建和管理可验证凭证的工作流。它为自我主权身份系统提供凭证模式管理与签发工具。

主要功能

  1. 01创建和管理凭证模式
  2. 02按 ID 或类型检索模式
  3. 03检查模式是否存在
  4. 04创建定向凭证提供
  5. 05创建开放凭证提供

适用场景

  1. 01为凭证类型定义模式
  2. 02查找已有凭证模式
  3. 03向 DID 发起凭证提供
  4. 04创建任何人均可领取的提供

MCP 相关

该 MCP 服务将 EMPE Issuer Service 功能作为工具提供给 AI 模型,包括模式管理和创建凭证提供。它通过 Issuer Service 客户端连接服务实例。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

AI Agent 身份与可验证数据

简介

端到端可验证数据基础设施(EVDI)是一套全面的基础设施,用于管理 AI Agent 生态系统中的数字身份和凭证。EVDI 提供安全、去中心化的框架,使 AI Agent 能够在与其他 Agent、人类和系统交互时建立、管理和验证自身身份。

什么是自我主权身份(SSI)?

自我主权身份(SSI)是一种数字身份管理模式,让个人(在我们的场景中则是 AI Agent)能够掌控自己的身份和数据。与由单一机构控制和验证身份的传统中心化身份系统不同,SSI 允许实体:

  1. 拥有自己的身份:无需依赖任何中心机构即可掌控自己的数字形象
  2. 管理自己的凭证:根据需要存储和共享可验证凭证
  3. 证明声明:展示自身属性,而无需透露不必要的信息
  4. 建立信任:以去中心化的方式与其他实体建立可信连接
颁发者与验证者的角色

在 SSI 生态系统中,有三个关键角色:

  • 颁发者:创建并签署可验证凭证的实体(例如,AI Agent 在完成面试后证明用户的技能)
  • 持有者:接收并存储凭证的实体(例如,存储自身能力的 AI Agent)
  • 验证者:请求并验证凭证的实体(例如,检查 Agent 授权情况的服务)

此代码库专注于颁发者组件,该组件允许受信任的机构为 AI Agent 或其他实体创建并颁发可验证凭证。

EVDI 对 AI Agent 的重要性

随着 AI 系统变得更加自主并与各种实体交互,它们需要安全的方式来:

  • 证明自己的身份和能力
  • 与人类、其他 AI Agent 和外部系统建立信任
  • 共享可验证信息,同时不损害安全性
  • 在进行复杂交互时维护隐私

EVDI 通过采用密码学安全且防篡改的凭证来实现这些能力,无需联系原始颁发者即可验证这些凭证。

交互范围

EVDI 支持的交互不限于 Agent 之间的通信,还包括:

  • Agent 与人类:AI Agent 可以向人类出示并颁发可验证凭证
  • Agent 与系统:AI Agent 可以使用自己的凭证向外部系统进行身份验证
  • 人类与 Agent:人类可以向 AI 系统出示凭证
  • 系统与 Agent:外部系统可以向 AI Agent 颁发凭证

如需了解更多信息,请访问我们的文档。

此代码库包含 Empe 自我主权身份颁发者服务的 MCP(模型上下文协议)服务,它是 EVDI 整体生态系统的首个组件。未来的组件将包括凭证验证能力、Agent 之间的身份验证,以及面向 AI Agent 的自我主权身份管理。

SSI 颁发者服务的 MCP 服务

概览

此项目实现了一个模型上下文协议(MCP)服务,作为 AI 模型与自我主权身份(SSI)生态系统中的 EMPE 颁发者服务之间的适配器。该服务基于 Spring Boot 和 Spring AI 的 MCP 服务能力构建,可让 AI 助手通过定义明确的工具与颁发者服务功能交互,从而实现由 AI 驱动的凭证管理工作流。

什么是 MCP?

模型上下文协议(MCP)是一种使 AI 模型能够与外部系统和工具交互的协议。它允许模型:

  • 发现可用工具
  • 调用工具执行特定操作
  • 处理这些操作的结果

此 MCP 服务将 Issuer Service 功能作为工具提供,供 AI 模型调用,从而弥合自然语言交互与 SSI 凭证操作之间的差距。

工作原理

  1. 工具注册:服务器将 SSI 操作定义为工具,并提供清晰的描述和参数
  2. AI 集成:AI 模型连接到 MCP 服务,以发现可用工具
  3. 工具执行:AI 需要执行 SSI 操作时,会向此服务器发起工具调用
  4. 结果处理:服务器在 Issuer Service 上执行操作,并将结果返回给 AI

关键组件

  • MCP 服务:向 AI 模型提供工具的基础
  • 架构管理工具:创建和管理凭证架构的功能
  • 凭证签发工具:生成和签发可验证凭证的函数
  • Issuer Service 客户端:负责与底层 Issuer Service API 通信

未来功能

EVDI 生态系统在不断发展,计划推出的功能包括:

  1. 凭证验证:用于验证 Agent 出示的凭证的工具
  2. Agent 身份管理:使 AI Agent 能够使用 DID 管理自己的身份
  3. 凭证存储:允许 Agent 收集并存储自己的凭证
  4. 选择性披露:使 Agent 能够共享特定凭证属性,而无需透露全部信息
  5. Agent 间身份验证:AI Agent 之间使用 DID 进行安全身份验证的机制

访问 Issuer Service

一键式门户

我们提供一键式门户,你可以轻松部署自己的 Issuer 或 Verifier 服务实例。请访问 https://oneclick.empe.io/。

演示环境

我们提供演示环境供测试使用,地址如下:

https://mcp-demo-issuer.evdi.app

注意:访问演示环境需要访问码。出于安全原因,本 README 中不包含访问码。我们会通过安全渠道向感兴趣的用户提供访问码。

设置 MCP 服务

前提条件
  • Java 23 或更高版本
  • Maven 3.8+
  • 可访问 EMPE Issuer Service 实例
配置

在 application.properties 或 application.yml 中配置 MCP 服务:

# MCP Server Configuration
spring.ai.mcp.server:
  port: 8090
  cors.allowed-origins: "*"  # For development only

# Issuer Service Connection
issuer:
  api:
    base-url: https://your-issuer-service.example.com/api/v1
    client-secret: your-client-secret
    schema-templates:
      proof-of-purchase:
        name: ProofOfPurchase
        type: ProofOfPurchase
        properties:
          ticket:
            type: string
            title: Ticket Number
          seat:
            type: string
            title: Seat Assignment
          description:
            type: string
            title: Event Description
        required-fields:
          - ticket
          - seat
          - description
构建和运行
mvn clean package
java -jar target/mpc-issuer-verifier-0.0.1-SNAPSHOT.jar

将 AI 模型连接到 MCP 服务

OpenAI Custom GPT 示例

如果你要使用 OpenAI 创建 Custom GPT:

  1. 前往 GPT Builder
  2. 在“Configure”标签页中,选择“Actions”
  3. 添加新操作,并设置:
    • 身份验证:无
    • API 端点:http://your-mcp-server:8090/api/v1
    • 架构:设为“Import from URL”,并使用 http://your-mcp-server:8090/api/v1/openapi.json
Anthropic Claude 示例

对于 Claude,你可以使用函数调用功能:

const response = await client.messages.create({
  model: "claude-3-opus-20240229",
  max_tokens: 1000,
  system: "You are an assistant that helps users manage SSI credentials.",
  messages: [
    {
      role: "user",
      content: "Create a proof of purchase credential"
    }
  ],
  tools: [
    {
      name: "mcp_tools",
      url: "http://your-mcp-server:8090/api/v1/openapi.json"
    }
  ]
});

可用的 AI 工具

MCP 服务向 AI 模型提供以下工具,并附有详细说明,以指导其正确使用:

架构管理工具
createSchema

创建新的凭证架构,用于定义可验证凭证的结构。

参数:

  • name:易于理解的名称(例如,'ProofOfPurchase'、'IdentityCredential')
  • type:此架构类型的唯一标识符,创建凭证提供项时会用到
  • properties:JSON 映射,用于定义架构属性及其类型和描述
  • requiredFields:凭证中必须包含的必填字段列表
getAllSchemas

获取系统中的所有凭证架构。

getSchemaById

根据唯一标识符(UUID)获取指定架构。

参数:

  • id:要获取的架构的 UUID(例如,'db5a33ae-2eef-41b4-9c74-2ed16c4bb4f4')
deleteSchema

从系统中永久删除一个模式。

参数:

  • id:要删除的模式的 UUID
schemaExistsByType

检查指定类型的模式是否已存在。

参数:

  • type:要检查的模式类型(区分大小写)
getLatestSchemaByType

按类型检索最新版本的模式。

参数:

  • type:要搜索的模式类型(区分大小写)
凭证签发工具
createTargetedOffering

为特定接收方 DID 创建凭证提案。

参数:

  • type:要提供的凭证类型(必须与现有模式匹配)
  • credentialSubject:要作为键值对纳入凭证的数据
  • recipientDid:预期接收方的 DID(例如,'did:empe:testnet:123abc456def')
createOpenOffering

创建任何人都可以领取的开放式凭证提案。

参数:

  • type:要提供的凭证类型(必须与现有模式匹配)
  • credentialSubject:要作为键值对纳入凭证的数据

AI 交互示例

示例 1:创建模式并提供凭证

用户:“为我们的高级会员创建一份会员凭证。”

AI 处理:

  1. 首先,检查是否存在合适的模式:

    {
      "name": "schemaExistsByType",
      "parameters": {
        "type": "MembershipCredential"
      }
    }
    
  2. 如果不存在模式,则创建一个:

    {
      "name": "createSchema",
      "parameters": {
        "name": "MembershipCredential",
        "type": "MembershipCredential",
        "properties": {
          "memberName": {
            "type": "string",
            "title": "Member Name"
          },
          "membershipLevel": {
            "type": "string", 
            "title": "Membership Level"
          },
          "validUntil": {
            "type": "string",
            "title": "Valid Until",
            "format": "date"
          }
        },
        "requiredFields": ["memberName", "membershipLevel", "validUntil"]
      }
    }
    
  3. 创建凭证提案:

    {
      "name": "createOpenOffering",
      "parameters": {
        "type": "MembershipCredential",
        "credentialSubject": {
          "memberName": "Jane Smith",
          "membershipLevel": "Premium",
          "validUntil": "2026-03-19"
        }
      }
    }
    
示例 2:检索模式信息

用户:“我们目前支持哪些凭证类型?”

AI 处理:

{
  "name": "getAllSchemas",
  "parameters": {}
}

随后,AI 会处理结果并提供易于理解的摘要: “我们目前支持以下凭证类型:

  1. MembershipCredential(2 个版本)
  2. EventTicket
  3. ProofOfPurchase”

评论

支持 Markdown

第一次接触 MCP?

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

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