Skip to main content
Glama

forget_facts

Destructive

Permanently delete recall(source)'s record_ids; check deleted_count. Key remains; dependents may change/become UNKNOWN.

Input Schema

NameRequiredDescriptionDefault
rule_idsNoSaved definition IDs.
proof_idsNoSaved definition IDs.
record_idsNomr_ answer keys from recall(source).
computation_idsNoSaved definition IDs.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / record_ids / description
      Previous value: -"Copy mr_ answer keys from recall(source)."New value: +"mr_ answer keys from recall(source)."
  2. Changed5 schema fields changed
    • addedInput schema / properties / computation_ids / description
      Added value: +"Saved definition IDs."
    • removedInput schema / properties / fact
      Removed value: -{
      -  "additionalProperties": true,
      -  "description": "Exact old values; retrieve first if missing.",
      -  "properties": {
      -    "relation": {
      -      "minLength": 1,
      -      "type": "string"
      -    },
      -    "source": {
      -      "minLength": 1,
      -      "type": "string"
      -    },
      -    "target": {
      -      "minLength": 1,
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "source",
      -    "relation",
      -    "target"
      -  ],
      -  "type": "object"
      -}
    • addedInput schema / properties / proof_ids / description
      Added value: +"Saved definition IDs."
    • addedInput schema / properties / record_ids
      Added value: +{
      +  "description": "Copy mr_ answer keys from recall(source).",
      +  "items": {
      +    "type": "string"
      +  },
      +  "minItems": 1,
      +  "type": "array"
      +}
    • addedInput schema / properties / rule_ids / description
      Added value: +"Saved definition IDs."
  3. Changed12 schema fields changed
    • changedInput schema / additionalProperties
      Previous value: -falseNew value: +true
    • removedInput schema / properties / batch_id
      Removed value: -{
      -  "maxLength": 200,
      -  "minLength": 1,
      -  "type": "string"
      -}
    • removedInput schema / properties / client_record_ids
      Removed value: -{
      -  "items": {
      -    "maxLength": 200,
      -    "minLength": 1,
      -    "type": "string"
      -  },
      -  "maxItems": 10000,
      -  "minItems": 1,
      -  "type": "array"
      -}
    • removedInput schema / properties / computation_ids / items / maxLength
      Removed value: -100
    • removedInput schema / properties / computation_ids / items / minLength
      Removed value: -1
    • addedInput schema / properties / fact
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Exact old values; retrieve first if missing.",
      +  "properties": {
      +    "relation": {
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "source": {
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "target": {
      +      "minLength": 1,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "source",
      +    "relation",
      +    "target"
      +  ],
      +  "type": "object"
      +}
    • removedInput schema / properties / proof_ids / items / maxLength
      Removed value: -100
    • removedInput schema / properties / proof_ids / items / minLength
      Removed value: -1
    • removedInput schema / properties / record_ids
      Removed value: -{
      -  "items": {
      -    "maxLength": 200,
      -    "minLength": 1,
      -    "type": "string"
      -  },
      -  "maxItems": 10000,
      -  "minItems": 1,
      -  "type": "array"
      -}
    • removedInput schema / properties / relations
      Removed value: -{
      -  "items": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "context": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "domain_id": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "qualifiers": {
      -            "description": "Conditions: JSON scalars/lists, no nested objects.",
      -            "maxProperties": 64,
      -            "type": "object"
      -          },
      -          "scope": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "subdomain_id": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "subject_version": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "type": "string"
      -          }
      -        },
      -        "required": [],
      -        "type": "object"
      -      },
      -      "entity_id": {
      -        "description": "Canonical subject ID across evidence sources.",
      -        "maxLength": 200,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "evidence_source": {
      -        "description": "Evidence label, not subject identity.",
      -        "maxLength": 200,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "polarity": {
      -        "enum": [
      -          1,
      -          -1
      -        ],
      -        "type": "integer"
      -      },
      -      "position": {
      -        "maximum": 1000000,
      -        "minimum": 0,
      -        "type": "integer"
      -      },
      -      "property_type": {
      -        "enum": [
      -          "single",
      -          "set",
      -          "ordered",
      -          "rules"
      -        ],
      -        "type": "string"
      -      },
      -      "relation": {
      -        "description": "Property; custom properties default to single-valued.",
      -        "maxLength": 200,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "source": {
      -        "description": "Subject name/ID.",
      -        "maxLength": 10000,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "target": {
      -        "description": "Value/object, distinct from source.",
      -        "maxLength": 10000,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "validity": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "kind": {
      -            "enum": [
      -              "persistent",
      -              "interval"
      -            ],
      -            "type": "string"
      -          },
      -          "observed_at": {
      -            "maxLength": 100,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "recorded_at": {
      -            "maxLength": 100,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "valid_from": {
      -            "maxLength": 100,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "valid_to": {
      -            "maxLength": 100,
      -            "minLength": 1,
      -            "type": "string"
      -          }
      -        },
      -        "required": [],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "source",
      -      "relation",
      -      "target"
      -    ],
      -    "type": "object"
      -  },
      -  "maxItems": 10000,
      -  "minItems": 1,
      -  "type": "array"
      -}
    • removedInput schema / properties / rule_ids / items / maxLength
      Removed value: -100
    • removedInput schema / properties / rule_ids / items / minLength
      Removed value: -1
  4. Changed11 schema fields changed
    • addedInput schema / properties / computation_ids
      Added value: +{
      +  "items": {
      +    "maxLength": 100,
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  "minItems": 1,
      +  "type": "array"
      +}
    • addedInput schema / properties / proof_ids
      Added value: +{
      +  "items": {
      +    "maxLength": 100,
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  "minItems": 1,
      +  "type": "array"
      +}
    • changedInput schema / properties / relations / items / properties / context / properties / qualifiers / description
      Previous value: -"Conditions accepted by normalize_context: JSON scalars or lists, no nested objects."New value: +"Conditions: JSON scalars/lists, no nested objects."
    • addedInput schema / properties / relations / items / properties / entity_id
      Added value: +{
      +  "description": "Canonical subject ID across evidence sources.",
      +  "maxLength": 200,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / relations / items / properties / evidence_source
      Added value: +{
      +  "description": "Evidence label, not subject identity.",
      +  "maxLength": 200,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / relations / items / properties / position
      Added value: +{
      +  "maximum": 1000000,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / relations / items / properties / property_type
      Added value: +{
      +  "enum": [
      +    "single",
      +    "set",
      +    "ordered",
      +    "rules"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / relations / items / properties / relation / description
      Previous value: -"Property such as status; custom properties are single-valued by default."New value: +"Property; custom properties default to single-valued."
    • changedInput schema / properties / relations / items / properties / source / description
      Previous value: -"Stable subject name or ID. Prefer short names shared with queries."New value: +"Subject name/ID."
    • changedInput schema / properties / relations / items / properties / target / description
      Previous value: -"Value or object, different from source."New value: +"Value/object, distinct from source."
    • addedInput schema / properties / rule_ids
      Added value: +{
      +  "items": {
      +    "maxLength": 100,
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  "minItems": 1,
      +  "type": "array"
      +}
  5. First observed

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, so the description is not carrying the safety burden alone. It does add real value by disclosing cascade behavior ('Key remains; dependents may change/become UNKNOWN') and pointing at deleted_count as a verification field, but it says nothing about permissions, partial failures, or what happens to the three other ID categories.

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

Conciseness4/5

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

Extremely compact and front-loaded: the destructive action, the required verification step, and the cascade caveat come in order. It is dense to the point of being cryptic ('recall(source)'), but no clause is wasted.

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

Completeness3/5

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

For a destructive tool with four mutually exclusive ID families (maxProperties=1, minProperties=1), the description never says only one category may be supplied per call, and it doesn't explain the differing semantics of deleting rule_ids, proof_ids or computation_ids. Cascade effects are covered, but the one-of constraint that determines whether a call validates at all is not.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline 3 applies. The description adds the provenance of record_ids ('from recall(source)'), but rule_ids, proof_ids and computation_ids are only documented in the schema, and their descriptions are identical boilerplate ('Saved definition IDs'), so the description adds nothing for them.

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

Purpose4/5

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

States a specific verb ('Permanently delete') and a specific resource (record_ids obtained from recall(source)), which lets an agent distinguish it from correct_fact or remember_facts. It doesn't name those siblings explicitly, so the differentiation is inferential rather than explicit.

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

Usage Guidelines3/5

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

Usage is implied by the reference to 'recall(source)'s record_ids' – recall first, then forget – and 'check deleted_count' gives post-call guidance. However, there is no statement of when to use forget versus correct_fact for amending a fact, and no warnings about prerequisites.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources