使用说明
MCP规范验证器
根据以下内容验证MCP服务器规范 OASF MCP模块架构.
运作原理
输入是单个MCP模块JSON对象。
它在本地根据捆绑的OASF MCP模块模式(JSON模式草案-07)进行验证。
模块格式
{
"name": "integration/mcp",
"data": {
"name": "my-mcp-server",
"connections": [
{ "type": "streamable-http", "url": "https://example.com/mcp" }
]
}
}
必填字段: name (必须是 "integration/mcp"), data.name, data.connections (至少一个条目)。
连接类型: streamable-http, sse, stdio.
看 src/main/resources/samples/ 更多示例。
配置
src/main/resources/application.yaml:
| 属性 | 默认值 | 描述 |
|---|---|---|
oasf.validator.default-schema-version |
1.0.0 |
在以下情况下使用的架构版本 schemaVersion 查询参数缺失 |
server.port |
8060 |
应用端口 |
跑步
mvn spring-boot:run
REST API
POST /validate
验证原始MCP模块JSON正文。
查询参数:
| 参数 | 必填 | 说明 |
|---|---|---|
schemaVersion |
否 | 覆盖默认架构版本 |
响应代码:
| 代码 | 含义 |
|---|---|
200 OK |
模块有效 |
422 Unprocessable Entity |
模块无效-- errors 数组非空 |
响应主体:
{
"valid": false,
"errors": [
"$.data.connections: there must be a minimum of 1 items in the array"
],
"warnings": []
}
示例(HTTPie)
# Validate a local JSON file
http POST :8060/validate < src/main/resources/samples/valid-mcp-record.json
# With explicit schema version
http POST :8060/validate schemaVersion==1.0.0 < src/main/resources/samples/valid-mcp-record.json
示例(卷曲)
curl -X POST http://localhost:8060/validate \
-H "Content-Type: application/json" \
-d @src/main/resources/samples/valid-mcp-record.json
示例文件
samples/valid-mcp-record.json
http POST :8060/validate < src/main/resources/samples/valid-mcp-record.json
预期: 200 OK, valid: true
一个最小的MCP模块 streamable-http 连接。
samples/valid-mcp-record-stdio.json
http POST :8060/validate < src/main/resources/samples/valid-mcp-record-stdio.json
预期: 200 OK, valid: true
使用的有效模块 stdio 与...的联系 command, args,以及 env_vars.涵盖了作为本地进程启动的MCP服务器的情况(例如基于Docker的GitHub MCP服务器)。
samples/invalid-mcp-record-missing-connections.json
http POST :8060/validate < src/main/resources/samples/invalid-mcp-record-missing-connections.json
预期: 422 Unprocessable Entity, valid: false
这 connections 数组不存在 data。此字段是架构所必需的(minItems: 1).
samples/invalid-mcp-record-unknown-field.json
http POST :8060/validate < src/main/resources/samples/invalid-mcp-record-unknown-field.json
预期: 422 Unprocessable Entity, valid: false
连接包含 unknown_field 未在架构中定义。这 mcp_server_connection 对象用途 additionalProperties: false,因此任何未知字段都被拒绝。
架构版本覆盖
http POST :8060/validate schemaVersion==1.0.0 < src/main/resources/samples/valid-mcp-record.json
预期: 200 OK, valid: true
架构版本通过显式传递 schemaVersion 查询参数。
程序化使用
@Autowired OasfValidator validator;
// Uses the default schema version from application properties
ValidationResult result = validator.validateModule(moduleJson);
// Explicit version override
ValidationResult result = validator.validateModule(moduleJson, "1.0.0");
result.valid(); // true / false
result.errors(); // List<String> — empty when valid
result.warnings(); // List<String>