Skip to main content
The 3ngram MCP server exposes the following triggers tools. Every entry is generated from the tool’s source signature and docstring, so this page never drifts from the backend.
Required parameters are marked with the required attribute. Optional parameters show their default value.

create_trigger

Create Trigger · writes · non-destructive · non-idempotent · closed-world Create an event-driven agent trigger that fires on blocker.added, commitment.overdue, commitment.stale, integration.sync_complete, or memory.created. For time-driven agents use create_schedule instead. Returns: str Source: backend/src/engram/mcp/tools/triggers.py

Parameters

name
str
required
Trigger name (lowercase, alphanumeric/hyphens/underscores, 1-63 chars). Returned as the canonical handle in the response; update_trigger / delete_trigger operate on name (no UUID is exposed).
event_type
str
required
Event to listen for. One of: blocker.added, commitment.overdue, commitment.stale, integration.sync_complete, memory.created.
filter_json
str
default:"'{}'"
Optional JSON object (not list) for event filtering. Keys are matched against event_data with exact scalar equality and explicit key presence (k in event_data and event_data[k] == v); a missing key fails the match even when the filter value is JSON null. An empty object {} matches every event of the configured event_type.Per-event event_data shape (the keys you can filter on):
  • memory.created / blocker.added{memory_id: int, topic: str, memory_type: str} Example single-key: {"memory_type": "commitment"}
  • integration.sync_complete{integration_id: str, provider: str, items_fetched: int, items_extracted: int} Example single-key: {"provider": "github"} Example multi-key (all must match): {"provider": "github", "items_extracted": 1}
  • commitment.overdue / commitment.stale{memory_id: int, topic: str}
Filters are exact scalar equality only. Substring / regex / list- membership / array filters are not supported in v1; document filters that need richer matching as a follow-up. See docs/reference/mcp-patterns.md (section “Filter JSON shape for triggers”) for the canonical reference.
prompt_id
str | None
default:"None"
Optional UUID of a user prompt to evaluate when triggered.
context_template
str | None
default:"None"
Optional template string for context assembly.

delete_trigger

Delete Trigger · writes · destructive · idempotent · closed-world Delete an agent trigger by name. Stops future event firings. Returns: str Source: backend/src/engram/mcp/tools/triggers.py

Parameters

name
str
required
Name of the trigger to delete.

get_trigger_history

Get Trigger History · read-only · non-destructive · idempotent · closed-world View recent event-evaluation history for agent triggers (from the pending_actions table). Pass name=None to see all triggers. Returns: str Source: backend/src/engram/mcp/tools/triggers.py

Parameters

name
str | None
default:"None"
Optional trigger name to filter by.
limit
int
default:"10"
Maximum results to return (default 10, max 50).

update_trigger

Update Trigger · writes · non-destructive · idempotent · closed-world Update fields on an agent trigger (enabled flag, prompt_id, context_template). Event type and filter are immutable — delete and recreate to change them. Returns: str Source: backend/src/engram/mcp/tools/triggers.py

Parameters

name
str
required
Name of the trigger to update.
enabled
bool | None
default:"None"
Set enabled/disabled.
prompt_id
str | None
default:"None"
New prompt UUID, or empty string to clear.
context_template
str | None
default:"None"
New template, or empty string to clear.