Skip to main content
Glama
ScottRBK

Forgetful

by ScottRBK

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SERVER_PORTNoHTTP server port8020
EMBEDDING_MODELNoEmbedding modelBAAI/bge-small-en-v1.5
MAX_GRAPH_LIMITNoUpper bound for graph limit2000
MEMORY_TOKEN_BUDGETNoMax tokens for query results8000
MEMORY_NUM_AUTO_LINKNoAuto-link count3

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
discover_forgetful_toolsA

Discover available tools, optionally filtered by category

Returns enough information for LLMs to call tools directly without needing how_to_use.

Args: category: Optional category filter (user, memory, project, code_artifact, document, entity, linking) ctx: FastMCP Context (automatically injected)

Returns: Dictionary with: - tools_by_category: Tools grouped by category - total_count: Total number of tools - categories_available: List of available categories - filtered_by: Category filter applied (if any)

All Available Tools

User Tools - User profile and preferences

  • get_current_user: Get authenticated user info

  • update_user_notes: Store user preferences/notes

Memory Tools - Atomic knowledge storage (<400 words per memory)

  • create_memory: Store a single concept with auto-linking to similar memories (supports provenance tracking)

  • query_memory: Semantic search across memories (use query_context for better ranking)

  • get_memory: Retrieve memory by ID

  • update_memory: Modify memory fields (PATCH semantics, supports provenance tracking)

  • link_memories: Manually connect related memories bidirectionally

  • unlink_memories: Remove link between memories

  • mark_memory_obsolete: Soft-delete with audit trail and optional superseded_by

  • get_recent_memories: Get newest memories (timeline view)

Provenance Tracking (optional fields for create_memory/update_memory):

  • source_repo, source_files, source_url: Track where knowledge came from

  • confidence: Reliability score (0.0-1.0) for AI-generated content

  • encoding_agent, encoding_version: Track which agent/version created the memory

Project Tools - Organize memories by context/scope

  • create_project: Create project container (development, personal, work, etc.)

  • get_project: Retrieve project details

  • list_projects: List all projects with optional status/repo filter

  • update_project: Modify project metadata

  • delete_project: Remove project (memories preserved)

Code Artifact Tools - Reusable code snippets and patterns

  • create_code_artifact: Store code with language, tags, project link

  • get_code_artifact: Retrieve code artifact by ID

  • list_code_artifacts: List artifacts with project/language/tags filter

  • update_code_artifact: Modify artifact fields

  • delete_code_artifact: Remove artifact

Document Tools - Long-form content (>300 words)

  • create_document: Store detailed docs, analysis, guides

  • get_document: Retrieve document by ID

  • list_documents: List documents with project/type/tags filter

  • update_document: Modify document fields

  • delete_document: Remove document

Entity Tools - Real-world entities (people, orgs, devices)

  • create_entity: Create entity with type, aka (aliases), notes

  • get_entity: Retrieve entity by ID

  • list_entities: List entities with project/type/tags filter

  • search_entities: Text search by name or aka (aliases)

  • update_entity: Modify entity fields

  • delete_entity: Remove entity (cascades links)

  • link_entity_to_memory: Connect entity to memory

  • unlink_entity_from_memory: Remove entity-memory link

  • link_entity_to_project: Connect entity to project (organizational grouping)

  • unlink_entity_from_project: Remove entity-project link

  • get_entity_memories: Get all memories linked to entity

  • create_entity_relationship: Create typed relationship (works_for, owns, etc.)

  • get_entity_relationships: Get relationships for entity

  • update_entity_relationship: Modify relationship

  • delete_entity_relationship: Remove relationship

Workflow

  1. Call discover_forgetful_tools() to see this catalog

  2. Call execute_forgetful_tool(tool_name, {args}) to run any tool

  3. If needed, call how_to_use_forgetful_tool(tool_name) for full parameter docs

how_to_use_forgetful_toolB

Get detailed documentation for a specific tool

Returns complete documentation including JSON schema, multiple examples, and full parameter details.

Args: tool_name: Name of the tool to get documentation for ctx: FastMCP Context (automatically injected)

Returns: Detailed tool documentation with JSON schema

execute_forgetful_toolA

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)

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ScottRBK/forgetful'

If you have feedback or need assistance with the MCP directory API, please join our Discord server