{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_ym98m75wdzzx","handle":"opc-ua-nodeset-compatibility-gate","url":"https://wellknown.network/agents/opc-ua-nodeset-compatibility-gate","links":{"self":"https://wellknown.network/agents/opc-ua-nodeset-compatibility-gate/record.json","html":"https://wellknown.network/agents/opc-ua-nodeset-compatibility-gate","markdown":"https://wellknown.network/agents/opc-ua-nodeset-compatibility-gate/record.md","api":"https://wellknown.network/api/v1/agents/opc-ua-nodeset-compatibility-gate","status":"https://wellknown.network/api/v1/agents/opc-ua-nodeset-compatibility-gate/status","claim":"https://wellknown.network/agents/opc-ua-nodeset-compatibility-gate/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/opc-ua-nodeset-compatibility-gate/claim.json","badge":"https://wellknown.network/agents/opc-ua-nodeset-compatibility-gate/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/opc-ua-nodeset-compatibility-gate/history","tools":"https://wellknown.network/api/v1/agents/opc-ua-nodeset-compatibility-gate/tools"},"ard":{"identifier":"urn:air:nodeset.regevidencehub.com:server:opc-ua-nodeset-compatibility-gate","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"OPC UA NodeSet Gate","summary":"Deterministic release-compatibility preflight for OPC UA NodeSet2 XML.","description":"Deterministic release-compatibility preflight for OPC UA NodeSet2 XML.","publisher":{"name":"ChanghuLiu","url":null},"homepage":null,"repository":"https://github.com/ChanghuLiu/opc-ua-nodeset-compatibility-gate","version":"0.1.3","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://nodeset.regevidencehub.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-01T14:43:45.741156Z","publishedAt":"2026-10-01T14:43:45.741156Z","registryName":"io.github.ChanghuLiu/opc-ua-nodeset-compatibility-gate"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"code.security-review","name":"Security Review","confidence":0.583,"provenance":"derived"},{"slug":"dev.ci-cd","name":"CI/CD & Deploy","confidence":0.554,"provenance":"derived"}],"categories":["code","dev"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 2h ago.","lastOkAt":"2026-10-10T12:28:26.786Z","lastProbedAt":"2026-10-10T12:28:26.786Z","statusComputedAt":"2026-10-10T12:30:35.819Z","reliability30d":{"probes":35,"successRate":0.9714,"p50Ms":14,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":35,"ok":34,"authBoundaryOk":0,"serviceOk":34,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-10T12:28:26.786Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":15,"error":null,"detail":{"tools":[{"name":"audit_nodeset_compatibility","description":"Compare two complete OPC UA NodeSet2 XML documents when both fit in a single request. Pass old_nodeset_xml as the full baseline revision and new_nodeset_xml as "},{"name":"nodeset_compatibility_status","description":"Return bounded service metadata for OPC UA NodeSet Compatibility Gate. Use this only to discover deployment stage, deterministic static-analysis scope, producti"},{"name":"begin_nodeset_upload","description":"Start one temporary in-memory upload for a large NodeSet2 XML document. Call this once for the old baseline and once for the new candidate when the complete XML"},{"name":"append_nodeset_chunk","description":"Append the next unmodified text chunk to a temporary NodeSet2 upload created by begin_nodeset_upload. Pass upload_id exactly as returned by begin_nodeset_upload"},{"name":"audit_uploaded_nodesets","description":"Compare two large NodeSet2 XML revisions after both have been fully staged with begin_nodeset_upload and append_nodeset_chunk. Pass old_upload_id for the baseli"}],"toolCount":5,"toolsHash":"78093060a4fd0b53bf311153ddb6d484612c4cfaf19e3070e2255c3be6ba026e","serverName":"OPC UA NodeSet Compatibility Gate","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.30.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T06:28:07.116Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":18,"error":null,"detail":{"tools":[{"name":"audit_nodeset_compatibility","description":"Compare two complete OPC UA NodeSet2 XML documents when both fit in a single request. Pass old_nodeset_xml as the full baseline revision and new_nodeset_xml as "},{"name":"nodeset_compatibility_status","description":"Return bounded service metadata for OPC UA NodeSet Compatibility Gate. Use this only to discover deployment stage, deterministic static-analysis scope, producti"},{"name":"begin_nodeset_upload","description":"Start one temporary in-memory upload for a large NodeSet2 XML document. Call this once for the old baseline and once for the new candidate when the complete XML"},{"name":"append_nodeset_chunk","description":"Append the next unmodified text chunk to a temporary NodeSet2 upload created by begin_nodeset_upload. Pass upload_id exactly as returned by begin_nodeset_upload"},{"name":"audit_uploaded_nodesets","description":"Compare two large NodeSet2 XML revisions after both have been fully staged with begin_nodeset_upload and append_nodeset_chunk. Pass old_upload_id for the baseli"}],"toolCount":5,"toolsHash":"78093060a4fd0b53bf311153ddb6d484612c4cfaf19e3070e2255c3be6ba026e","serverName":"OPC UA NodeSet Compatibility Gate","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.30.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T00:28:00.030Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":14,"error":null,"detail":{"tools":[{"name":"audit_nodeset_compatibility","description":"Compare two complete OPC UA NodeSet2 XML documents when both fit in a single request. Pass old_nodeset_xml as the full baseline revision and new_nodeset_xml as "},{"name":"nodeset_compatibility_status","description":"Return bounded service metadata for OPC UA NodeSet Compatibility Gate. Use this only to discover deployment stage, deterministic static-analysis scope, producti"},{"name":"begin_nodeset_upload","description":"Start one temporary in-memory upload for a large NodeSet2 XML document. Call this once for the old baseline and once for the new candidate when the complete XML"},{"name":"append_nodeset_chunk","description":"Append the next unmodified text chunk to a temporary NodeSet2 upload created by begin_nodeset_upload. Pass upload_id exactly as returned by begin_nodeset_upload"},{"name":"audit_uploaded_nodesets","description":"Compare two large NodeSet2 XML revisions after both have been fully staged with begin_nodeset_upload and append_nodeset_chunk. Pass old_upload_id for the baseli"}],"toolCount":5,"toolsHash":"78093060a4fd0b53bf311153ddb6d484612c4cfaf19e3070e2255c3be6ba026e","serverName":"OPC UA NodeSet Compatibility Gate","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.30.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T18:25:05.499Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":16,"error":null,"detail":{"tools":[{"name":"audit_nodeset_compatibility","description":"Compare two complete OPC UA NodeSet2 XML documents when both fit in a single request. Pass old_nodeset_xml as the full baseline revision and new_nodeset_xml as "},{"name":"nodeset_compatibility_status","description":"Return bounded service metadata for OPC UA NodeSet Compatibility Gate. Use this only to discover deployment stage, deterministic static-analysis scope, producti"},{"name":"begin_nodeset_upload","description":"Start one temporary in-memory upload for a large NodeSet2 XML document. Call this once for the old baseline and once for the new candidate when the complete XML"},{"name":"append_nodeset_chunk","description":"Append the next unmodified text chunk to a temporary NodeSet2 upload created by begin_nodeset_upload. Pass upload_id exactly as returned by begin_nodeset_upload"},{"name":"audit_uploaded_nodesets","description":"Compare two large NodeSet2 XML revisions after both have been fully staged with begin_nodeset_upload and append_nodeset_chunk. Pass old_upload_id for the baseli"}],"toolCount":5,"toolsHash":"78093060a4fd0b53bf311153ddb6d484612c4cfaf19e3070e2255c3be6ba026e","serverName":"OPC UA NodeSet Compatibility Gate","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.30.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T11:25:38.834Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":16,"error":null,"detail":{"tools":[{"name":"audit_nodeset_compatibility","description":"Compare two complete OPC UA NodeSet2 XML documents when both fit in a single request. Pass old_nodeset_xml as the full baseline revision and new_nodeset_xml as "},{"name":"nodeset_compatibility_status","description":"Return bounded service metadata for OPC UA NodeSet Compatibility Gate. Use this only to discover deployment stage, deterministic static-analysis scope, producti"},{"name":"begin_nodeset_upload","description":"Start one temporary in-memory upload for a large NodeSet2 XML document. Call this once for the old baseline and once for the new candidate when the complete XML"},{"name":"append_nodeset_chunk","description":"Append the next unmodified text chunk to a temporary NodeSet2 upload created by begin_nodeset_upload. Pass upload_id exactly as returned by begin_nodeset_upload"},{"name":"audit_uploaded_nodesets","description":"Compare two large NodeSet2 XML revisions after both have been fully staged with begin_nodeset_upload and append_nodeset_chunk. Pass old_upload_id for the baseli"}],"toolCount":5,"toolsHash":"78093060a4fd0b53bf311153ddb6d484612c4cfaf19e3070e2255c3be6ba026e","serverName":"OPC UA NodeSet Compatibility Gate","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.30.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T04:28:24.056Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":41,"error":null,"detail":{"tools":[{"name":"audit_nodeset_compatibility","description":"Compare two complete OPC UA NodeSet2 XML documents when both fit in a single request. Pass old_nodeset_xml as the full baseline revision and new_nodeset_xml as "},{"name":"nodeset_compatibility_status","description":"Return bounded service metadata for OPC UA NodeSet Compatibility Gate. Use this only to discover deployment stage, deterministic static-analysis scope, producti"},{"name":"begin_nodeset_upload","description":"Start one temporary in-memory upload for a large NodeSet2 XML document. Call this once for the old baseline and once for the new candidate when the complete XML"},{"name":"append_nodeset_chunk","description":"Append the next unmodified text chunk to a temporary NodeSet2 upload created by begin_nodeset_upload. Pass upload_id exactly as returned by begin_nodeset_upload"},{"name":"audit_uploaded_nodesets","description":"Compare two large NodeSet2 XML revisions after both have been fully staged with begin_nodeset_upload and append_nodeset_chunk. Pass old_upload_id for the baseli"}],"toolCount":5,"toolsHash":"78093060a4fd0b53bf311153ddb6d484612c4cfaf19e3070e2255c3be6ba026e","serverName":"OPC UA NodeSet Compatibility Gate","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.30.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T21:22:52.554Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":18,"error":null,"detail":{"tools":[{"name":"audit_nodeset_compatibility","description":"Compare two complete OPC UA NodeSet2 XML documents when both fit in a single request. Pass old_nodeset_xml as the full baseline revision and new_nodeset_xml as "},{"name":"nodeset_compatibility_status","description":"Return bounded service metadata for OPC UA NodeSet Compatibility Gate. Use this only to discover deployment stage, deterministic static-analysis scope, producti"},{"name":"begin_nodeset_upload","description":"Start one temporary in-memory upload for a large NodeSet2 XML document. Call this once for the old baseline and once for the new candidate when the complete XML"},{"name":"append_nodeset_chunk","description":"Append the next unmodified text chunk to a temporary NodeSet2 upload created by begin_nodeset_upload. Pass upload_id exactly as returned by begin_nodeset_upload"},{"name":"audit_uploaded_nodesets","description":"Compare two large NodeSet2 XML revisions after both have been fully staged with begin_nodeset_upload and append_nodeset_chunk. Pass old_upload_id for the baseli"}],"toolCount":5,"toolsHash":"78093060a4fd0b53bf311153ddb6d484612c4cfaf19e3070e2255c3be6ba026e","serverName":"OPC UA NodeSet Compatibility Gate","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.30.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T14:23:15.339Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":11,"error":null,"detail":{"tools":[{"name":"audit_nodeset_compatibility","description":"Compare two complete OPC UA NodeSet2 XML documents when both fit in a single request. Pass old_nodeset_xml as the full baseline revision and new_nodeset_xml as "},{"name":"nodeset_compatibility_status","description":"Return bounded service metadata for OPC UA NodeSet Compatibility Gate. Use this only to discover deployment stage, deterministic static-analysis scope, producti"},{"name":"begin_nodeset_upload","description":"Start one temporary in-memory upload for a large NodeSet2 XML document. Call this once for the old baseline and once for the new candidate when the complete XML"},{"name":"append_nodeset_chunk","description":"Append the next unmodified text chunk to a temporary NodeSet2 upload created by begin_nodeset_upload. Pass upload_id exactly as returned by begin_nodeset_upload"},{"name":"audit_uploaded_nodesets","description":"Compare two large NodeSet2 XML revisions after both have been fully staged with begin_nodeset_upload and append_nodeset_chunk. Pass old_upload_id for the baseli"}],"toolCount":5,"toolsHash":"78093060a4fd0b53bf311153ddb6d484612c4cfaf19e3070e2255c3be6ba026e","serverName":"OPC UA NodeSet Compatibility Gate","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.30.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T07:25:47.587Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":13,"error":null,"detail":{"tools":[{"name":"audit_nodeset_compatibility","description":"Compare two complete OPC UA NodeSet2 XML documents when both fit in a single request. Pass old_nodeset_xml as the full baseline revision and new_nodeset_xml as "},{"name":"nodeset_compatibility_status","description":"Return bounded service metadata for OPC UA NodeSet Compatibility Gate. Use this only to discover deployment stage, deterministic static-analysis scope, producti"},{"name":"begin_nodeset_upload","description":"Start one temporary in-memory upload for a large NodeSet2 XML document. Call this once for the old baseline and once for the new candidate when the complete XML"},{"name":"append_nodeset_chunk","description":"Append the next unmodified text chunk to a temporary NodeSet2 upload created by begin_nodeset_upload. Pass upload_id exactly as returned by begin_nodeset_upload"},{"name":"audit_uploaded_nodesets","description":"Compare two large NodeSet2 XML revisions after both have been fully staged with begin_nodeset_upload and append_nodeset_chunk. Pass old_upload_id for the baseli"}],"toolCount":5,"toolsHash":"78093060a4fd0b53bf311153ddb6d484612c4cfaf19e3070e2255c3be6ba026e","serverName":"OPC UA NodeSet Compatibility Gate","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.30.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T01:22:52.644Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":11,"error":null,"detail":{"tools":[{"name":"audit_nodeset_compatibility","description":"Compare two complete OPC UA NodeSet2 XML documents when both fit in a single request. Pass old_nodeset_xml as the full baseline revision and new_nodeset_xml as "},{"name":"nodeset_compatibility_status","description":"Return bounded service metadata for OPC UA NodeSet Compatibility Gate. Use this only to discover deployment stage, deterministic static-analysis scope, producti"},{"name":"begin_nodeset_upload","description":"Start one temporary in-memory upload for a large NodeSet2 XML document. Call this once for the old baseline and once for the new candidate when the complete XML"},{"name":"append_nodeset_chunk","description":"Append the next unmodified text chunk to a temporary NodeSet2 upload created by begin_nodeset_upload. Pass upload_id exactly as returned by begin_nodeset_upload"},{"name":"audit_uploaded_nodesets","description":"Compare two large NodeSet2 XML revisions after both have been fully staged with begin_nodeset_upload and append_nodeset_chunk. Pass old_upload_id for the baseli"}],"toolCount":5,"toolsHash":"78093060a4fd0b53bf311153ddb6d484612c4cfaf19e3070e2255c3be6ba026e","serverName":"OPC UA NodeSet Compatibility Gate","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.30.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"audit_nodeset_compatibility","description":"Compare two complete OPC UA NodeSet2 XML documents when both fit in a single request. Pass old_nodeset_xml as the full baseline revision and new_nodeset_xml as "},{"name":"nodeset_compatibility_status","description":"Return bounded service metadata for OPC UA NodeSet Compatibility Gate. Use this only to discover deployment stage, deterministic static-analysis scope, producti"},{"name":"begin_nodeset_upload","description":"Start one temporary in-memory upload for a large NodeSet2 XML document. Call this once for the old baseline and once for the new candidate when the complete XML"},{"name":"append_nodeset_chunk","description":"Append the next unmodified text chunk to a temporary NodeSet2 upload created by begin_nodeset_upload. Pass upload_id exactly as returned by begin_nodeset_upload"},{"name":"audit_uploaded_nodesets","description":"Compare two large NodeSet2 XML revisions after both have been fully staged with begin_nodeset_upload and append_nodeset_chunk. Pass old_upload_id for the baseli"}],"package":null,"toolSurface":{"id":"ts_9b74bcug8fmu","endpointId":"ep_qmqerzgknwt4","hash":"78093060a4fd0b53bf311153ddb6d484612c4cfaf19e3070e2255c3be6ba026e","toolCount":5,"serverName":"OPC UA NodeSet Compatibility Gate","serverVersion":"1.30.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-01T01:27:01.050Z","lastSeenAt":"2026-10-10T12:28:26.793Z","observations":34,"toolNames":["audit_nodeset_compatibility","nodeset_compatibility_status","begin_nodeset_upload","append_nodeset_chunk","audit_uploaded_nodesets"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_qmqerzgknwt4","url":"https://nodeset.regevidencehub.com/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-09T11:25:38.844Z","auth":{"observedAt":"2026-10-09T11:25:38.862Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-09T11:25:38.870Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"nodeset.regevidencehub.com","issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validFrom":"2026-09-27T21:53:35.000Z","validTo":"2026-12-26T21:53:34.000Z","daysToExpiry":77,"sanCount":1,"fingerprint256":"0A:11:43:5C:3B:10:DF:06:C7:73:3D:96:D6:36:F4:5E:CD:A6:AE:D4:DE:44:7A:83:0C:0A:7B:0F:32:C7:42:1E"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.github.ChanghuLiu/opc-ua-nodeset-compatibility-gate","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.ChanghuLiu%2Fopc-ua-nodeset-compatibility-gate","firstSeenAt":"2026-10-01T01:19:31.339Z","fetchedAt":"2026-10-09T19:18:46.070Z","normalizedAt":"2026-10-09T19:18:46.070Z"}]},"firstSeenAt":"2026-10-01T01:19:31.339Z","updatedAt":"2026-10-10T12:31:27.166Z"}