Specification Context for AI Applications

The OPC UA Online Reference exposes a Model Context Protocol (MCP) server that lets AI assistants search specifications, look up node definitions, and resolve conformance units in real time — without requiring a local copy of any document.

AI Friendly Formats

Every published specification is available for download in two AI-optimized formats. Use downloads when you want to load an entire spec into a local model's context window, build a vector search index, or run an offline RAG pipeline — no API calls required. Use the Download button on each spec's landing page to get the file.

Markdown Low token count

Plain prose — no markdown syntax, cross-references reduced to their display text, only external https: URLs preserved. Optimized for small context windows and embedding models that perform better on clean prose than on markup.

Best for: loading a spec directly into an AI chat, fine-tuning datasets, token-constrained pipelines.

RAG Chunks (JSONL) Pre-chunked · one object per line

One JSON object per line, one chunk per section (split at paragraph boundaries when a section exceeds 4 000 characters). Text is plain prose — same as the Markdown format — keeping chunks within typical embedding model context limits. Compatible with LangChain JSONLoader, LlamaIndex SimpleDirectoryReader, Haystack TextFileToDocument, and Ollama pipelines.

Best for: loading into a vector database, building a local RAG pipeline, offline semantic search.

Line schema (each line is one JSON object):

{
  "id":         "OPC-10000-4/v105/5.12",      // unique chunk identifier
  "spec":       "OPC-10000-4",
  "spec_title": "OPC UA Part 4 – Services",
  "version":    "105",
  "number":     "5.12",                        // section number (omitted for unnumbered sections)
  "title":      "MonitoredItem Service Set",
  "breadcrumb": ["5 Services"],                // ancestor section titles, outermost first
  "path":       "/specs/OPC-10000-4/v105/docs-5-12",  // URL path to the section
  "text":       "5.12 MonitoredItem Service Set\n\nThe MonitoredItem Service Set…",
  "part":       1,                             // present only when a section is split
  "part_count": 3                              // present only when a section is split
}

MCP Endpoint

The server is available at:

https://reference.opcfoundation.org/mcp

It uses the HTTP/SSE transport defined by the MCP specification. Add it to any MCP-compatible client using the url field shown in the examples below.

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "opc-ua-reference": {
      "type": "http",
      "url": "https://reference.opcfoundation.org/mcp"
    }
  }
}

Claude Code / VS Code (.claude/settings.json or mcp.json)

{
  "mcpServers": {
    "opc-ua-reference": {
      "type": "http",
      "url": "https://reference.opcfoundation.org/mcp"
    }
  }
}

Available Tools

The MCP server exposes four tools. All results include a direct URL to the matching section in the online reference.

search_terms

Search for formally defined or italicized terms across OPC UA specifications.

ParameterTypeRequiredDescription
querystringyesTerm to search for (e.g. address space, subscription)
specIdstringnoRestrict to one document (e.g. OPC-10000-4)
specPrefixstringnoRestrict to a series (e.g. OPC-10000-)

Returns: SearchFragment[]

// search_terms("address space")
[
  {
    "DocNumber":     "OPC-10000-1",
    "SectionNumber": "3.2",
    "Title":         "address space",
    "Url":           "https://reference.opcfoundation.org/specs/OPC-10000-1/terms#address-space",
    "Snippet":       "The set of <em>Nodes</em> that an OPC UA Server makes visible to Clients."
  }
]

search_nodes

Look up OPC UA node definitions by NodeId or BrowseName. Accepts fully-qualified NodeIds (nsu=http://...;i=1234), bare numeric/string ids (i=16794, s=Name), or plain BrowseName substrings.

ParameterTypeRequiredDescription
querystringyesNodeId or BrowseName to search for
specIdstringnoRestrict to one document
specPrefixstringnoRestrict to a series

Returns: NodeFragment[]

// search_nodes("MotionDeviceSystemType")
[
  {
    "DocNumber":     "OPC-10000-100",
    "SectionNumber": "6.2",
    "Title":         "MotionDeviceSystemType",
    "Url":           "https://reference.opcfoundation.org/specs/OPC-10000-100/v100/docs/6.2",
    "NodeId":        "nsu=http://opcfoundation.org/UA/Robotics/;i=1002",
    "BrowseName":    "MotionDeviceSystemType"
  }
]

search_cu

Search for OPC UA Conformance Units by name or substring. Useful for compliance and certification work.

ParameterTypeRequiredDescription
querystringyesConformance Unit name or substring (e.g. Base Info, SecurityPolicy)
specIdstringnoRestrict to one document
specPrefixstringnoRestrict to a series

Returns: CuFragment[]

// search_cu("Base Info")
[
  {
    "DocNumber":        "OPC-10000-7",
    "SectionNumber":    "6.1",
    "Title":            "Profile: Micro Embedded Device Server",
    "Url":              "https://reference.opcfoundation.org/specs/OPC-10000-7/v107/docs/6.1",
    "NamespaceUri":     "http://opcfoundation.org/UA-Profile/Server",
    "ConformanceUnit":  "Base Info Core Structure"
  }
]

search_text

Full-text search within a single specification. Requires a document number. Use search_terms for cross-specification term lookup.

ParameterTypeRequiredDescription
querystringyesText or phrase to find
docNumberstringyesSpecification to search (e.g. OPC-10000-4)

Returns: SearchFragment[]

// search_text("monitored item", "OPC-10000-4")
[
  {
    "DocNumber":     "OPC-10000-4",
    "SectionNumber": "5.12",
    "Title":         "MonitoredItem Service Set",
    "Url":           "https://reference.opcfoundation.org/specs/OPC-10000-4/v105/docs/5.12",
    "Snippet":       "A <em>MonitoredItem</em> is an entity created by the Server to monitor a Node attribute or Event…"
  }
]

Browsing Specs Directly

Every section in the online reference has a stable, citable URL. AI assistants can send users directly to a section, and the page's structured metadata (canonical URL, description, JSON-LD) makes content reliably extractable.

← Back to the specification list