Ferrosa Memory exposes its capabilities as MCP tools, organized by the include_all flag on tools/list. Tier 1 is the focused default agent set — the everyday memory loop. Tier 2 unlocks the advanced and operator toolbox when you ask for it.
Drowning an agent in nearly 80 tool definitions is its own kind of noise: every extra tool dilutes the model's attention, inflates the prompt, and makes the wrong call more likely. So Ferrosa Memory ships a focused default surface — the everyday memory loop of ingest, recall, link, track tasks, and forget — and keeps the rest opt-in.
This mirrors the same recall-hygiene philosophy that runs through 0.15: prefer signal over noise. Just as recall guards and workspace filtering keep retrieval quiet unless there's real signal, tiering keeps the tool list quiet unless an operator reaches for advanced or administrative work.
Tier 2 is always one flag away. Batch operations, memo and plan tracking, the full intention lifecycle, trajectory folds, bi-temporal facts, stored skills, dream-cycle consolidation, and the Datalog governance plane are there when you need them — and out of the way when you don't.
21 tools an agent reaches for in a normal session: ingest and recall, typed edges, context expansion, triggered intentions, durable session tasks, feedback, stats, runtime config, and forget.
58 tools for batch work, memo & plans, the intention lifecycle, folds, temporal facts, skills, consolidation and graph inference, the expert-system governance plane, and introspection — surfaced only with include_all.
Returned by default on tools/list. This is the focused agent set — the loop a model runs every session.
| Tool | Purpose |
|---|---|
smart_ingest | Ingest discovered facts with dedup + confidence scoring |
hybrid_search | Multi-strategy semantic+lexical+phonetic+graph search (RRF) |
retrieve_entities | Find entities by phonetic fuzzy match or semantic ANN |
list_entities | List entities with structured equality filters |
| Tool | Purpose |
|---|---|
create_edge | Build a typed graph edge |
| Tool | Purpose |
|---|---|
get_chunk_context | Expand a document chunk via semantic prev/next links |
get_turn_chain | Walk forward through temporal next_turn edges |
| Tool | Purpose |
|---|---|
check_intentions | Return triggered deferred actions (topic/file/duration/context) |
| Tool | Purpose |
|---|---|
session_task_put | Create/update a durable session task |
session_task_get | Retrieve a session task by UUID or alias |
session_task_current | Foreground task, working set, focus stack, recovery hints |
session_task_list | List durable session tasks (optionally by status) |
session_task_complete | Mark a task complete; return resume candidate |
session_task_cancel | Mark a task cancelled; update focus-stack recovery |
session_task_focus | Move a task to foreground; push previous onto the focus stack |
session_task_observe | Deterministic observation hook (task-shift/completion/lost-agent), no LLM judge |
| Tool | Purpose |
|---|---|
record_feedback | Record relevance feedback on the last search result set |
get_stats | Health stats: entity/fold/session counts, consolidation status |
configure | Read/write runtime defaults (session, retrieval limit, workspace, cwd) |
all_tools | Return the full tool catalog |
| Tool | Purpose |
|---|---|
forget | Propose forget candidates with blast radius; confirm retract/hard-delete |
The full toolbox: batch operations, memo & plans, the intention lifecycle, trajectory folds, bi-temporal facts, stored skills, the dream-cycle knowledge plane, the Datalog governance and expert-system surface, and introspection. Opt in with include_all.
| Tool | Purpose |
|---|---|
upsert_entity | Create or update a single entity directly |
batch_ingest | Ingest many facts in one call with dedup + scoring |
ingest_entities | Insert a set of explicit entities |
count_entities_by_type | Count entities grouped by type |
| Tool | Purpose |
|---|---|
batch_update_entities | Update many entities in one operation |
batch_delete_entities | Delete many entities in one operation |
delete_session | Remove a session and its associated state |
| Tool | Purpose |
|---|---|
check_memo_cache | Look up a sub-call result by content hash |
store_memo_result | Cache a completed sub-call result |
write_plan_node | Record a hierarchical sub-task node |
get_plan_context | Retrieve the session's plan tree |
update_plan_node | Mark a plan node complete/failed |
| Tool | Purpose |
|---|---|
ingest_context_segments | Persist raw conversation turns as semantic segments |
search_context_segments | Search context segments (BM25 + vector) |
get_context_window | Expand a bounded window around a context segment |
start_fold | Open a trajectory fold for a sub-task |
append_to_fold | Append turns to an open fold |
complete_fold | Seal a fold with a summary + embedding |
retrieve_fold_context | Retrieve the context of a sealed fold |
| Tool | Purpose |
|---|---|
batch_create_edges | Create many typed edges in one operation |
batch_update_edges | Update many edges in one operation |
batch_delete_edges | Delete many edges in one operation |
explore_connections | Traverse the graph outward from an entity |
find_memory_chain | Find a connecting path between memories |
| Tool | Purpose |
|---|---|
write_temporal_fact | Record a timestamped fact with supersession |
get_temporal_chain | Walk the supersession chain for a fact |
| Tool | Purpose |
|---|---|
set_intention | Set a deferred trigger |
list_intentions | List pending intentions, optionally across repos |
complete_intention | Mark a triggered intention done |
snooze_intention | Reset a triggered intention to pending |
| Tool | Purpose |
|---|---|
ingest_skill | Store a reusable skill |
invoke_skill | Invoke a stored skill |
verify_skill | Verify a skill before use |
retrieve_skills_for_context | Retrieve skills relevant to the current context |
| Tool | Purpose |
|---|---|
run_consolidation | Force a background dream-cycle consolidation pass |
enrich_entities | Enrich entities with derived attributes |
importance_score | Score the importance of memories |
spread_activation | Activate related memories by graph spreading |
find_duplicates | Find duplicate entities for merge |
recursive_explore | Recursively explore connected memories |
query_derived | Query Datalog-derived facts |
list_derived_cache | List cached derived facts |
| Tool | Purpose |
|---|---|
manage_rules | Manage Datalog derivation rules |
manage_claims | Manage claims in the expert system |
manage_approvals | Manage approvals for derived knowledge |
manage_aliases | Manage entity and predicate aliases |
manage_authority | Mark sources curated/authoritative or demote clutter for ranking |
explain_derived | Return a proof trace for a derived fact |
get_effective_rule_set | Get the currently effective rule set |
promote_predicate | Promote a predicate into the effective rule set |
promote_memory | Promote a memory's standing |
demote_memory | Demote a memory's standing |
| Tool | Purpose |
|---|---|
describe | Describe the server's capabilities |
migration_status | Report schema/data migration status |
| Tool | Purpose |
|---|---|
ensure_parent_tag | Ensure a parent tag exists for grouping |
record_outcome | Record an outcome (including retrieval misses) to train ranking |
restore_forgotten | Restore a reversibly retracted memory |
predict_needed (stub) | Predict memories likely needed next |
Tier 1 is the default. To surface the full toolbox, pass include_all: true on tools/list — your client then sees all 58 advanced and operator tools alongside the everyday set.
include_all: true on the MCP tools/list request to reveal Tier 2. Leave it off (the default) for the focused everyday surface. The all_tools tool also enumerates the complete catalog from inside a session.Start with the focused default loop, then unlock the full toolbox when an operator needs it.