AI Memory & Decision System - Give AI agents persistent memory and consistent decision-making
Daem0n-MCP has 31 tools with complete input schemas and descriptions, but quality is uneven. Naming conventions are strong (verb_noun pattern mostly followed), but parameter descriptions lack detail about constraints, formats, and relationships. Many descriptions are generic and don't explain WHEN to use a tool or what makes it different from similar tools. Schema quality is present but minimal, most tools lack output schema documentation, pagination guidance, or chaining IDs. Error handling is not documented in tool descriptions. Critical issues: no tool annotations (readOnlyHint/destructiveHint), incomplete parameter constraint documentation, and missing output schemas.
Create auto-recall trigger. Types: file_pattern (glob), tag_match (regex), entity_match (regex).
Analyze impact of code changes using dependency graph
Extract entities from all existing memories. Safe to run multiple times.
Check which triggers match context and get auto-recalled memories.
Check if database has changes since the given timestamp. Used by MCP hosts to implement polling-based real-time updates.
Clear all active context memories. Use when switching focus.
Compress context using LLMLingua-2 for intelligent context compression
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite tools having clear risk levels. Pattern requires current MCP spec annotations but they are absent from all 31 tools.
Output schemas not documented in tool definitions. LLMs cannot predict response structure or plan downstream calls. Example: find_code returns search results but no schema shows field names, types, or pagination structure.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Adversarial Council -- convene an internal debate grounded in memory evidence. Runs a structured advocate/challenger/judge debate where each argument is supported only by recalled memory evidence. No external reasoning is invoked. Convergence detection halts deliberation when positions stabilize. The synthesis is inscribed as a consensus memory for future retrieval.
Rule Entropy Analysis -- examine rules for signs of decay and drift. Cross-references rule triggers against the code index and outcome history to produce staleness scores and concrete evolution suggestions. The daemon proposes changes but never inscribes them without consent.
Execute Python code in a sandboxed environment with capability checks
Search code index for files and symbols matching query
Get all always-hot memories ordered by priority.
Get subgraph of memories and relationships as JSON or Mermaid diagram.
Get metrics about the knowledge graph structure: node/edge counts, density, components.
Get visual memory graph with UI resource hint for MCP Apps rendering. Returns interactive force-directed graph visualization showing memory relationships with node coloring by category and edge styling by relationship type.
Index project code structure and symbols for fast retrieval
Ingest document from URL with SSRF protection and content validation
Create relationship between memories. Types: led_to, supersedes, depends_on, conflicts_with, related_to.
List all memory communities with summaries.
List communities with visual UI support. Same as list_communities() but returns results with UI resource hint for MCP Apps hosts. Non-MCP-Apps hosts receive text fallback.
List all configured context triggers.
List most frequently mentioned entities.
Propose refactoring suggestions based on code metrics and patterns
Detect memory communities using Leiden algorithm on the knowledge graph.
Remove a context trigger.
Remove memory from active context.
Scan codebase for TODO/FIXME/HACK/XXX/BUG comments. [DEPRECATED] Use understand(action='todos') instead.
Add memory to always-hot working context. Auto-included in briefings.
Temporal Scrying -- replay a past decision with current knowledge. Reconstructs the context that existed at the decision's moment of inscription, compares it with the daemon's present understanding, and reveals what is now known that was not known then.
Traverse memory graph to understand causal chains and dependencies.
Remove relationship between memories.
Parameter constraints and formats under-documented. Example: 'rate' parameter in compress_context has no guidance on what values are valid (0-1 implied but not stated), 'limit' parameters in multiple tools lack min/max bounds.
Parameter descriptions lack contextual guidance. Many 'project_path' params are required but not described beyond 'Project root', no guidance on how agents should obtain this or when it defaults.
execute_python tool exposes sandboxed code execution without explicit error recovery guidance. Description mentions capability checks but does not document what happens when capability check fails or code execution times out.
Multiple tools operate on similar resources (context, graph, communities) but distinctions are not clearly documented. LLMs may conflate set_active_context vs add_context_trigger or get_graph vs get_graph_visual.
scan_todos is marked [DEPRECATED] in description but still registered. Deprecated tools should be removed or the description should explain migration path and when removal will occur.
Pagination and result limiting not explicitly addressed. Tools like find_code (limit=20 default), list_entities (limit=20 default) have defaults but no guidance on max values or how to handle result overflow.