OKF-backed long-term memory for agents, exposed via MCP. CLI- and model-agnostic.
Server has 8 tools with complete input schemas and descriptions. Naming follows verb_noun pattern (list_, create_, delete_, agent_, wiki_). Descriptions are present and actionable (avg ~120 chars), explaining WHAT and WHEN. However, output schemas are undocumented, tools return JSON strings without declaring field structure. Error handling returns error objects but lacks recovery guidance. Parameters lack constraints (enums, ranges, format specs). No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels. Composition is sound: tools chain well (agent_index → wiki_read/wiki_search). Security: no secrets in params, but no audit logging visible.
Open an agent's wiki: persona preview, index.md text, and all concepts. Call this when waking an agent in a new project, before working. Switch agents by calling this with a different agent_id.
Create a new agent bundle (directory + AGENT.md persona + index.md + log.md). Use when starting a new role that doesn't exist yet. `name`: display name (defaults to agent_id). `persona`: free-text identity and strengths for the AGENT.md body; omit for a fill-in template. Fails if the agent already exists — don't clobber.
Delete an agent's entire bundle (all concepts + persona + log). IRREVERSIBLE — confirm with the user before calling. Refuses paths that escape the agents dir. Use when an agent is retired or created by mistake.
List every agent that owns an OKF knowledge bundle.
Append one update entry to the agent's log.md (today's date group).
Read one concept (frontmatter + body). concept_id uses '/' (e.g. 'projects/x').
Output schemas undocumented. All tools return JSON strings via _dump() but field structure is not declared. LLMs cannot plan downstream calls or extract specific fields without reverse-engineering the response.
No tool annotations. delete_agent and wiki_write_concept are destructive/write operations but lack destructiveHint annotation. list_agents, agent_index, wiki_search, wiki_read lack readOnlyHint. Agents cannot infer safety/idempotency from tool metadata.
Parameter constraints missing. 'limit' in wiki_search has no min/max (default 5, but unbounded). 'agent_id' and 'concept_id' have no format/pattern specs. 'type' in wiki_write_concept has no enum of valid OKF types. LLMs cannot validate inputs before calling.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
Full-text search within one agent's wiki.
Create or update a concept file in an agent's wiki. 'type' is required (OKF). extra_json: optional JSON object string for custom frontmatter fields.
Error handling lacks recovery guidance. Errors return {'error': str(e)} but do not suggest next steps. E.g., FileNotFoundError on agent_index should suggest 'Agent not found. Call list_agents() to see available agents.'
No confirmation/dry-run for destructive operations. delete_agent is IRREVERSIBLE but tool definition says 'confirm with user', no mechanism in the tool itself (e.g., confirm_delete param or dry_run flag) to enforce this.