Persistent, structured project memory for Claude Code and Codex — MCP server providing decision/constraint recall, code area discovery, and AST skeleton extraction
CogniKernel exposes 4 tools with clear verb-noun naming (get_session_state, recall, find_related, skeleton). All have descriptions (194 - 250 chars, within baseline 34 - 392 range). However, input schemas are visible but lack critical detail: parameter types are declared (string, integer) but descriptions are minimal or generic. The 'limit' parameter across multiple tools references an undefined 'RECALL_LIMIT' constant rather than a concrete value. Output schemas are entirely undocumented, LLMs cannot infer what these tools return. Error handling is absent; no guidance on retryability, user-fixable vs fatal errors, or recovery paths. The tools are READ_ONLY (safe from side effects) but lack the structured output documentation and parameter constraints needed for reliable agent composition.
Find decisions and code areas related to a topic or file — semantic neighbours UNION import-graph-adjacent events. Use to scope impact before changing a module.
Return the full CogniKernel memory block for a project (constraints, decisions, skeleton, threads). Call with the absolute project root path only if the session-start block is missing from your context.
Recall prior project decisions/constraints relevant to a question, ranked by relevance — WITHOUT reading files. Use when you need a past decision and it isn't already in the session context block.
Full AST skeleton (public classes/functions/imports) for files matching file_path — WITHOUT reading the file. The session-context skeleton section is budget-capped and may omit or compress files; this serves the complete signatures for a specific file. Use when the Read gate denies a file or the block's skeleton lacks the detail you need. Empty file_path = whole skeleton (budget-capped).
Output schemas completely undocumented. LLMs cannot infer what get_session_state, recall, find_related, or skeleton return. No field names, types, or structure guidance.
Parameter 'limit' defaults to undefined constant 'RECALL_LIMIT' instead of a concrete integer. LLMs cannot determine valid range or default behavior.
Parameter descriptions are generic or missing detail. 'query' is described as 'Query string to search for relevant decisions/constraints' but lacks format, length, or example guidance.
No error handling or recovery guidance. Tools provide no indication of retryability, user-fixable errors, or what to do if a project_path is invalid or missing.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
No pagination or result-limiting guidance. Tools may return unbounded lists (e.g., recall with limit=RECALL_LIMIT) but no documentation of max results, pagination tokens, or when to call with smaller limits.