on-prem, agent-first, typed knowledge graph. Read-only for humans, write-only for agents, via MCP.
Plexus defines 3 tools with strong descriptions (194 - 250 chars, well above baseline 194 avg) and detailed parameter guidance. save_entity and load_skill have comprehensive schemas with type definitions and constraints. However, list_skills lacks output schema documentation, and no tools declare tool annotations (readOnlyHint/destructiveHint). Error handling is present but generic ('list_skills_failed'). Naming is clear and verb-driven. Overall: solid definitions with gaps in output documentation and error recovery guidance.
List every skill available to the token. Returns a compact index — name, description, version, category, trigger phrases, id — but NOT the Markdown body. Call load_skill to fetch a full skill by name or trigger phrase. Default context is the first one the token can see; pass context to target a specific namespace.
Load a single skill by name, trigger phrase, or fuzzy match. Matching tiers: (1) exact name, (2) exact trigger phrase, (3) BM25 full-text fallback, (4) not_found. Returns the full Markdown body so the caller can follow the skill instructions. Audit log records which tier matched.
Create a new entity in the knowledge graph. Use for new knowledge, decisions, facts, tasks, projects, and any other typed record. Handoff-facts (kind=fact, attributes.session_type=handoff) require the session_date/session_id/agent_id attributes and a part_of project id. Decisions require at least one context edge (derived_from/triggered_by/supersedes/part_of) — pass via part_of or the related[] parameter for atomic save+link. Call list_kinds to discover attribute schemas and required_edge_groups per kind.
list_skills output schema not documented. LLMs cannot infer the structure of the returned 'skills' array or plan downstream calls without seeing field types.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) declared. save_entity is destructive (WRITE risk) but LLMs cannot detect this from the schema alone.
Error messages are generic ('list_skills_failed', 'scope_denied'). No recovery guidance. LLMs cannot determine whether to retry, ask the user, or abort.
save_entity's 'related' parameter accepts an array of objects but the schema does not validate the structure of each object (missing minItems, additionalProperties constraints).
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | 2026-07-28+ | v2 |
load_skill returns full Markdown body in 'body' field but no guidance on maximum size or truncation. Large skill bodies could exhaust context windows.