execute_forgetful_tool
Execute any registered tool in the Forgetful memory system by providing the tool name and arguments, enabling memory management and linking operations.
Instructions
Execute any registered tool dynamically. Forgetful is a semantic memory system for LLMs.
Quick Start - One-Shot Examples (all required params shown)
Memory Operations:
Search: execute_forgetful_tool("query_memory", {"query": "search terms", "query_context": "why searching"})
Create: execute_forgetful_tool("create_memory", {"title": "Short title", "content": "Memory content (<2000 chars)", "context": "Why this matters", "keywords": ["kw1", "kw2"], "tags": ["tag1"], "importance": 7, "project_ids": [1]})
Create with provenance: execute_forgetful_tool("create_memory", {"title": "...", "content": "...", "context": "...", "keywords": [...], "tags": [...], "importance": 7, "source_repo": "owner/repo", "source_files": ["src/main.py"], "confidence": 0.85, "encoding_agent": "claude-sonnet-4"})
Update: execute_forgetful_tool("update_memory", {"memory_id": 1, "content": "new content"})
Get: execute_forgetful_tool("get_memory", {"memory_id": 1})
Link: execute_forgetful_tool("link_memories", {"memory_id": 1, "related_ids": [2, 3]})
Unlink: execute_forgetful_tool("unlink_memories", {"source_id": 1, "target_id": 2})
Obsolete: execute_forgetful_tool("mark_memory_obsolete", {"memory_id": 42, "reason": "Outdated approach", "superseded_by": 100})
Project Organization:
List: execute_forgetful_tool("list_projects", {})
Create: execute_forgetful_tool("create_project", {"name": "Project Name", "description": "What this project is about", "project_type": "development"})
Get: execute_forgetful_tool("get_project", {"project_id": 1})
Query: execute_forgetful_tool("query_memory", {"query": "search terms", "query_context": "why searching", "project_ids": [1]})
Entities (people, orgs, devices):
Create: execute_forgetful_tool("create_entity", {"name": "Sarah Chen", "entity_type": "Individual", "notes": "Backend developer", "aka": ["Sarah", "S.C."]})
Search: execute_forgetful_tool("search_entities", {"query": "Sarah"}) # Searches name AND aka
Link to memory: execute_forgetful_tool("link_entity_to_memory", {"entity_id": 1, "memory_id": 1})
Unlink from memory: execute_forgetful_tool("unlink_entity_from_memory", {"entity_id": 1, "memory_id": 1})
Link to project: execute_forgetful_tool("link_entity_to_project", {"entity_id": 1, "project_id": 1})
Unlink from project: execute_forgetful_tool("unlink_entity_from_project", {"entity_id": 1, "project_id": 1})
Documents (long-form content >300 words):
Create: execute_forgetful_tool("create_document", {"title": "Doc Title", "description": "Brief summary", "content": "Long content...", "document_type": "text", "project_id": 1})
Code Artifacts (reusable snippets):
Create: execute_forgetful_tool("create_code_artifact", {"title": "Snippet Title", "description": "What this does", "code": "def example(): pass", "language": "python", "project_id": 1})
Linking Best Practices
Always link related items for discoverability:
When creating documents, link atomic memories:
create_memory(..., document_ids=[doc_id])When creating code artifacts, link to memories:
create_memory(..., code_artifact_ids=[artifact_id])Link memories to each other:
link_memories(memory_id=1, related_ids=[2, 3])Link entities to memories:
link_entity_to_memory(entity_id=1, memory_id=1)Link entities to projects:
link_entity_to_project(entity_id=1, project_id=1)
Tool Categories
memory | project | entity | document | code_artifact | linking | user
Use discover_forgetful_tools(category?) for full parameter details and optional params.
Args: tool_name: Name of the tool to execute arguments: Dictionary of arguments to pass to the tool ctx: FastMCP Context (automatically injected)
Returns: Tool execution result (format depends on the specific tool)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tool_name | Yes | ||
| arguments | Yes |