Token导航 LogoToken导航TokenDH.com
MCP Apps Validator logo
浏览器工具未说明官方级别未说明来源级核验

MCP Apps Validator

MCP Server

一个用于验证MCP服务器UI扩展(SEP-1865)支持的工具,包括连接测试、资源发现、HTML内容验证、CSP配置检查等功能。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
服务器测试JavaScript浏览器自动化

安装说明

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

作者 / 组织

AgentProbe

提供方

AgentProbe

最后核验

2026/5/17 20:20

快速接入

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

详细介绍

mcp应用程序验证器

验证MCP服务器是否支持UI扩展(SEP-1865):通过StreamableHTTP或SSE连接,发现 ui:// 资源,验证HTML内容、CSP、权限、显示模式、主题化、工具链接、优雅降级,测量延迟,并返回一个包含12个布尔类别和18个输入字段的结构化快照。

快速启动

git clone https://github.com/agentprobe/mcp-apps-validator.git
cd mcp-apps-validator
npm i
import { McpAppsValidator } from 'mcp-apps-validator'

const { status, messages, categories, entries } = await McpAppsValidator.start( {
    endpoint: 'https://your-mcp-server.example.com/mcp',
    timeout: 15000
} )

特性

  • 使用SSE回退通过StreamableHTTP连接到MCP服务器
  • 发现 ui:// 通过以下方式链接资源和工具UI _meta.ui.resourceUri
  • 验证UI资源的HTML内容
  • 检查CSP(内容安全策略)配置
  • 验证权限声明
  • 检测显示模式支持(嵌入式、面板、全屏、弹出)
  • 检查主题/样式变量支持
  • 验证非UI主机的文本回退是否优雅降级
  • 将12个布尔类别(可达、MCP、MCP应用程序、UI资源、工具链接、主题、显示模式)分类
  • 测量listResources和readResource延迟
  • 比较两个快照并生成结构化差异
  • 连接失败时返回包含所有错误类别的空快照

建筑

验证管道按六个顺序步骤处理MCP服务器:

flowchart LR
    A[endpoint] --> B[McpAppsConnector.connect]
    B --> C[McpAppsConnector.discover]
    C --> D[UiResourceValidator.validate]
    D --> E[CapabilityClassifier.classify]
    E --> F[SnapshotBuilder.build]

目录

- .start() - .compare()

方法

所有方法都是静态的。参数作为对象传递,返回值是对象。

.start()

连接到MCP服务器,发现UI资源,验证HTML内容、CSP、权限、显示模式、主题化、工具链接,测量延迟,并返回结构化快照。

方法

.start( { endpoint, timeout } )
密钥类型描述必填
endpointstringMCP服务器的URL。示例 'https://server.example.com/mcp'是的
timeoutnumber连接超时(毫秒)。默认 10000没有

示例

import { McpAppsValidator } from 'mcp-apps-validator'

const { status, messages, categories, entries } = await McpAppsValidator.start( {
    endpoint: 'https://your-mcp-server.example.com/mcp',
    timeout: 15000
} )

console.log( `Status: ${status ? 'PASS' : 'FAIL'}` )
console.log( `UI Resources: ${entries['uiResourceCount']}` )
console.log( `MCP Apps: ${categories['supportsMcpApps']}` )
console.log( `Extension: ${entries['extensionVersion']}` )

退货

{ status, messages, categories, entries }
密钥类型描述
状态布尔值true 未生成消息时
messages字符串数组带有错误代码的警告和错误消息
类别对象12个布尔标志(请参见 分类)
条目对象18个数据字段(请参见 条目)

______________________________________________________________________

.compare()

比较由生成的两个快照 .start() 并返回一个结构化的diff,每个部分包含添加、删除和修改的项目。

方法

.compare( { before, after } )
密钥类型描述必填
beforeobject以前的快照 .start() 电话。必须包含 categoriesentries是的
after对象以后的快照 .start() 电话。必须包含 categoriesentries是的

示例

import { McpAppsValidator } from 'mcp-apps-validator'

const before = await McpAppsValidator.start( { endpoint: 'https://server.example.com/mcp' } )
const after = await McpAppsValidator.start( { endpoint: 'https://server.example.com/mcp' } )

const { status, messages, hasChanges, diff } = McpAppsValidator.compare( { before, after } )

console.log( `Changes detected: ${hasChanges}` )
console.log( `UI resources added: ${diff['uiResources']['added'].length}` )
console.log( `UI resources removed: ${diff['uiResources']['removed'].length}` )

退货

{ status, messages, hasChanges, diff }
密钥类型描述
状态布尔值true 比较完成时
messages字符串数组完整性警告(URL不匹配、时间戳问题)
hasChanges布尔值true 当任何差异部分发生变化时
diffobject带节的结构化diff: server, uiResources, uiLinkedTools, csp, permissions, latency, categories

分类

返回了12个布尔标志 categories:

密钥描述
isReachable服务器已响应连接尝试
supportsMcpMCP握手已完成
支持MCPApps服务器已 io.modelcontextprotocol/ui 扩展
hasUiResources至少一个 ui:// 已发现资源
hasUiToolLink至少有一个工具具有 _meta.ui.resourceUri
hasValidUiHtmlUI资源包含有效的HTML内容
hasValidCspCSP配置存在于所有已验证的资源上
支持主题支持主题/样式变量
supportsDisplayModes已声明显示模式
hasToolVisibility工具 _meta.ui.visibility 字段已使用
hasValidPermissions未声明未知权限
hasGracefulDegradation文本回退可用于非UI主机

条目

中返回了18个数据字段 entries:

密钥类型描述
endpointstring已验证的MCP服务器端点URL
serverNamestring来自MCP握手的服务器名称
服务器版本字符串服务器版本
服务器描述字符串服务器描述
protocolVersionstringMCP协议版本
extensionVersion字符串io.modelcontextprotocol/ui 扩展版本
功能对象原始服务器功能
ui资源计数数量数量 ui:// 发现的资源
UI资源数组具有uri、name、mimeType、hasCsp、hasPermissions、displayModes的UI资源
uiLinkedToolCount数量链接到UI资源的工具数量
uiLinkedToolsarray具有名称、资源URI和可见性的工具
appOnly工具计数数量具有可见性的工具 ["app"] 只有
cspSummary对象connectDomains, resourceDomains, frameDomains
permissionsSummaryarray所有资源的聚合权限
displayModesarray所有资源的聚合显示模式
工具数组所有已发现的工具
resourcesarray所有已发现的资源
延迟对象listResourcesreadResource 以毫秒为单位
timestampstringISO 8601验证时间戳

验证码

VAL——输入验证

代码严重性描述
VAL-001错误端点:缺少值
VAL-002错误端点:必须是字符串
VAL-003错误端点:不能为空
VAL-004错误端点:必须是有效的URL
VAL-005错误超时:必须是数字
VAL-006错误超时:必须大于0
VAL-010错误之前:缺少值
VAL-011错误之前:必须是对象
VAL-012错误之前:缺少类别或条目
VAL-013错误之后:缺少值
VAL-014错误之后:必须是对象
VAL-015错误之后:缺少类别或条目

CON-MCP连接

代码严重性描述
CON-001错误端点:无法访问服务器
CON-004错误mcp:初始化握手失败
CON-008警告工具/列表:请求失败或响应格式无效
CON-010警告资源/列表:请求失败

UIR-UI资源访问

代码严重性描述
UIR-001警告资源/读取:资源读取失败
UIR-002警告资源/阅读:预期文本/html内容

UIV-UI验证

代码严重性描述
UIV-010警告缺少HTML内容
UIV-011警告HTML内容不是字符串
UIV-012警告HTML内容为空
UIV-013警告HTML内容似乎无效
UIV-020警告未声明CSP配置
UIV-021警告CSP域应使用https://或wss://
UIV-022警告CSP包含通配符域
UIV-030警告声明的权限未知
UIV-031警告请求敏感权限
UIV-040信息未知显示模式
UIV-041信息未声明显示模式
UIV-050信息未找到主题确认
UIV-060警告工具引用了不存在的UI资源
UIV-061警告工具的可见性值无效
UIV-062信息没有链接到UI资源的工具
UIV-063信息工具有UI元数据,但没有资源URI
UIV-070信息未发现优雅降级
UIV-080信息未声明MCP应用程序扩展
UIV-081信息未指定扩展版本

CMP——比较

代码严重性描述
CMP-001警告快照来自不同的服务器
CMP-002警告快照之前没有时间戳
CMP-003警告快照后比以前旧

许可证

麻省理工学院

目录标签

目录标签

服务器测试JavaScript浏览器自动化MCP验证本地部署UI扩展HTML验证CSP检查

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP