Skip to main content
Glama
ScottRBK

Forgetful

by ScottRBK

discover_forgetful_tools

Discover available tools grouped by category to find the right tool for your task. Optionally filter by category to narrow down results.

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 relationship (part_of, depends_on, works_for, 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 are provided, so the description is the sole source for behavioral traits. It explains the return structure (dictionary with keys like tools_by_category, total_count) and states it returns enough info for direct tool calls. However, it does not explicitly state that the tool is read-only or non-destructive, though that is implied. It could also mention any limitations like caching or performance, but for a discovery tool, the disclosure is fairly adequate.

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 overly long (over 300 words) and includes a full catalog of all available tools, which is redundant as the tool's output will contain that information. It is structured with sections and bullet points, but conciseness is compromised due to the inclusion of extensive listing that goes beyond the tool's own functionality.

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 that the tool has an output schema (context signal), the description adequately covers the return structure and usage scenario. It explains the single parameter and provides a workflow. The inclusion of the full catalog, while not strictly necessary, adds context for understanding the tool ecosystem. Overall, it is complete enough for an agent to use the tool effectively.

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

Parameters4/5

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

The input schema has one optional parameter 'category' with no description (0% schema coverage). The description adds meaning by listing the allowed categories (user, memory, project, code_artifact, document, entity, linking) and explaining the filtering behavior. It does not specify case sensitivity or format, but the provided list is sufficient for practical use.

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's purpose: 'Discover available tools, optionally filtered by category' and explicitly distinguishes it from siblings by mentioning that the returned information is sufficient for LLMs to call tools directly without needing how_to_use. It is specific and actionable.

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 description provides a step-by-step workflow that explicitly tells when to use this tool ('1. Call discover_forgetful_tools() to see this catalog') and when to use alternatives ('2. Call execute_forgetful_tool', '3. If needed, call how_to_use_forgetful_tool'). It also explains the optional category filter, making usage context clear.

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