Skip to main content
Glama

memory_add_source

Store raw evidence as text or an allowed file path in PMI's long-term memory, detect duplicates, and version changed documents. Add a URL to preserve stable origin metadata for web or Notion pages.

Instructions

Store raw evidence (text, or a file path inside the allowed import roots). Duplicates are detected; a changed document with the same origin_key becomes a new version. Pass url for web/Notion pages you fetched: it is kept as metadata and gives a stable origin_key (notion: for Notion links). kind: document|note|conversation|agent_output. trust: external (default) or agent.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "memory_add_source"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlNo
kindNodocument
pathNo
textNo
titleNo
trustNoexternal
extractNo
metadataNo
origin_keyNo
source_timeNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden and does disclose duplicate detection, versioning on the same `origin_key`, and stable origin keys for URLs. It still omits important behavior such as import-root restrictions, precedence between `text` and `path`, and what happens when a duplicate is supplied.

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

Conciseness5/5

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

The description is front-loaded with the core action and is free of filler. Enumerated values for `kind` and `trust` are inlined efficiently, and each sentence contributes useful information.

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

Completeness2/5

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

For a 10-parameter tool with no required parameters, no annotations, and 0% schema description coverage, the description is incomplete. It covers the core text/path/url flow but omits several parameters and does not explain precedence or import-root constraints.

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 0%, so the description must compensate. It adds meaning for `text`, `path`, `url`, `kind`, `trust`, and `origin_key`, but leaves `title`, `extract`, `metadata`, and `source_time` undocumented.

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?

The description states a specific verb and resource: "Store raw evidence" as text or an allowed file path. It is clear what the tool does, but it does not explicitly contrast with siblings such as memory_search or memory_get.

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?

It gives useful implied guidance for adding evidence and says when to pass `url` for web/Notion pages. However, it does not state when to use this tool versus alternatives or when not to use it.

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