Tool Exposure — slots, tiers, presets (Stage 2-C manifest)¶
Product: a-memory · package: mcp-ariel-memory · v1.11.0+
Three mechanisms control what an MCP client sees:
- Primitives — always-visible scene verbs:
think,dream,forget,evolve,project,memory_hook,wake_up. - Tiers (
ARIEL_EXPOSEcomma list) — flat tool groups. Every tool is in at least one tier (orphans = 0, enforced bytests/test_mcp/test_exposure_invariants.py). - Meta layer (
ARIEL_META=1) — one dispatcher tool per tier instead of flat members. Visible surface: 7 primitives + 6 dispatchers = 13 schemas even withARIEL_EXPOSE=all.dispatcher(action='list')returns the catalog (first description line + Plan-B behavior hints + slot per member);dispatcher(action='<tool>', args={...})calls the real tool withuser_idscoping applied.
Slots (semantic map — mcp_server/slots.py)¶
| slot | n | tools |
|---|---|---|
| core | 7 | think, dream, forget, evolve, project, memory_hook, wake_up |
| recall | 5 | memory_recall, memory_search, memory_recall_protocol, memory_get_smart_context, memory_recap |
| context | 4 | memory_context, memory_context_inject, memory_steering, memory_compress |
| episodes | 4 | memory_episode_save/recall/list/get |
| sessions | 3 | memory_session_start/end/list |
| graph | 4 | memory_graph_add/query/nodes/edges |
| wiki | 9 | wiki_add/search/list/read/delete/summarize/link/reflect/query |
| insight | 10 | memory_query, memory_fact_blame, memory_history, memory_quality, memory_reflect, memory_stats, memory_diagnose, memory_standing, memory_procedure, memory_scratchpad |
| write | 9 | memory_remember, memory_save_typed, memory_load_rules, memory_counterfactual, memory_branch, memory_stash, memory_heal, memory_disclose, memory_skill_promote |
| review | 4 | memory_watch, memory_proposals, memory_report_card, daily_brief |
| admin | 7 | memory_api_key, memory_backup, memory_cleanup, memory_data, memory_lucidity_purge, memory_saga, memory_sync_replica |
| brief | 0 | (legacy name — tier dissolved into review, 2026-09-07) |
Slots are the catalog structure of the meta layer and the documentation unit;
tier membership (below) is the exposure mechanism. They are related but
distinct: e.g. daily_brief has slot review, and memory_history /
memory_standing are dual-tier (insight ∪ write) while living in exactly one
slot.
Tiers (ARIEL_EXPOSE — mcp_server/server.py)¶
| tier | members | notes |
|---|---|---|
| (primitives) | 7 | always on |
| context | 7 | D1.1 protocol, recap, smart context, inject, steering, compress |
| insight | 17 | read-side analytics; dual-tier: memory_history, memory_standing |
| write | 17 | memory shaping; dual-tier members overlap insight |
| wiki | 9 | all wiki_* |
| review | 4 | proposals, watch, report card, daily_brief (ex-brief tier) |
| admin | 7 | keys, backups, data lifecycle, replication — never in the agent preset |
Presets¶
| preset | expands to | surface (measured) |
|---|---|---|
agent |
primitives,context,insight,write,wiki,review |
59 |
operator |
agent,admin |
66 |
full |
all |
66 |
ARIEL_EXPOSE=agent is the recommended live-agent value. With
ARIEL_META=1 on top, the same preset collapses to 13 visible schemas.
Legacy notes (both safe — unknown tier names are ignored):
brieftier dissolved intoreview(2026-09-07); old strings containingbriefkeep working,daily_briefnow arrives viareview.- The pre-C live-agent string
primitives,context,insight,write,wiki,brief,reviewnow resolves to 59 (7 primitives incl. wake_up + the tier union).