Tools Reference
All MCP tools with examples
Overview
Storage Tools
Store information to memory
remember · learn · update
Retrieval Tools
Get information from memory
recall · trace
Management Tools
Manage your knowledge
forget · tick
Coordination Tools
Multi-agent and metacognition
agents · introspect · conflicts · resolve_conflict
Quick Decision Guide
| I want to... | Use this tool |
|---|---|
| Store a preference or observation | remember |
| Store a fact with evidence | learn |
| Update an existing fact | update |
| Search my memory | recall |
| Understand why I believe X | trace |
| Remove something | forget |
| Acknowledge a marker | tick |
| See other agents | agents |
| Check knowledge health | introspect |
| See contradictions | conflicts |
Storage Tools
remember
Store an observation without evidence. Writes a Memory node.
Scenario: User mentions a preference.
User: "I always use pnpm, not npm" Agent: [calls remember]
{
"content": "User prefers pnpm over npm",
"tags": ["preferences", "tooling"]
}Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
content | string | Yes | What to remember |
tags | string[] | No | Categorization tags |
decay | string | No | ephemeral | standard | durable | permanent |
supersedes | string | No | Node ID this replaces |
memory_type | string | No | observation | reflection | event | document |
about | string[] | No | Node IDs this memory is about (creates ABOUT edges) |
Returns: { "node_id": "mem_abc123" }
Reflections (memory_type="reflection") don't decay and require about to link to referenced nodes.
learn
Store a claim with evidence. Writes a Knowledge-layer Claim node.
Scenario: Agent learns a project fact from documentation.
User: "Check the README for the build process" Agent: [reads README, calls learn]
{
"claim": "Project uses esbuild for bundling",
"source": "document",
"evidence": ["file://README.md"],
"confidence": 0.95
}Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
claim | string | Yes | The fact being asserted |
source | string | Yes | document | user | external | agent |
evidence | string[] | Yes | URIs or node:<uuid> references |
confidence | float | No | 0.0-1.0, defaults to 0.8 |
tags | string[] | No | Categorization tags |
source_tier | string | No | authoritative | validated | community | unknown |
supersedes | string | No | Node ID this claim replaces |
Returns: { "node_id": "know_abc123", "evidence_status": "valid" }
learn validates evidence URLs. Private, auth-gated, and file:// URLs will fail validation. For codebase facts, use remember.
update
Supersede existing knowledge with new information.
Scenario: A fact has changed.
Agent: [reads updated config, calls update]
{
"target": "know_abc123",
"content": "Project now uses Vite for bundling",
"evidence": ["https://docs.project.com/build"]
}Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
content | string | Yes | New claim text |
evidence | string[] | Yes | URIs for the new claim |
target | string | No* | Node ID to supersede (skips search) |
query | string | No* | Semantic search to find the node |
confidence | float | No | 0.0-1.0, defaults to 0.8 |
source_tier | string | No | Quality tier hint |
*One of target or query is required.
Returns:
- Success:
{ "status": "updated", "node_id": "new_uuid", "superseded_id": "old_uuid" } - Ambiguous:
{ "status": "ambiguous", "candidates": [...] }if query matches multiple nodes - Not found:
{ "status": "not_found" }— uselearn()instead
Use learn for new knowledge, update for replacing existing. update only works on Claim nodes.
Retrieval Tools
recall
Search or fetch knowledge. Call this at the start of any task and before storing anything (to supersede, not duplicate).
Scenario: Agent needs to know user preferences.
{
"query": "user preferences for package managers"
}Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
query | string | No* | Semantic search. Use "*" to list all |
node_ids | string[] | No* | Direct fetch by ID |
depth | int | No | Graph traversal depth (0-3) |
layers | string[] | No | Filter: memory | knowledge | wisdom |
top_k | int | No | Max results (default 10) |
min_threshold | float | No | Relevance cutoff 0.0-1.0 |
include_withheld | bool | No | Show low-confidence nodes |
fusion_mode | bool | No | Run semantic+graph with RRF fusion |
since / until | string | No | Temporal filter (requires fusion_mode) |
tags | string[] | No | Filter to nodes with ALL specified tags |
agent_id | string | No | Filter to nodes by this agent |
exclude_agents | string[] | No | Exclude nodes by these agents |
include_conflicts | bool | No | Return contradicting nodes |
*At least one of query or node_ids should be provided.
Returns: Array of matching nodes with content and metadata. A withheld count is reported when low-confidence nodes are hidden.
Temporal filtering: Requires fusion_mode=true. Accepts relative ("7d", "1w") or ISO datetime.
{"query": "auth changes", "fusion_mode": true, "since": "7d"}trace
Trace the provenance of a belief back to its sources.
Scenario: User asks why agent thinks something.
User: "Why do you think I prefer functional programming?"
{
"node_id": "bel_abc123",
"direction": "up"
}Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
node_id | string | Yes | Node to trace |
direction | string | No | up (sources) or down (dependents) |
max_depth | int | No | Max traversal depth (default 5) |
edge_types | string[] | No | Filter: DERIVED_FROM, PROMOTED_FROM, SYNTHESIZED_FROM, REFERENCES |
Returns: Provenance chain with confidence at each step, plus root_sources (up) or leaf_nodes (down).
Management Tools
forget
Request deletion of a node. Enters tombstone state before permanent deletion.
Scenario: User requests data deletion.
{
"node_id": "mem_abc123",
"reason": "User requested deletion"
}Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
node_id | string | Yes | Node to forget |
reason | string | No | Audit trail reason |
cascade | bool | No | Also tombstone downstream references |
Returns: { "status": "tombstoned", "node_id": "...", "cascade_count": 3 }
Deletion is not instant. The node enters a cancel window before permanent removal.
tick
Lightweight engagement check. Use when you have seen a marker but choose not to act on it, or to signal active engagement.
Scenario: Agent notices an engagement marker but the current task is unrelated.
{
"about_hint": ["node_123", "node_456"],
"engagement_type": "viewed"
}Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
about_hint | string[] | No | Node IDs to scope check and update access time |
engagement_type | string | No | viewed (+0.5 heat), used (+1.0), confirmed (+2.0) |
session_id | string | No | Session ID for continuity |
Returns: { "status": "ok", "markers": [...], "nudges": [...] }
Coordination Tools
agents
List agents registered in the silo.
{}Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
silo_id | string | No | Silo UUID (defaults to org's primary) |
Returns:
{
"agents": [
{
"agent_id": "uuid",
"role": "assistant",
"first_seen": "2024-01-01T00:00:00Z",
"last_seen": "2024-01-15T00:00:00Z",
"node_count": 42,
"trust_score": 0.85
}
]
}introspect
Query metacognitive state of the knowledge graph.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
query_type | string | Yes | volatility | gaps | provenance | contributions |
node_id | string | No | Required for provenance |
agent_id | string | No | For contributions (defaults to self) |
min_threshold | int | No | Min chain length or ask count |
limit | int | No | Max results (default 10) |
Query types:
- volatility: Topics with high supersession churn (unstable knowledge)
- gaps: Frequently-asked but unanswered queries
- provenance: Which agents contributed to a belief
- contributions: Agent contribution stats
{"query_type": "gaps", "min_threshold": 3}conflicts
List contradictions between nodes.
{
"status": "unresolved",
"limit": 10
}Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
status | string | No | Filter by resolution status (default: unresolved) |
agent_id | string | No | Filter to conflicts involving this agent |
limit | int | No | Max results (default 50) |
Returns: Array of conflicts with both node contents and agent attributions.
dismiss_conflict
Mark a conflict as not-a-real-conflict.
{
"conflict_id": "uuid",
"reason": "Different contexts, not actually contradictory"
}escalate_conflict
Flag a conflict for human review.
{
"conflict_id": "uuid",
"message": "Need domain expert to verify"
}resolve_conflict
Pick a winner and optionally supersede the loser.
{
"conflict_id": "uuid",
"winner_id": "node_uuid",
"supersede": true
}Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
conflict_id | string | Yes | Conflict edge ID |
winner_id | string | Yes | Node ID of authoritative node |
supersede | bool | No | Mark loser as superseded (default true) |
Related Pages
Other pages in the docs that reference this one: