Token导航 LogoToken导航TokenDH.com
MCP Agent Assessment logo
金融服务未说明官方级别未说明来源级核验

MCP Agent Assessment

MCP Server

一个用于评估MCP服务器端点的四层验证工具,包括协议合规性、支付能力、代理卡结构和链上声誉数据。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
JavaScript区块链金融数据

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

AgentProbe

提供方

AgentProbe

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

MCP代理评估

统一的MCP代理评估:将MCP验证、A2A代理卡检查、ERC-8004链上验证和信誉查询整合到一个具有严重性分类和比较支持的结构化评估中。

什么是代理人?

在本模块的上下文中 代理 是一个MCP服务器端点,它公开了多达四个协议层的功能:

  1. MCP服务器 --通过模型上下文协议提供工具、资源和提示
  2. A2A代理卡 --按照谷歌的代理到代理协议发布代理卡
  3. ERC-8004注册 --通过ERC-8004代理注册表具有链上身份
  4. 链上声誉 --在链上携带可验证的声誉数据

代理不限于单一协议。本模块评估端点提供的全方位功能,从基本的MCP合规性到链上身份和声誉。“代理”一词反映了现代MCP服务器越来越多地充当具有身份、支付能力(x402)和跨协议互操作性的自主服务提供商。

描述

该模块为MCP代理提供了一个全面的4层评估管道。它验证协议合规性、支付能力、代理卡结构、链上注册和信誉数据。结果按严重程度(错误、警告、信息)分类并分级(A/B/C),以便快速进行健康评估。

评估包括:

  • 层1:MCP协议验证和x402付款要求(通过 x402-mcp-validator)
  • 层2:A2A代理卡结构和功能(通过 a2a-agent-validator)
  • 层3:ERC-8004链上注册验证(通过 erc8004-registry-parser)
  • 第4层:链上信誉数据查询

快速启动

安装并运行基本评估:

git clone https://github.com/agentprobe/mcp-agent-assessment.git
cd mcp-agent-assessment
npm install
import { McpAgentAssessment } from 'mcp-agent-assessment'

const result = await McpAgentAssessment.assess( {
    endpoint: 'https://mcp.example.com/sse',
    timeout: 15000
} )

console.log( `Grade: ${result.entries.assessment.grade}` )
console.log( `Healthy: ${result.categories.overallHealthy}` )
console.log( `Supports x402: ${result.categories.supportsX402}` )

特性

  • 4层评估管道(MCP、A2A、ERC-8004、声誉)
  • 严重性分类分为3个级别(错误、警告、信息)
  • 基于错误和警告计数的分级系统(A/B/C)
  • 22个统一的布尔类别标志
  • 快照与每层差异的比较
  • 独立层的并行执行
  • 每层可配置超时

建筑

评估管道将四个独立的验证器协调成一个统一的结果:

flowchart LR
    A[MCP Server URL] --> B[AssessmentPipeline]
    B --> C[Layer 1: MCP + x402]
    B --> D[Layer 2: A2A Card]
    B --> E[Layer 3: ERC-8004]
    E --> F[Layer 4: Reputation]
    C --> G[SeverityClassifier]
    D --> G
    E --> G
    F --> G
    G --> H[AssessmentBuilder]
    H --> I[Grade A/B/C + Unified Result]

目录

- .asset() - .compare()

方法

该模块导出一个类 McpAgentAssessment 采用两种静态方法评估MCP服务器并比较评估结果。

.asset()

对MCP服务器端点执行完整的4层评估。返回结构化数据,其中包含严重性分类消息、布尔功能标志、分级和原始层结果。

方法

.assess( { endpoint, timeout, erc8004 } )

参数

密钥类型描述必填
endpointstringMCP服务器端点URL
timeoutnumber请求超时(毫秒)。默认 15000没有
erc8004对象或空ERC-8004配置 rpcNodes 映射(RPC URL的链别名)。默认 null没有

示例

import { McpAgentAssessment } from 'mcp-agent-assessment'

const result = await McpAgentAssessment.assess( {
    endpoint: 'https://mcp.example.com/sse',
    timeout: 15000,
    erc8004: {
        rpcNodes: {
            'ETHEREUM_MAINNET': 'https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY',
            'BASE_MAINNET': 'https://base-mainnet.g.alchemy.com/v2/YOUR_KEY'
        }
    }
} )

console.log( `Grade: ${result.entries.assessment.grade}` )
console.log( `Errors: ${result.entries.assessment.errorCount}` )
console.log( `Warnings: ${result.entries.assessment.warningCount}` )

退货

returns {
    status: true,
    messages: [
        {
            code: 'PRB-001',
            severity: 'INFO',
            layer: 1,
            location: 'tools',
            message: 'PRB-001 tools: Found 3 tools'
        }
    ],
    categories: { /* 22 boolean flags */ },
    entries: {
        endpoint: 'https://mcp.example.com/sse',
        timestamp: '2026-02-07T10:30:00.000Z',
        mcp: { /* Layer 1 data */ },
        a2a: { /* Layer 2 data */ } | null,
        erc8004: { /* Layer 3 data */ } | null,
        reputation: { /* Layer 4 data */ } | null,
        assessment: {
            errorCount: 0,
            warningCount: 0,
            infoCount: 1,
            grade: 'A'
        }
    },
    layers: {
        mcp: { /* raw Layer 1 result */ },
        a2a: { /* raw Layer 2 result */ },
        erc8004: null,
        reputation: null
    }
}
密钥类型描述
状态布尔值true 如果没有ERROR严重性消息
messages数组带有代码、严重性、层、位置、消息的分类消息对象
类别对象所有4层有22个布尔功能标志
entriesobject结构化数据:端点、时间戳、mcp、a2a、erc8004、信誉、评估
layersobject每一层的原始结果(mcp、a2a、erc8004、信誉)

.compare()

比较两个评估结果,并返回一个详细的差异,显示所有层的变化。代表MCP和A2A数据的特定层比较器。

方法

.compare( { before, after } )

参数

密钥类型描述必填
before对象上一个 assess() 结果
after对象后续 assess() 结果

示例

import { McpAgentAssessment } from 'mcp-agent-assessment'

const resultA = await McpAgentAssessment.assess( { endpoint: 'https://mcp.example.com/sse' } )
// ... changes happen on the server ...
const resultB = await McpAgentAssessment.assess( { endpoint: 'https://mcp.example.com/sse' } )

const diff = McpAgentAssessment.compare( { before: resultA, after: resultB } )

console.log( `Has changes: ${diff.hasChanges}` )
console.log( `Grade changed: ${diff.diff.assessment.grade.before} → ${diff.diff.assessment.grade.after}` )

退货

returns {
    status: true,
    messages: [],
    hasChanges: true,
    diff: {
        mcp: { /* delegated to McpServerValidator.compare() */ },
        a2a: { /* delegated to A2aAgentValidator.compare() */ },
        erc8004: {
            registration: { changed: {} },
            categories: { changed: {} }
        } | null,
        reputation: { changed: {} } | null,
        assessment: {
            grade: { before: 'B', after: 'A' },
            errorCount: { before: 0, after: 0 },
            warningCount: { before: 2, after: 0 },
            categories: {
                changed: {
                    supportsX402: { before: false, after: true }
                }
            }
        }
    }
}
密钥类型描述
statusboolean始终 true 论成功
消息数组完整性警告(例如端点不匹配)
hasChanges布尔值true 如果检测到任何差异
diff对象每层diff:mcp、a2a、erc8004、信誉、评估

严重性系统

每条诊断消息都分为3个严重级别,决定了整体等级:

级别影响示例
错误阻止A/B级连接失败,付款要求无效
警告A级块缺少可选字段,规格偏差
信息无影响已发现工具,检测到功能

错误代码前缀

错误代码遵循以下模式 {PREFIX}-{NUMBER}:

前缀范围
CON-*连接/协议问题
PAY-*付款要求问题(x402)
PRB-*探测信息消息
CSV-*代理卡验证问题(A2A)
VAL-*一般验证问题
REG-*注册问题(ERC-8004)
RPC-*RPC节点问题
REP-*声誉数据问题

评分

等级状况
A无错误和警告
B没有错误,但有警告
C有错误

四层管道

评估贯穿四个层次,它们之间存在依赖关系:

协议必填
1MCP+x402x402-mcp-validator总是
2A2A代理卡a2a-agent-validator总是
3ERC-8004.well-known/agent-registration.json +链上仅当 erc8004 提供的参数
4声誉连锁 getMetadata()仅当第3层找到agentId时

执行:

  • 第1层和第2层并行运行
  • 第3层取决于配置(erc8004 参数)
  • 第4层取决于第3层的结果(需要agentId)

类别参考

评估返回22个布尔标志,对服务器功能进行分类:

第1层(MCP+x402)

标志描述
isReachable服务器响应请求
supportsMcp有效的MCP协议握手
hasTools服务器公开工具
hasResources服务器公开资源
hasPrompts服务器公开提示
supportsX402至少有一个工具具有x402付款
hasValidPaymentRequirements付款要求通过验证
supportsExactScheme使用精确的支付方案
supportsEvm支持EVM网络
支持索拉纳支持索拉纳网络
支持任务支持MCP任务能力
支持MCPApps支持MCP Apps协议

第2层(A2A)

标志描述
已找到A2A卡
hasA2aValidStructure代理卡具有有效结构
hasA2aSkills代理卡声明技能
supportsA2aStreaming代理支持流媒体

第3层(ERC-8004)

标志描述
已注册.well-known/agent-registration.json 已找到
hasErc8004注册存在链上注册
isErc8004OnChain已验证链上所有权已验证
是否符合Erc8004规范注册遵循ERC-8004规范

第4层(声誉)

标志描述
hasOnChain计算存在链上信誉数据

总体

标志描述
overallHealthy所有层都没有错误消息

验证码

评估管道根据严重程度(错误、警告、信息)对每条消息进行分类 SeverityClassifier.

ASM——评估输入验证

代码严重性描述
ASM-001错误端点:缺少值
ASM-002错误端点:必须是字符串
ASM-003错误端点:不能为空
ASM-004错误端点:必须是有效的URL
ASM-005错误超时:必须是数字
ASM-006错误超时:必须大于0
ASM-010错误erc8004:必须是对象
ASM-011错误erc8004.rpc节点:缺少值
ASM-012错误erc8004.rpcNodes:必须是对象
ASM-013错误erc8004.rpcNodes:必须至少有一个条目
ASM-014错误erc8004.rpcNodes:密钥必须是非空字符串
ASM-015错误erc8004.rpcNodes:值必须是非空字符串
ASM-016错误erc8004.rpcNodes:必须是有效的URL
ASM-020错误之前:缺少值
ASM-021错误之前:必须是对象
ASM-022错误之前:缺少类别或条目
ASM-023错误之后:缺少值
ASM-024错误之后:必须是对象
ASM-025错误之后:缺少类别或条目

REG--ERC-8004注册中心

代码严重性描述
REG-001信息众所周知:找不到或无法访问文件
REG-002警告众所周知:响应不是有效的JSON
REG-003警告众所周知:缺少或无效的“注册”数组
REG-020警告agentId:缺少必填字段
REG-021警告agentRegistry:缺少必填字段
REG-022警告chainId:缺少或未知的链标识符
REG-030警告规范:链上数据中的验证问题

RPC——链上RPC

代码严重性描述
RPC-001错误rpcNodes:没有为链配置RPC节点
RPC-002错误eth_call:RPC调用失败
RPC-003警告注册表:在链上注册表中找不到代理
RPC-010错误信誉:RPC调用失败

REP——声誉

代码严重性描述
REP-001信息未找到信誉数据

CON--连接(第1层/5层)

代码严重性描述
CON-001错误端点:无法访问服务器

CMP——比较

代码严重性描述
CMP-001警告快照之间的端点不同
CMP-002警告快照前缺少时间戳
CMP-003警告快照后比快照前旧

贡献

欢迎PR!请确保:

  • 所有公共方法都有测试
  • 覆盖率保持在70%以上
  • 代码遵循格式标准(4个空格,没有分号,括号内有空格)
  • 提交消息参考问题编号

许可证

麻省理工学院

目录标签

目录标签

JavaScript区块链金融数据MCP验证本地部署代理评估链上身份协议合规

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP