A minimal, readable reference implementation of the Operational Ontology pattern. Exposes domain models through MCP with support for reads, writes, transformations, and audit logging across factory, finance, hospital, and orders domains.
The operational-ontology server exposes ONE tool, createContactTask, with a complete input schema and substantive description. The tool name starts with a clear action verb (create_), the description explains WHAT it does and WHEN to use it (manufacturing window context), and the schema includes 7 parameters with types and descriptions. However, there are moderate gaps: (1) the tool description does not explicitly state it is a WRITE/state-modifying operation (critical for agents to know retry safety), (2) parameters lack format/constraint details (e.g., ISO 8601 datetime format is mentioned in description but not enforced in schema), (3) no output schema is documented, callers cannot plan downstream actions without knowing the response structure, (4) no error handling guidance, if a task already exists or the equipment is invalid, what should the agent do?, (5) the lineIds parameter requires minimum 1 element but this constraint is not visible in the schema type definition. The single tool is well-intentioned but incomplete for production use.
Record a customer-contact/reinspection task for shipped products in the supplied manufacturing window. Does not claim a defect is confirmed or send a message.
Tool description does not explicitly state this is a state-modifying (WRITE) operation. Agents need to know whether this call is safe to retry and whether it can have side effects.
No output schema documented. The tool description says what it does but does not specify what the response contains (field names, types). Callers cannot plan downstream actions (e.g., passing task_id to another tool).
No error handling or recovery guidance. If the task creation fails (equipment not found, invalid date range, duplicate task ID), the description does not explain what the agent should do next.
Parameter constraints are documented in description text but not enforced in schema. 'lineIds' requires minimum 1 element per the description, but the JSON schema type only says 'array' with items:string, no minItems constraint.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 67 | 2026-07-28+ | v2 |
Parameter descriptions lack actionable format/constraint details. 'after' and 'before' say 'ISO 8601 datetime with offset' but do not show an example format (e.g., '2024-01-15T09:30:00+00:00'). LLMs often miscalculate datetime formats.