Skip to main content
Glama
ScottRBK

Forgetful

by ScottRBK

discover_forgetful_tools

Browse and filter available tools by category to find the right tool for storing or retrieving memories, projects, documents, code artifacts, or entities.

Instructions

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

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
categoryNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses the return structure and filtering behavior, and implies read-only nature through the workflow. However, it does not explicitly state side effects or lack thereof, but the tool is presumably safe.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very long (over 500 words) due to including the full catalog of other tools. While the structure is clear with sections and bullet points, it could be more concise by moving the catalog to a separate resource. The front-loaded purpose sentence is good.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple parameter, the description provides the return format and explains how the output enables direct tool calls. It also gives context about the overall system. However, it does not describe potential errors or edge cases, which would enhance completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% for the single optional parameter 'category', but the description compensates by listing all valid category values and explaining their purpose in grouping tools. This adds significant meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool discovers available tools with optional category filtering, and explicitly distinguishes from siblings by noting it returns enough information for LLMs to call tools directly without needing how_to_use.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The workflow section provides explicit steps: first call this tool to see the catalog, then use execute_forgetful_tool, and optionally how_to_use_forgetful_tool for parameter docs. This gives clear sequential guidance on when to use each sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

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