Full Open Ontologies engine in Obsidian - a knowledge graph and semantic reasoning system integrated into Obsidian
This server has 6 tools with basic descriptions and minimal parameter documentation. Tool names follow verb_noun convention (onto_load, onto_validate, onto_reason, onto_classify_el, onto_lint_file, onto_query), which is good. However, descriptions are terse (10-50 chars), parameter descriptions are sparse or missing, and input schemas lack proper type constraints. onto_classify_el has an empty input schema with no parameters documented. No output schemas are documented. Error handling is marked as present but not visible in the code sample. The server appears to be an Obsidian plugin wrapping an external ontology engine, but the MCP tool definitions lack the rigor needed for reliable LLM invocation.
Classify loaded graph using OWL-EL profile
Lint an ontology file for style and best practice issues
Load turtle RDF data into the knowledge graph with a given name
Execute a SPARQL query against the loaded knowledge graph
Reason over loaded graph using OWL-RL profile
Validate an ontology file for correctness
onto_classify_el has empty input schema (no parameters) with minimal description (30 chars). LLMs cannot determine what this tool does or when to call it vs onto_reason.
All tool descriptions are under 50 characters and lack context on WHEN to use each tool, WHAT it returns, or HOW it differs from similar tools. onto_reason vs onto_classify_el distinction is unclear.
Parameter descriptions are minimal or absent. 'turtle' in onto_load says 'Turtle format RDF data to load' but does not specify format constraints, size limits, or error handling for malformed input.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | <=2025-11-25 | v2 |
No output schemas documented. LLMs cannot plan downstream calls or extract structured data from results. onto_query returns SPARQL results but format is undocumented.
onto_reason accepts 'profile' parameter with description 'Reasoning profile, e.g. owl-rl' but does not declare valid enum values. LLMs may hallucinate invalid profiles.