mcpField
A
Agent Passport

Agent Passport

本地服务
fractalai.net.co安全02 周前更新

关于 Agent Passport

Agent Passport 是用于签发和独立验证 AI Agent 身份凭证及签名决策收据的 MCP 服务。它连接 FractalAI 实时注册表和接口,支持离线 ML-DSA-65 验证,并提供 Agent 查询、清单和证明工具。

主要功能

  1. 01签发 Agent 身份凭证
  2. 02使用 ML-DSA-65 离线验证收据
  3. 03读取 Agent 注册信息
  4. 04发现并验证 Agent 清单
  5. 05提供付费证明工具

适用场景

  1. 01信任 Agent 前验证其凭证
  2. 02查询 Agent 注册状态
  3. 03审计签名的 AI 决策
  4. 04离线验证 Agent 清单

MCP 相关

该服务通过 stdio 向 MCP 客户端提供身份凭证、注册表、清单和证明工具。它可连接支持 MCP 的客户端与框架;部分证明工具使用 x402 付费。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"johninarti-agent-passport": {
"command": "npx",
"args": [
"-y",
"@fractalai/agent-passport-mcp"
],
"env": {
"FRACTALAI_BASE_URL": "<FRACTALAI_BASE_URL>",
"FRACTALAI_RPC_URL": "<FRACTALAI_RPC_URL>",
"FRACTALAI_PINNED_RECEIPT_KEY": "<FRACTALAI_PINNED_RECEIPT_KEY>",
"AGENT_PASSPORT_AUTODEMO": "<AGENT_PASSPORT_AUTODEMO>"
}
}
}
}
启动命令npx -y @fractalai/agent-passport-mcp
需要配置的环境变量
FRACTALAI_BASE_URLOverride the FractalAI web endpoint base (defaults to https://fractalai.net.co).
FRACTALAI_RPC_URLOverride the FractalAI JSON-RPC node URL (defaults to https://api.fractalai.net.co).
FRACTALAI_PINNED_RECEIPT_KEY密钥Pin a specific base64 ML-DSA-65 receipt-signing public key instead of resolving it from the published key directory.
AGENT_PASSPORT_AUTODEMOSet to 0 to skip the live demo call made on first start.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@fractalai/agent-passport-mcp0.2.5

工具

12

收录的工具列表 · 更新于 2 周前

参数类型必填说明
receiptobject否可选:签发时交给你的回执 JSON。如果其中包含 `ml_dsa65` { signature, public_key, signed_payload_sha256 } 对象,则会使用已发布的回执密钥完全离线验证 ML-DSA-65 签名。
attestationstring是证明永久链接(…/attestation/0x…)或纯 0x 证明哈希。

详细介绍

Agent Passport — MCP 服务

开发者只需加入约 5 行代码,就能使用这款免费工具,为 AI Agent 签发并独立验证一份可验证护照——通过 Model Context Protocol,因此它适用于LangChain、CrewAI、AutoGen、OpenAI Agents、Claude Desktop,以及任何支持 MCP 的平台。

它连接的是真实的 FractalAI 公共部署:实时 L1 JSON-RPC 节点 https://api.fractalai.net.co(FRC-55 Agent 注册表)和 Web 端点 https://fractalai.net.co(证明、收据密钥、x402)。这里的一切都不是模拟的。

npx @fractalai/agent-passport-mcp

工具

工具费用目前的实际功能
verify_passport免费给定证明永久链接 / 0x 哈希(以及可选的收据 JSON):重新计算内容哈希,重建完全一致的规范签名消息,100% 离线验证 **ML-DSA-65(NIST FIPS 204)**签名(使用公开发布的 /api/x402/receipt-key),通过服务器辅助方式验证 Dilithium-2 签名并进行篡改负向对照,还会读取该 Agent 的 FRC-55 链上状态。返回 { valid, algorithm, checks[], anchored, decision, agent }。
issue_passportx402($0.05 USDC)将 agent_id、一份已签名声明和一个可重新验证的永久链接绑定起来:在 FRC-55 注册表中解析该 Agent(如果它是链上 ID),并通过真实的 x402 attest-decision流程封存声明(由 Dilithium-2 签名、经 Black-Box 链式关联并锚定到 L1)。若没有 payment_tx_hash,则返回付款挑战——绝不会伪造护照。
lookup_agent免费在实时节点上读取公开的 FRC-55 注册表:使用 fractal_getAgent 查询单个 Agent(名称、所有者、状态、模型、total_calls、rating、total_ratings、created_at),或使用 fractal_listAgents 查询所有 Agent;始终附带 fractal_getAgentStats。
list_fractalai_proofs免费自动发现并说明自身功能:实时读取规范的 /.well-known/x402.json,并返回完整的证明目录(价格、算法、端点、各项证明的内容)——一次调用即可映射整个 x402 接口;由于它反映的是实时事实来源,而非硬编码副本,因此接口变更后也能自动适配。
list_agents免费Fractal Agent Commons:获取已注册 Agent 的 ML-DSA-65 签名索引(/.well-known/agents.json;仅包含最新清单为当前有效的 Agent:密钥 = 该 Agent 在节点上的当前密钥、护照验证通过、FRC-55 状态为 Active、未过期),并使用此软件包中固定的公证密钥离线验证索引签名。include_all 会加入非当前有效的 Agent,并说明原因。region(ISO 3166-1 alpha-2,例如 CO)会获取单独签名的区域索引(?region=CO),并要求其签名字段 scope.region 与请求一致——如果区域请求返回的是全局索引,则视为 index_scope_mismatch,绝不回退。
get_agent_manifest免费获取 Agent 的 fractalai-agent-manifest/1(当前版本或不可变的 version),重新计算 manifest_id(JCS),并仅使用注册表/节点报告的 Agent 当前密钥验证其 ML-DSA-65 签名——绝不会只依赖清单中嵌入的密钥。
verify_agent_manifest免费离线验证收到的清单 JSON:将 alg 锚定为 ML-DSA-65(1952 字节密钥 / 3309 字节签名,不根据尺寸推断任何信息),验证 JCS manifest_id,并确认有效期 ≤ 30 天。验证密钥 = 你提供的 pubkey_b64url(完全离线);否则使用注册表/节点中的 Agent 当前密钥,且仅当它与嵌入的密钥一致时才使用。
x402 付费工具(v0.2.0)——后量子证明,按次付费

8 个受支持的 FractalAI x402 路由以自动付费的 MCP 工具形式提供。支持 x402 的钱包客户端会签署 EIP-3009 授权,并按照标准 _meta["x402/payment"] 约定使用 Base 上的 USDC 付款。每个已提供的签名均为 ML-DSA-65 / Dilithium-3(NIST FIPS 204),可离线验证;每个签名也会尝试在 FractalAI 的 L1 上进行链上锚定(在受限的共识切换完成前,锚定签名属于 Dilithium-2 / ML-DSA-44 级别——参见“诚实说明”)。使用经审计的 @noble/post-quantum 实现 FIPS 204 标准化算法(并非经 FIPS 验证的 CMVP 模块)。先调用任意工具且不付款,即可获取准确价格和付款挑战。

工具价格功能
seal_ml_dsa$0.02对任意消息或哈希进行后量子签名——持久、抗量子、可离线验证。
verify_proof$0.01验证签名(自动检测 ML-DSA-65 或 Dilithium-2)。任何证明工作流的基础原语。
verify_agent_kya$0.03了解你的 Agent:在信任或向另一个 Agent 付款前,验证其凭证和实时 FRC-55 声誉。
notarize_decision$0.05对 AI 决策(输入、输出、模型)进行公证 → 可审计、不可否认、上链(《欧盟 AI 法案》第 12 条)。
prove_provenance$0.05对数据集/内容哈希进行来源证明,并附上 drand 时间戳和链上锚定。
attest_training$0.05为模型生成 C2PA 训练来源清单,并以抗量子方式签名。
seal_cbom$0.05对 CycloneDX CBOM(加密清单)进行封存——用于披露 CNSA 2.0/采购方面的 PQC 就绪情况。

付款说明:付费工具接受标准 _meta["x402/payment"](自动付款),也接受普通的 payment 字符串参数(base64 X-PAYMENT),作为通用备用方式。工具不会伪造任何内容——它们会代理实时路由,并如实转发返回结果,包括其适用范围。

诚实说明(请阅读——项目规则 4)

有效护照可证明身份和特定的经证明声明在确切的签名字节上保持密码学完整,记录内部一致,并且已在 FractalAI 的 L1 上锚定。它不能证明:

  • 声明为真,或 Agent 的决策/操作是正确的;
  • 存在任何去中心化/共识评分的声誉——issue_passport 不会注册声誉;
  • lookup_agent 的评分是注册表自身的计数值,由节点报告,并非独立审计结果。

签名检查会标明信任模型:[independent] = 在本地计算,不信任 FractalAI 服务(离线 ML-DSA-65 检查、内容哈希);[server-assisted] = 调用 FractalAI 端点(Dilithium-2 /api/proofmind/verify 检查)。ML-DSA-65 验证通过经审计的 @noble/post-quantum 库使用 FIPS 204 标准化算法——这不是经 FIPS 验证的(CMVP)模块。

当前已实现与路线图的区别
  • **当前已实现:**使用已发布的密钥进行离线 ML-DSA-65 验证;服务端辅助的 Dilithium-2 验证和篡改检查;FRC-55 链上 Agent 查询;用于签发的真实 x402 402→付款→封存流程。
  • **路线图(尚未实现):**服务端签发的证明目前由服务器密钥自行签名,并锚定在 FractalAI 自有的 L1 上;完整的链上共识验证和去中心化的共识评分声誉仍是未来的里程碑。ml_dsa65 分离式签名目前已提供给试点集成方(通过 receipt 参数传入),并正在纳入公共 API。

使用方法

无需安装或构建任何内容——npx 会直接获取并运行已发布的程序包 (参见上方的配置块)。无需账户或 API 密钥。

贡献(从源代码构建)

只有在 FractalAI 单体代码库中开发服务本身时才需要:

cd integrations/agent-passport-mcp
npm install
npm run build      # tsc → dist/
npm test           # handshake: server stands up, tools respond, ML-DSA-65 round-trips

在 MCP 客户端中配置

Claude Desktop(claude_desktop_config.json)
{
  "mcpServers": {
    "agent-passport": { "command": "npx", "args": ["-y", "@fractalai/agent-passport-mcp"] }
  }
}
环境变量
  • FRACTALAI_BASE_URL — Web 端点基址(默认值为 https://fractalai.net.co)。
  • FRACTALAI_RPC_URL — L1 JSON-RPC 节点(默认值为 https://api.fractalai.net.co)。
  • AGENT_PASSPORT_AUTODEMO — 连接时,服务会向在线节点发起一次真实的免费调用(fractal_getAgentStats),并将结果记录到 stderr,以便你立即确认这不是模拟调用。该调用即发即忘,不会延迟或阻塞 MCP 握手。设为 0 可禁用。

各框架的 5 行示例

这些示例都通过 stdio 运行同一个 MCP 服务(npx @fractalai/agent-passport-mcp),并调用其中的工具。

LangChain(Python) — langchain-mcp-adapters:

from langchain_mcp_adapters.client import MultiServerMCPClient
client = MultiServerMCPClient({"agent_passport": {"command": "npx", "args": ["-y", "@fractalai/agent-passport-mcp"], "transport": "stdio"}})
tools = await client.get_tools()   # verify_passport, issue_passport, lookup_agent
agent = create_react_agent(model, tools)
await agent.ainvoke({"messages": "Verify passport https://fractalai.net.co/attestation/0x…"})

CrewAI(Python) — crewai-tools MCP 适配器:

from crewai_tools import MCPServerAdapter
from mcp import StdioServerParameters
params = StdioServerParameters(command="npx", args=["-y", "@fractalai/agent-passport-mcp"])
with MCPServerAdapter(params) as tools:
    Agent(role="Auditor", tools=tools, goal="Verify agent passports", backstory="...")

AutoGen(Python) — autogen-ext MCP 工作台:

from autogen_ext.tools.mcp import StdioServerParams, mcp_server_tools
params = StdioServerParams(command="npx", args=["-y", "@fractalai/agent-passport-mcp"])
tools = await mcp_server_tools(params)   # verify_passport / issue_passport / lookup_agent
agent = AssistantAgent("auditor", model_client=client, tools=tools)

OpenAI Agents SDK(Python):

from agents import Agent
from agents.mcp import MCPServerStdio
async with MCPServerStdio(params={"command": "npx", "args": ["-y", "@fractalai/agent-passport-mcp"]}) as server:
    agent = Agent(name="Auditor", instructions="Verify and issue agent passports.", mcp_servers=[server])

独立验证,无需框架

由于回执旨在供第三方验证,你甚至不需要此服务(或任何 FractalAI 代码)来检查回执——只需使用 @noble/post-quantum 和公钥目录:

import { ml_dsa65 } from '@noble/post-quantum/ml-dsa.js';

// 1. Pin the trusted key(s) from the signed, ML-DSA-65-governed directory (fetch once, cache):
const dir = await (await fetch('https://fractalai.net.co/.well-known/x402-receipt-keys')).json();
// (dir.signature / dir.directory_public_key let you verify the directory itself is unmodified —
// see @fractalai/pqc-agent-receipts-conformance for a full conformance-checked example.)

// 2. Given ANY served receipt — e.g. the response of a paid /api/x402/* call — verify offline:
const { signature, signed_message, public_key } = receipt; // fields returned by every x402 route
const valid = ml_dsa65.verify(
  Buffer.from(signature, 'base64'),
  new TextEncoder().encode(signed_message),
  Buffer.from(public_key, 'base64'),
);
console.log('receipt valid:', valid); // true only if the exact bytes were signed by that key

如需了解经过实战检验、针对对抗性场景设计的同类检查版本(涵盖 x402/SAR/ACP/JOSE/W3C-VC 配置文件中的真实、篡改和错误密钥伪造测试向量),请参阅 @fractalai/pqc-agent-receipts-conformance (npx pqc-receipt-check)。

许可证

MIT

自动化商业接入(0.2.5)

请先调用 list_fractalai_proofs。它会返回实时目录、付款要求、输入架构,以及受支持的 MCP 工具或明确的 HTTP 集成路径。发现信息中的价格仅供参考:在授权购买前,请请求新的挑战。MCP 服务不持有买方资金;自动付款需要配置了支出策略的兼容钱包客户端。

witness_payment 接受 seal_body、可选的 request_binding 和 settlement_tx,以及标准的 x402 付款元数据。请使用见证 SDK 构建绑定请求;在提交之前,持久化保存请求和授权。桥接程序只会转发一次,超时后不会创建替代授权。请使用独立信任的密钥验证交付的证据。此工具不能替代买方的持久恢复存储。

运行 npm run test:commerce,即可在不使用网络或付款的情况下执行确定性的 MCP 传输测试。

评论

支持 Markdown

第一次接触 MCP?

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

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