Documentation Index
Fetch the complete documentation index at: https://docs.3ngram.ai/llms.txt
Use this file to discover all available pages before exploring further.
3ngram’s MCP server provides 45 registered tools, 12 prompt templates, and 19 resources for AI assistants to interact with the knowledge base.
Surface refactor: Most read-only “list” tools are now MCP resources (engram:// URIs). Several legacy tool wrappers (recall, search_memories, search_content, get_memory, get_decision_lineage, commitments, blockers, overdue, stale_commitments, suggested_context, status, list_preferences, list_pending_actions, compile_context, triage_stale, suggest_reclassifications, reclassify_memory, batch_reclassify_memories, archive_memories) were removed from the registry in the v0.6.14, v0.7.7, and search-consolidation refactors. They no longer appear in tools/list. Use search, resources, or the active replacement listed in the table below.
The full per-family reference is generated from the backend source — see All Tools. The table below summarises the active surface in one place.
| Tool | Purpose | R/W | Notes |
|---|
remember | Persist a structured memory with type, scope, project, due date | Write | |
resolve | Mark a memory as resolved with optional note | Write | |
unresolve | Reopen a resolved memory | Write | |
search | Canonical search across memories + content chunks; memory_ids=[…] short-circuits to direct lookup | Read | Replaces search_memories, search_content, get_memory |
reindex | Re-index markdown content into content chunks | Write | |
get_indexed_file | Read a single indexed file by path | Read | |
update_memories | Bulk-update memory type and/or status (replaces legacy reclassify_memory + batch_reclassify_memories + archive_memories) | Write | |
set_memory_sharing | Share, deny, allow, or revoke paired-user memory access | Write | Replaces share_memory, revoke_memory_share, set_memory_scope_share, set_memory_scope_denial |
get_memory_sharing | Inspect memory share state for one memory, one scope, or the caller | Read | Replaces list_memory_shares, get_memory_share_state |
list_plans | List plans owned by or shared with the caller | Read | |
get_plan | Fetch a plan with its items, modules, and shares | Read | |
configure_scope | Assign a project to a scope (work/personal) | Write | |
reapply_scope_mappings | Reapply scope mappings to existing memories | Write | |
briefing | Generate session briefing (commitments, blockers, overdue, stale, recent decisions) | Read | |
handoff | Export active commitments, blockers, recent decisions, and selected memory types as JSON for provider switching | Read | |
sync_source | Trigger re-sync for a connected content source | Write | |
list_sources | List indexed content sources with chunk counts | Read | |
get_facts | Look up entity-bound facts (single fact when attribute is set, otherwise the active list) | Read | Replaces get_fact + list_facts |
merge_entities | Merge duplicate entities into a canonical one | Write | |
describe_environment | Server environment + tool surface metadata | Read | |
create_doc | Create a new Google Doc with optional initial content | Write | |
export_doc | Export a Google Doc as plain text by document ID | Read | |
propose_action | Propose an external action for user approval | Write | |
set_preference | Set a user preference key-value pair | Write | |
create_prompt | Create a custom prompt template | Write | |
update_prompt | Update an existing custom prompt | Write | |
delete_prompt | Delete a custom prompt | Write | |
get_prompt | Read full details of a custom prompt | Read | |
list_prompts | List custom prompts | Read | |
create_schedule | Create a cron-based agent schedule | Write | |
update_schedule | Update an existing schedule | Write | |
delete_schedule | Delete a schedule | Write | |
get_schedule_history | Query past schedule runs | Read | |
create_trigger | Create an event-based trigger | Write | |
update_trigger | Update an existing trigger | Write | |
delete_trigger | Delete a trigger | Write | |
get_trigger_history | Query trigger evaluations | Read | |
list_templates | List available agent templates, optionally filtered by category | Read | |
install_template | Install a curated agent template (bundles prompts, triggers, schedules) | Write | |
uninstall_template | Remove an installed agent template and its resources | Write | |
MCP resources
Resources are read-only data exposed via engram:// URIs. Clients that support MCP resources can read these directly instead of calling tools.
| Resource URI | Purpose |
|---|
engram://status | Index statistics and memory breakdown |
engram://sources | Connected content sources |
engram://preferences | All active user preferences |
engram://schedules | All agent schedules |
engram://triggers | All agent triggers |
engram://prompts | All custom prompt templates |
engram://pool-stats | MCP connection pool diagnostics |
engram://actions/pending | Pending agent actions |
engram://commitments | Open commitments |
engram://blockers | Open blockers |
engram://overdue | Overdue commitments |
engram://stale | Stale commitments |
engram://suggested-context | Recently active and revisit-worthy context |
engram://plans | Plans owned by or shared with the current user |
engram://memories/{memory_id} | Full content of a single memory |
engram://preferences/{key} | A single preference by key |
engram://plans/{plan_id} | Full detail for a single plan |
engram://schedules/{name}/history | Past runs for a schedule |
engram://triggers/{name}/history | Evaluation history for a trigger |
Key parameters
remember
| Parameter | Type | Required | Description |
|---|
topic | string | Yes | Short identifier for the memory |
content | string | Yes | Full memory content |
memory_type | string | No | decision, commitment, blocker, preference, pattern, note, event, fact |
project | string | No | Project tag |
scope | string | No | work or personal |
due_date | string | No | ISO date for commitments |
status | string | No | open, waiting, scheduled |
search
| Parameter | Type | Required | Description |
|---|
query | string | Yes | Search query (ignored when memory_ids is set) |
source_type | string | No | all (default), memory, or content |
memory_ids | array | No | Direct visible-id lookup (absorbs the prior standalone get_memory by-id tool, no longer registered) |
limit | integer | No | Max results after merge (default 10) |
memory_type | string | No | Filter the memory leg by type |
project | string | No | Filter the memory leg by project |
scope | string | No | Filter by scope (work / personal) |
source | string | No | Memory-leg source filter (manual, hook, auto) |
resolve
| Parameter | Type | Required | Description |
|---|
memory_id | integer | Yes | Memory to resolve |
resolution | string | No | What happened |
Most MCP tools return both:
- A human-readable text fallback (
content block) optimised for LLM consumption.
- A
structuredContent payload matching a published JSON schema (see backend/src/engram/models/mcp_responses.py) for clients that prefer structured output (MCP 2025-11-25 SEP-1613).
briefing, search, list_sources, describe_environment, and list_prompts are the leading examples — every new tool should publish a schema. Direct callers (CLI, HTTP bridge) keep the text format; MCP clients with output-schema support read structuredContent directly.
Example briefing text fallback:
Open Commitments (3):
[122] Implement memory consolidation UI (5 days) [project: engram]
[125] Write integration tests for OAuth flow (3 days) [project: engram]
[131] Review Cursor MCP configuration (1 day) [project: my-project]
Progressive disclosure
Use search(query=…, source_type="memory") to scan, then read the full content of specific memories via the engram://memories/{memory_id} resource. This keeps token usage low when browsing large memory sets.
Auto-consolidation
When remember finds a sufficiently similar existing memory, it merges instead of creating a duplicate. Consolidation uses advisory locks to prevent race conditions.