Skip to content

AI/specs review feedback - #818

Open
bsriramprasad wants to merge 9 commits into
AI/specsfrom
sriram-ai-service-review-fixes
Open

AI/specs review feedback#818
bsriramprasad wants to merge 9 commits into
AI/specsfrom
sriram-ai-service-review-fixes

Conversation

@bsriramprasad

@bsriramprasad bsriramprasad commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

I would want to include my review feedback as fixes to contribute towards #809 and hence changes are targeted to the PR branch

AI Spec Review Changes Summary (PR #818)

Scope & Terminology

  • Three→four technologies: Scope said "three" but Building Blocks listed four (ONVIF, MCP, LinkML, JSON-LD). Added JSON-LD to the Scope bullet list and updated the count.
  • Removed redundant section outline: Building Blocks description in Scope repeated the same four-technology list. Simplified to avoid double-listing.
  • "Protocol Stack Architecture" → "Protocol Architecture": The old title conflated two similar terms. The chapter content is architectural (roles, planes, trust), not a sequential protocol stack. Renamed chapter, figure, and subsection titles consistently.
  • Removed sequential layer numbering (1–7): Diagram used global numbering across client and device, implying a single pipeline. Replaced with OSI-style peer-layer labels (Application, Protocol, Data Model, Security/Transport) on both sides.
  • Removed stale numbering reference: "they are not modeled as a single end-to-end sequential layer numbering" was left over after removing the numbers. Replaced with cleaner peer-layer statement.

Diagram (stack_overview.svg)

  • Peer-layer labels: Replaced Layer 1–5 and [0]/[3..7] with shared functional labels on both endpoints.
  • Bus→Plane terminology: Renamed "Control Bus (A)" / "Data Bus (B)" to "Control Plane (A)" / "Event Plane (B)" to match chapter terminology.
  • Left-aligned body text: Kept block titles centered but left-justified descriptive lines for readability.
  • Increased block sizes: Widened both endpoint boxes from 205→240px and realigned connector lines to prevent text overflow.

Definitions (Terms and Definitions)

  • Broadened ONVIF Device definition: Was narrowly "wraps AI analytics models". Now covers MCP Server endpoints for any capability — AI analytics, bridging existing ONVIF services, or other device functions.
  • Broadened ONVIF Client definition: Was limited to "managing cameras and consuming AI analytics events". Now covers VMS, AI-native applications, and other orchestrators.

Overview Chapter

  • Replaced circular AI configuration text: Old text was "AI configurations configure intelligent functions". Replaced with concrete description: model selection, detection region config, schema announcement, skill lifecycle. Added note that scope may be extended.
  • Removed stale WSDL placeholder: The overview pointed to media service WSDL (highlighted as TODO). Removed.

Building Blocks (MCP Section)

  • Tightened Transport section: Removed repetitive restatement of Streamable HTTP mechanics. Cut from 6 lines to 3.
  • Simplified Protocol Version section: Removed references to MCP 2025-11-25 and older initialize/initialized handshake. If 2026-07-28 is the sole baseline, no need to describe what it replaced.
  • Merged Transport + Protocol Version into "Transport and Connectivity": Protocol version is just one field in the server/discover response, not a standalone concept. Combined both sections into one coherent unit covering transport, versioning, server/discover, and stateless model.
  • Fixed MCP intro: Changed "AI language models and agents" to "AI agents" — language models need an agent interface; they don't communicate directly via MCP.
  • Clarified server/discover vs primitives: Added note after the three primitives (Tools, Resources, Prompts) that server/discover is a protocol-level lifecycle method, not a primitive or tool call. Cross-references the Protocol Version section.

Architecture & Building Blocks Relationship

  • Reordered chapters: Moved Protocol Architecture before Building Blocks so that planes, roles, and trust model are defined before Building Blocks references them. Eliminates forward-reference problem.
  • Added Technology Mapping section: New section at end of Protocol Architecture maps each technology (MCP, LinkML, JSON-LD, OAuth 2.1/JWT) to its architectural role. Forward-references Building Blocks.
  • Added Building Blocks intro paragraph: Back-references Technology Mapping and Protocol Architecture, telling the reader these sections detail what was just introduced.
  • Added bridging paragraph in Architecture Overview: Names all four technologies with a one-line role and forward-references Technology Mapping and Building Blocks. Solves chicken-and-egg problem of mentioning MCP Host before MCP is introduced.

Communication Planes

  • Distinguished requests vs events: Replaced generic "message sequences" in Scope with explicit "client-initiated requests" and "server-pushed metadata events". Added bulleted definitions in Communication Planes intro with independence statement.
  • Fixed Event Plane Security row: Changed "on every request" to "the channel is established using an ES256 JWT" — events are not requests.
  • Clarified Control Plane direction: Changed "ONVIF Client to ONVIF Device" to "Client-initiated; ONVIF Client sends requests, ONVIF Device returns responses" — it's bidirectional traffic, just client-initiated.
  • Clarified Event Plane direction: Changed "ONVIF Device to ONVIF Client" to "Server-initiated; ONVIF Device pushes events to the ONVIF Client without polling."

Discovery

  • Added /onvif/device_service entry point: Spec didn't mention the ONVIF Core device service entry point. Added explicit reference to preserve interoperability and show how ONVIF Core discovery hands off to MCP.
  • Added interoperability statement: WS-Discovery and ONVIF Core remain authoritative for discovery; MCP handles feature discovery and data exchange after endpoint resolution.
  • Merged Device Discovery and Service Discovery: Two sections had overlapping content (both mentioned GetServices). Merged into single "Service Discovery" section with numbered steps: (1) WS-Discovery, (2) GetServices.
  • Renamed annex: "Network discovery" → "Device discovery (ONVIF Core WS-Discovery)" with tighter wording.

Deprecated MCP Features Identified (NOT FIXED — separate discussion)

  • notifications/message used for metadata event delivery (14 occurrences): In MCP 2026-07-28, notifications/message is request-scoped logging only (and the entire Logging feature is deprecated per SEP-2577). The correct server-push mechanism is subscriptions/listen. This is an architectural design decision left for wider group discussion.
  • SSE reference in diagram: The SVG label says "SSE / notifications/message" — left as-is pending the event delivery model decision.
  • Legacy initialize example in annex: Kept as informative for now.
  • Issue document drafted: doc/issues/event-plane-delivery-model.md contains the full problem statement, five alternative solutions with flow diagrams, comparison matrix, and ONVIF parallel mappings for group discussion.

Identity & Authorization

  • Clarified "metadata": Generic "metadata and key material" was ambiguous. Specified it means authorization server metadata: token endpoint URI, supported signing algorithms, and JWKS endpoint.

MCP Host vs Client Distinction

  • Fixed SVG Protocol Layer label: Changed "Protocol Layer — MCP Host" to "Protocol Layer — MCP Client" in diagram. The outer box title stays "VMS / MCP Host" (correct — Host is the application).
  • Refined Terms definition: Clarified that the MCP Host is the application that creates/manages MCP Client(s); the MCP Client is the protocol-level peer that connects to an MCP Server.
  • Updated Architecture Overview: ONVIF Client "acts as the MCP Host: it creates one or more MCP Clients".
  • Updated Building Blocks MCP intro: Changed to "an MCP Host that manages one or more MCP Clients" for precision.

Diagram Label Corrections

  • "AI Skills" → "ONVIF Skills (MCP Tools)": Skills are ONVIF capabilities exposed through MCP Tools, not an MCP primitive themselves. Label now makes that relationship explicit.
  • "OAuth2 JWT over TLS" → "OAuth 2.1 bearer access token (JWT) over TLS": More precise — specifies OAuth version and that it's a bearer access token.

Skill Terminology Disambiguation

  • Added note to Skill definition: Clarified that "Skill" in this spec is an ONVIF term mapped to the MCP Tool primitive. Explicitly distinguishes it from the experimental MCP Skills extension (skills/list, skills/get, skill://) which is under development via the Skills Over MCP Working Group and not yet part of MCP core.

sujithhanwha and others added 2 commits August 3, 2026 15:51
* clarification for issue 84, 82 in audio profile wg

* fix for issue 76 in audio profile wg

* Clarification for issue 79

* Clarification for issue 75

* Clarification for issue 74
@bsriramprasad
bsriramprasad marked this pull request as ready for review August 6, 2026 19:06

@willysagefalk willysagefalk left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ai-service This is a useful improvement over the previous sequential Layer 1–5 representation. I agree with describing this as a protocol architecture with separate Control and Event planes, and with explicitly including JSON-LD.

I think two technical corrections are needed before merging:

  1. On the client side, the protocol peer of the MCP Server is an MCP Client, not the MCP Host. The Host is the surrounding application that creates and manages one or more MCP Clients. I suggest changing “Protocol Layer — MCP Host” to “Protocol Layer — MCP Client”; the outer box can remain “VMS / MCP Host.”

  2. notifications/message cannot be used for continuous analytics metadata delivery in MCP 2026-07-28. It is a request-scoped logging notification and must not be delivered on a subscriptions/listen stream. We should therefore remove it from the Event Plane and either retain an ONVIF event/metadata transport or explicitly define an ONVIF MCP extension for metadata subscriptions.

I would also clarify that “AI Skills” are ONVIF capabilities exposed through MCP Tools, since Skill is not itself an MCP protocol primitive, and change “OAuth2 JWT over TLS” to “OAuth 2.1 bearer access token (JWT) over TLS.”

@bsriramprasad

Copy link
Copy Markdown
Contributor Author

ai-service This is a useful improvement over the previous sequential Layer 1–5 representation. I agree with describing this as a protocol architecture with separate Control and Event planes, and with explicitly including JSON-LD.
I think two technical corrections are needed before merging:

  1. On the client side, the protocol peer of the MCP Server is an MCP Client, not the MCP Host. The Host is the surrounding application that creates and manages one or more MCP Clients. I suggest changing “Protocol Layer — MCP Host” to “Protocol Layer — MCP Client”; the outer box can remain “VMS / MCP Host.”
  2. notifications/message cannot be used for continuous analytics metadata delivery in MCP 2026-07-28. It is a request-scoped logging notification and must not be delivered on a subscriptions/listen stream. We should therefore remove it from the Event Plane and either retain an ONVIF event/metadata transport or explicitly define an ONVIF MCP extension for metadata subscriptions.

I would also clarify that “AI Skills” are ONVIF capabilities exposed through MCP Tools, since Skill is not itself an MCP protocol primitive, and change “OAuth2 JWT over TLS” to “OAuth 2.1 bearer access token (JWT) over TLS.”

agree with feedback, addressed in the latest commit.

@bsriramprasad bsriramprasad changed the title AI specs review feedback AI/specs review feedback Aug 7, 2026
@willysagefalk

Copy link
Copy Markdown
Member

Cant find doc/issues/event-plane-delivery-model.md

Diagram
Application Layer — ONVIF AI Service

The Skill note names experimental methods skills/list and skills/get. The experimental MCP work is explicitly non-official and currently considers competing approaches; the first-class proposal uses skills/list and skills/activate, while another approach uses Resources. It would be safer to omit proposed method names. [Experimental Skills over MCP] https://github.com/modelcontextprotocol/experimental-ext-skills

Definitions still say Control Plane (Bus A) and Event Plane (Bus B) although “Bus” was removed everywhere else.

MCP Host / Client should ideally be two definition entries because they are deliberately distinct roles.

@ocampana-videotec

Copy link
Copy Markdown
Collaborator

@sujithhanwha did you really mean to push 02d2afb to this branch? I wonder if you targeted the wrong branch

Comment thread doc/AI.xml Outdated
@bsriramprasad

Copy link
Copy Markdown
Contributor Author

Cant find doc/issues/event-plane-delivery-model.md

Diagram Application Layer — ONVIF AI Service

The Skill note names experimental methods skills/list and skills/get. The experimental MCP work is explicitly non-official and currently considers competing approaches; the first-class proposal uses skills/list and skills/activate, while another approach uses Resources. It would be safer to omit proposed method names. [Experimental Skills over MCP] https://github.com/modelcontextprotocol/experimental-ext-skills

Definitions still say Control Plane (Bus A) and Event Plane (Bus B) although “Bus” was removed everywhere else.

MCP Host / Client should ideally be two definition entries because they are deliberately distinct roles.

Resolved.

@ocampana-videotec

Copy link
Copy Markdown
Collaborator

@bsriramprasad I had to to some heavy editing on the ai.xml file to get ready for the WG AI call tomorrow. Could you please rebase your branch on top of AI/specs? I plan not to edit it for the next 36 hours...

@bsriramprasad

bsriramprasad commented Aug 13, 2026

Copy link
Copy Markdown
Contributor Author

@bsriramprasad I had to to some heavy editing on the ai.xml file to get ready for the WG AI call tomorrow. Could you please rebase your branch on top of AI/specs? I plan not to edit it for the next 36 hours...

@ocampana-videotec there is a whole lot that got changed.. resolving conflict is as much as rewriting, I tried my best though, please check and merge before the base diverges again :-D

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants