Skip to main content
Glama

rememb cover

Rememb MCP server

AI 에이전트는 세션 간의 모든 것을 잊어버립니다. rememb는 로컬에서 휴대 가능하며 모든 에이전트와 작동하는 영구 메모리를 제공합니다.

rememb chat demo


문제점

AI를 전문적으로 사용하는 모든 개발자는 다음과 같은 벽에 부딪힙니다:

Session 1: "We're using PostgreSQL, auth at src/auth/, prefer async patterns."
Session 2: Agent starts from zero. You explain everything again.
Session 3: Same thing.

기존 솔루션(Mem0, Zep, Letta)은 서버, API 키 및 클라우드 계정이 필요합니다. 당신은 그저 에이전트가 당신의 프로젝트를 기억하기를 원할 뿐입니다.


Related MCP server: engram-mcp

설치

pip install rememb

빠른 시작

MCP 사용 (권장)

마찰 없음. CLI 명령 없음. 네이티브 IDE 통합.

1. IDE의 MCP 설정에 추가:

{
  "mcpServers": {
    "rememb": {
      "command": "rememb",
      "args": ["mcp"]
    }
  }
}

2. IDE를 다시 시작합니다.

이제 에이전트는 세션 시작 시 자동으로 메모리를 읽고, 새로운 것을 학습할 때 기록하며, 필요할 때 검색합니다.

동일한 머신에서 여러 MCP 클라이언트가 이미 실행 중인 rememb 프로세스를 재사용하도록 하려면, 영구적인 로컬 SSE 전송을 시작하십시오:

rememb mcp --transport sse --host 127.0.0.1 --port 8765

이렇게 하면 하나의 MCP 프로세스가 유지되므로, 반복되는 클라이언트가 http://127.0.0.1:8765/sse 및 http://127.0.0.1:8765/messages/를 통해 동일한 로드된 임베딩 모델에 액세스할 수 있습니다.

stdio MCP 클라이언트 설정 내부에 --transport sse를 넣지 마십시오. stdio 클라이언트는 stdin/stdout에서 JSON-RPC를 예상합니다. SSE 모드는 HTTP 엔드포인트를 노출하므로 별도로 시작해야 합니다.

MCP 미사용

rememb rules   # Print generic rules for AI agents

출력을 편집기의 규칙 파일(.windsurfrules, .cursorrules, CLAUDE.md 등)에 복사하십시오.


작동 방식

.rememb/
  entries.json   ← structured memory (project, actions, systems, user, context)
  meta.json      ← project metadata
  config.json    ← limits, sections, TUI behavior, semantic model settings

프로젝트 내의 JSON 파일입니다. 에이전트는 모든 세션 시작 시 이를 읽습니다.

User: "We're using PostgreSQL, auth at src/auth/, async patterns"
Agent: [rememb_write] → Saved

[New session]
Agent: [rememb_read]  → Context loaded
Agent: "I see you're using PostgreSQL with auth at src/auth/..."

검색은 로컬 의미론적 임베딩을 사용합니다(API 없음, 클라우드 없음). 임베딩 모델은 기본적으로 짧은 유휴 시간 후에 언로드되므로 프로세스가 전체 모델을 영구적으로 상주시키지 않습니다.

rememb는 이제 초기화 중에 전체 구성 세트를 .rememb/config.json에 기록하므로 지원되는 모든 설정이 한 곳에 있습니다:

{
  "max_content_length": 1000000,
  "max_tag_length": 500,
  "max_tags_per_entry": 100,
  "max_entries": 100000,
  "sections": ["project", "actions", "systems", "requests", "user", "context"],
  "section_icons": {
    "project": "◈",
    "actions": "↯"
  },
  "section_colors": {
    "project": "#d84848",
    "actions": "#d08020"
  },
  "entry_batch_size": 24,
  "entry_load_threshold": 6,
  "semantic_model_idle_ttl_seconds": 15,
  "semantic_model_name": "paraphrase-MiniLM-L3-v2"
}

각 의미론적 작업 후 즉시 모델을 언로드하려면 semantic_model_idle_ttl_seconds를 0으로 설정하십시오. 더 작은 모델을 원하면 semantic_model_name을 paraphrase-MiniLM-L3-v2와 같은 다른 SentenceTransformers 모델로 전환할 수 있습니다.

entry_batch_size 및 entry_load_threshold는 TUI가 로컬 저장소에서 카드를 지연 로드하는 방식을 제어합니다.

섹션 이름은 소문자로 정규화되고, 정규화 후 중복은 무시되며, 기존 항목이 있는 섹션을 제거하면 해당 항목이 자동으로 uncategorized로 마이그레이션됩니다. meta.json은 현재 유효한 섹션 목록과 동기화된 상태로 유지됩니다.

환경 변수 재정의도 가능합니다: REMEMB_SEMANTIC_MODEL_IDLE_TTL_SECONDS 및 REMEMB_SEMANTIC_MODEL_NAME.


메모리 섹션

섹션

저장할 내용

project

기술 스택, 아키텍처, 목표

actions

수행된 작업, 결정된 사항

systems

서비스, 모듈, 통합

requests

사용자 선호도, 반복적인 요청

user

이름, 스타일, 전문 지식, 선호도

context

기타 관련 내용


TUI

rememb는 Textual로 구축된 전체 터미널 UI를 포함합니다.

rememb          # Open the TUI

기능:

  • 메모리 카드 그리드 — 섹션별로 정리된 모든 항목 탐색

  • 사이드바 탐색 — 항목 수와 함께 섹션별 필터링

  • 인라인 검색 — /를 눌러 모든 항목 검색

  • 태그 필터 — 태그 알약을 클릭하여 정확한 태그 필터링과 현재 텍스트 검색 결합

  • 사이드 패널 — 화면을 떠나지 않고 항목 생성 또는 편집

  • 전체 구성 화면 — F2를 사용하여 섹션, 섹션 아이콘, 의미론적 모델, 제한 및 지연 로딩 동작 편집

  • 동적 레이아웃 — 터미널 너비에 맞게 그리드 조정 (1~4열)

  • 키보드 단축키 — Ctrl+N 새로 만들기, Ctrl+R 새로 고침, / 검색, Q 종료

카드는 콘텐츠 미리보기와 타임스탬프를 유지하지만, 태그 렌더링은 의도적으로 제한되어 있어 태그가 많은 항목이 그리드에서 무한정 커지지 않습니다.

새로운 사용자 지정 섹션은 자동으로 무작위 색상을 얻으며 구성 화면에서 사용자 지정할 때까지 일반 아이콘으로 시작합니다.

의미론적 검색 MCP 도구는 선택적인 정확한 tag 필터도 허용하므로 IDE 클라이언트가 순위를 매기기 전에 의미론적 일치를 제한할 수 있습니다.


CLI

rememb          # Open the TUI
rememb mcp      # Start MCP server for AI agent integration over stdio
rememb mcp --transport sse --host 127.0.0.1 --port 8765   # Start one persistent local MCP process
rememb --version, -v    # Show version
rememb --help, -h       # Show help

설계

  • 로컬 우선 — 프로젝트 내의 일반 JSON 파일

  • 휴대성 — .rememb/를 어디든 복사하면 작동함

  • 애그노스틱 — 모든 에이전트, 모든 IDE(MCP 또는 CLI)

  • 종속성 없음 — 서버 없음, API 키 없음, 계정 없음


기여

git clone https://github.com/LuizEduPP/Rememb
cd rememb
pip install -e ".[dev]"

PR 환영합니다. 이슈 환영합니다. 별점 환영합니다. 🌟


라이선스

MIT

Available Tools

18 tools
rememb_clearA

Permanently delete ALL memory entries at once. Irreversible — no recovery is possible after this operation. Requires confirm=true as a safety guard. Use rememb_delete to remove a single entry by ID instead. Only use this to fully reset the memory store.

NameRequiredDescriptionDefault
storeNoMemory store id. 'global' is the ~/.rememb store. Other ids are project stores passed via repeated --project MCP args.global
confirmYesMust be true to confirm deletion

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does well: it discloses irreversibility, absence of recovery, and the confirm=true safety guard. The one gap is scope ambiguity — it says "ALL memory entries" while the schema exposes a `store` parameter, leaving unclear whether a non-global store could be wiped or preserved.

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?

Four short sentences, each doing distinct work: what it does, that it is irreversible, the guard, and the alternative. The destructive warning is front-loaded before any routing guidance.

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?

For a two-parameter destructive tool with no annotations and no output schema, the description covers the critical decision inputs: destructiveness, irreversibility, the required guard, and the alternative. Only the store-scope question is left unresolved, which is a minor but real omission for a bulk-delete operation.

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 coverage is 100%, so both `store` and `confirm` are already documented, and the description's mention of confirm=true restates the schema. It adds no meaning about the `store` parameter's effect on deletion scope, which is the one place added semantics would have helped.

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?

States a specific verb and resource with scope: "Permanently delete ALL memory entries at once." It immediately distinguishes itself from the sibling rememb_delete by naming the bulk-vs-single distinction, so an agent can route correctly without opening either schema.

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?

Explicitly names the alternative ("Use rememb_delete to remove a single entry by ID instead") and states the exclusion ("Only use this to fully reset the memory store"). Both the when and the when-not are given in plain language.

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

rememb_consolidateA

Consolidate literal duplicate entries and merge metadata (tags and access data). Exact normalized-content match only; review near-duplicates with the agent before consolidating.

NameRequiredDescriptionDefault
storeNoMemory store id. 'global' is the ~/.rememb store. Other ids are project stores passed via repeated --project MCP args.global
sectionNoOptional section filter: project, actions, systems, requests, user, context

TDQS

A3.7/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. It usefully discloses that metadata (tags, access data) gets merged and that matching is exact-content based, but it doesn't state whether the operation is destructive, whether merged-away entries can be recovered (a rememb_restore sibling exists), or what the result looks like. Partial disclosure for a mutation tool.

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?

Two tight sentences, zero redundancy, with the core action and its matching scope front-loaded ahead of the cautionary guidance.

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?

No output schema and no annotations, so the description must cover behavior. It covers scope and the review workflow but omits what happens on consolidation (which entry survives, whether duplicates are deleted or archived, reversibility). Adequate but with real gaps for a mutation tool.

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% and both parameters are enums documented in the schema (store, section). The description adds no detail beyond that, which is the expected baseline when the schema does all the work.

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 names a specific verb+resource (consolidate duplicate entries) and specifies exactly what is merged (tags and access data). It is clearly distinct from siblings like rememb_edit or rememb_delete, though it doesn't explicitly contrast itself with them.

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

Usage Guidelines4/5

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

It gives a clear applicability condition — 'exact normalized-content match only' — and an explicit exclusion plus alternative workflow: review near-duplicates with the agent before consolidating. It doesn't name a specific sibling tool to use for the near-duplicate review, but the context is unambiguous.

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

rememb_deleteA

Soft-delete one memory entry by its ID or multiple entries via entry_ids[]. Deleted entries are hidden by default from reads and search, but can be restored later. Use rememb_restore to undo a deletion. Use rememb_clear to permanently delete all entries at once.

NameRequiredDescriptionDefault
storeNoMemory store id. 'global' is the ~/.rememb store. Other ids are project stores passed via repeated --project MCP args.global
entry_idNoEntry ID to delete
entry_idsNoBatch deletion IDs.

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does well: it discloses that deletion is soft, that entries are hidden from reads/search by default, and that they remain restorable. It stops short of stating behavior for unknown IDs, partial batch failures, or idempotency of repeat deletes.

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?

Three short sentences, front-loaded with the operation and its two modes, then the soft-delete consequence, then the sibling routing. Every sentence adds information; nothing is redundant.

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?

For a 3-parameter mutation tool with no annotations and no output schema, the description covers the essential semantics: soft vs permanent, visibility impact, and restore path. Edge-case behavior (nonexistent ID, mixed batch results, whether entry_id and entry_ids can be combined) is left unaddressed.

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 entry_id, entry_ids, and store are already documented in the schema. The description only restates the two deletion paths and adds no format, limits, or precedence rules for entry_id vs entry_ids — baseline 3 applies.

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?

States a specific verb ('Soft-delete') and resource ('memory entry'), and covers both single (entry_id) and batch (entry_ids[]) modes in the first sentence. It is clearly distinguishable from rememb_restore and rememb_clear, which it names explicitly.

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?

Explicitly routes the agent: use rememb_restore to undo, use rememb_clear for permanent bulk deletion. That gives both the undo path and the alternative for the destructive-bulk case, leaving little to inference.

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

rememb_diffA

Show a unified diff between two revisions of the same entry. Safe, read-only operation.

NameRequiredDescriptionDefault
storeNoMemory store id. 'global' is the ~/.rememb store. Other ids are project stores passed via repeated --project MCP args.global
entry_idYesEntry ID (8 hex characters)
to_versionYesNewer or target version
from_versionYesOlder or source version

TDQS

A3.5/5.0
Behavior3/5

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

Annotations are absent, so the description must carry the burden; it does declare the operation safe and read-only, which is the key behavioral fact. However, it says nothing about what happens with invalid/unknown versions, whether from_version must be older, or error behavior when entry_id does not exist.

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?

Two short sentences, front-loaded with the action and return format, plus a safety qualifier. No filler and nothing is buried.

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?

The description names the output format ('unified diff') and safety profile, which is the core an agent needs; with no output schema, 'unified diff' covers the return shape. Still, for a tool with required version parameters and no annotations, edge cases and the version-ordering contract are left unstated.

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 coverage is 100% with all four parameters documented, including enum and defaults, so the baseline is 3. The description adds only the relational constraint that both versions must belong to the same entry; nothing about ordering, store scoping, or valid ranges beyond what the schema already says.

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 and resource (show a unified diff between two revisions of an entry) and names the return format. It implicitly distinguishes itself from rememb_get (full entry) and rememb_versions (version listing), though it never names those siblings explicitly.

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 'two revisions of the same entry', which suggests fetching a diff after inspecting versions, but there is no explicit when-to-use/when-not-to-use statement or reference to rememb_versions or rememb_get as alternatives.

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

rememb_editA

Update one existing memory entry by ID or multiple entries in one call via updates[]. Modifies only the fields provided (content, section, or tags) — omitted fields are unchanged. Non-destructive: entries are updated, not deleted and recreated. Use rememb_write to create new entries, rememb_delete to permanently remove them.

NameRequiredDescriptionDefault
tagsNoReplace tags
storeNoMemory store id. 'global' is the ~/.rememb store. Other ids are project stores passed via repeated --project MCP args.global
contentNoNew content
sectionNoMove to different section
updatesNoBatch update payloads. Each item requires entry_id and at least one of content, section, or tags.
entry_idNoEntry ID (8 hex characters)

TDQS

A4.2/5.0
Behavior4/5

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

No annotations exist, so the description must carry the behavioral load; it discloses the key partial-update contract (omitted fields unchanged), that the operation is non-destructive/not delete-and-recreate, and that batching exists. It does not cover batch atomicity (what happens if one updates[] item fails), store scoping, or what the call returns.

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?

Three short sentences, front-loaded with the operation and the batch capability, then behavior, then sibling routing. No filler and nothing repeated from the schema.

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?

For a 6-parameter mutation tool with no annotations and no output schema, the description covers the mutation contract and alternatives well. Gaps remain around return values/confirmation, error behavior, and the entry_id-vs-updates[] selection rule, which an agent would have to infer.

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 the schema already documents entry_id, content, section, tags, store, and updates[]. The description adds only framing (single vs batch, omitted-fields-unchanged), and stays silent on edge cases the schema leaves implicit, such as whether entry_id and updates[] are mutually exclusive or whether one must be supplied.

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?

States a specific verb (update) and resource (existing memory entry), plus the two invocation modes (single by ID, batch via updates[]). An agent can distinguish it from rememb_write/rememb_delete/rememb_restore without opening a schema.

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

Usage Guidelines4/5

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

Ends with explicit routing: use rememb_write to create, rememb_delete to permanently remove. It doesn't address other plausible overlaps (e.g. rememb_restore for reverting, or when to choose batch over repeated single calls), so it falls short of a full when/when-not mapping.

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

rememb_getA

Fetch one memory entry by ID with full content. Safe, read-only. Use after rememb_search or rememb_recent when you already know the entry ID.

NameRequiredDescriptionDefault
storeNoMemory store id. 'global' is the ~/.rememb store. Other ids are project stores passed via repeated --project MCP args.global
entry_idYesEntry ID (8 hex characters)
max_charsNoOptional mechanical cap on content characters
include_deletedNoInclude the entry even if it is soft-deleted

TDQS

A3.8/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; it does state 'Safe, read-only', which is the key safety trait. However it omits behavior for a missing/soft-deleted entry and how max_chars truncation affects 'full content', leaving meaningful gaps for a fetch tool.

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?

Three short sentences, front-loaded with purpose, then safety, then usage. Every sentence earns its place with no filler.

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?

For a single-record getter with fully documented parameters and no output schema, the description covers purpose, safety, and invocation ordering. Only soft-delete/not-found behavior and truncation semantics are left unstated.

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 store, entry_id, max_chars and include_deleted are already documented in the schema. The description adds no further parameter meaning, so the baseline of 3 applies.

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?

Specific verb+resource: 'Fetch one memory entry by ID with full content'. It distinguishes itself from the search/list siblings by naming rememb_search and rememb_recent as predecessor steps, but does not clarify how it differs from the similarly named rememb_read or rememb_read_page.

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

Usage Guidelines4/5

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

'Use after rememb_search or rememb_recent when you already know the entry ID' gives an explicit precondition and names the tools that produce the needed input. There are no explicit when-not cases (e.g., when to prefer rememb_read_page or rememb_read instead).

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

rememb_list_skillsA

List bundled rememb skills discovered from the installed package contents. Safe, read-only operation.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It correctly declares the operation as 'Safe, read-only operation', but provides no additional behavioral details such as output format or potential side effects. Transparency is adequate but minimal.

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 extremely concise with two sentences, no wasted words. The key action and safety trait are front-loaded.

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 no parameters and no output schema, the description covers the essential purpose and safety. It could elaborate on what 'bundled rememb skills' are, but it is sufficiently complete for a simple list tool.

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?

There are no parameters, so the baseline is 4. The description does not add parameter semantics, but none are needed.

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 action 'List bundled rememb skills' and specifies the source 'from the installed package contents'. It distinguishes itself from sibling tools like rememb_delete or rememb_write which are mutations.

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

Usage Guidelines4/5

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

The description implies usage by stating it's a safe, read-only list operation, but does not explicitly state when to use it over alternatives like rememb_use_skill. However, given its unique purpose among siblings, it is clear enough.

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

rememb_list_storesA

List configured memory stores for this MCP process: global (~/.rememb) plus any project stores passed via --project. Safe, read-only.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden. It explicitly states that the operation is 'Safe, read-only' and describes which stores are included, though it does not detail return format, auth requirements, or edge cases.

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 a single, front-loaded sentence that states the action, scope, and safety profile without redundant wording. Every clause contributes useful information.

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

Completeness5/5

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

For a zero-parameter, read-only listing tool with no output schema, the description provides enough context to invoke it correctly: it identifies the resource, the process-scoped set of stores, and the safety property. Nothing critical is missing for this level of complexity.

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 tool has zero parameters, so parameter semantics are inherently simple and the baseline is 4. The description adds no parameter-level detail, which is appropriate because there are no parameters to explain.

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 uses a specific verb ('List') with a specific resource ('configured memory stores'), and it clarifies the scope as global plus project stores. This is sufficiently distinct from sibling tools such as rememb_get, rememb_search, and rememb_stats.

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?

The description implies usage by explaining what stores are listed and how project stores are supplied via --project, but it does not explicitly say when to use this tool versus alternatives like rememb_stats or rememb_versions. No exclusions or selection guidance are provided.

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

rememb_list_tagsA

List tags used in the store with usage counts. Safe, read-only. Use to discover filters before rememb_search or rememb_read_page.

NameRequiredDescriptionDefault
limitNoMaximum number of tags to return
storeNoMemory store id. 'global' is the ~/.rememb store. Other ids are project stores passed via repeated --project MCP args.global
include_deletedNoInclude tags from soft-deleted entries

TDQS

A4/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 cover the critical safety profile ('Safe, read-only') plus the fact that counts are returned. However, it omits ordering, pagination behavior beyond the limit param, and how include_deleted affects the counts — meaningful gaps for an unannotated tool.

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?

Two short sentences with zero waste; the purpose and the 'read-only' assurance come before the routing advice. Nothing is padded.

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?

For a zero-required-parameter discovery tool this is close to sufficient: it says what is listed, that counts come back, that it is safe, and where it fits in the search flow. Only the shape of the returned tag objects is left implicit, which is a minor gap with no output schema available.

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%, including the store enum and the include_deleted semantics, so the baseline is 3. The description adds only the loose phrase 'in the store' and no syntax or format detail beyond the 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?

States a specific verb and resource ('List tags used in the store') and even characterizes the return content ('with usage counts'), which distinguishes it from siblings like rememb_list_stores and rememb_list_skills. An agent knows exactly what this returns without opening the schema.

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

Usage Guidelines4/5

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

Explicitly names the workflow position and the alternatives it feeds ('Use to discover filters before rememb_search or rememb_read_page'). It lacks an explicit when-not-to-use clause, but the use case is unambiguous for this store.

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

rememb_readA

Read all memory entries or filter by section. Safe, read-only operation with no side effects. Returns full entry content; summarize task-relevant facts in your working context after large reads.

NameRequiredDescriptionDefault
storeNoMemory store id. 'global' is the ~/.rememb store. Other ids are project stores passed via repeated --project MCP args.global
sectionNoFilter by section: project, actions, systems, requests, user, context
max_charsNoOptional mechanical cap on content characters per entry
include_deletedNoInclude soft-deleted entries in the response

TDQS

A3.7/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden, and it does well: it declares read-only/side-effect-free behavior and states it returns full entry content. It omits pagination behavior and how include_deleted interacts with results, keeping it short of a 5.

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?

Three short sentences with the core purpose front-loaded and no filler. Minor overlap between the opening verb phrase and the tool name, but nothing wasted.

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?

With no output schema and full schema coverage, the remaining burden is behavioral: safety and return shape are covered, and the large-read guidance is a useful extra. Only pagination/large-result handling and deleted-entry semantics are left implicit.

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 all four parameters are already documented in the schema, including the section enum and the max_chars cap. The description only restates section filtering and adds no extra semantics such as max_chars interaction with truncation or store selection beyond 'global'.

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 ('Read') and resource ('memory entries') plus the primary scoping mechanism ('filter by section'). An agent can infer it is the collection-level reader rather than the single-item rememb_get, though no sibling is named explicitly.

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?

Implies usage ('read all ... or filter by section') but gives no explicit when-to-use/when-not guidance versus rememb_get, rememb_search, or rememb_recent, which are the natural alternatives for this tool. The closing advice about summarizing after large reads is the only contextual guidance.

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

rememb_read_pageB

Read a paginated slice of entries with optional section or tag filtering. Returns full entry content; summarize task-relevant facts in your working context after each page.

NameRequiredDescriptionDefault
tagNoOptional exact tag filter applied before pagination
limitNoMaximum entries to return
storeNoMemory store id. 'global' is the ~/.rememb store. Other ids are project stores passed via repeated --project MCP args.global
offsetNoZero-based page offset
sectionNoOptional section filter: project, actions, systems, requests, user, context
sort_byNoSort order before paginationstorage
max_charsNoOptional mechanical cap on content characters per entry
descendingNoReverse the selected sort order
include_deletedNoInclude soft-deleted entries in the response

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; it does disclose that full entry content is returned and gives a useful working-context hint about summarizing per page. It is silent on ordering semantics, soft-deleted entries (include_deleted), and the max_chars truncation behavior, which matter for an agent interpreting results.

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?

Two tight sentences, front-loaded with the core action and followed by the return/context-handling note. No filler, though the second clause is advisory rather than definitional.

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?

No output schema and no annotations, with 9 parameters, so the description should carry more weight than it does. It covers the return shape at a high level but leaves sort order, deletion inclusion, and multi-store behavior to the schema alone.

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 every parameter including store, sort_by, max_chars, and include_deleted is already documented. The description only echoes section/tag filtering and pagination, adding no syntax or precedence detail beyond the schema; baseline 3 applies.

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 and resource ('Read a paginated slice of entries') plus the two filtering axes, so the agent knows exactly what the call yields. It does not differentiate itself from close siblings such as rememb_read, rememb_recent, or rememb_search, leaving the boundary ambiguous.

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?

Pagination and filtering imply the usage (walk a large entry set page by page), but the description never says when to prefer this over rememb_read, rememb_recent, or rememb_search, nor any preconditions. Guidance is inferable rather than stated.

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

rememb_recentA

Return recently updated entries, newest first. Safe, read-only. Useful for catching up on what changed since the last session.

NameRequiredDescriptionDefault
limitNoMaximum number of entries to return
storeNoMemory store id. 'global' is the ~/.rememb store. Other ids are project stores passed via repeated --project MCP args.global
sectionNoOptional section filter: project, actions, systems, requests, user, context
max_charsNoOptional mechanical cap on content characters per entry
include_deletedNoInclude soft-deleted entries

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description does carry the safety burden by declaring 'Safe, read-only', and it discloses the newest-first ordering. However, it says nothing about whether soft-deleted entries are excluded by default, how max_chars truncation behaves, or how results are paginated, leaving real behavioral gaps for a zero-annotation tool.

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?

Three short sentences with the core behavior front-loaded and zero padding. Safety and usage each get one clause, so every sentence earns its place.

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?

For a zero-required-param read tool with no output schema, the description covers purpose, safety, ordering, and a use case adequately. Minor gaps remain around deleted-entry defaults and truncation semantics, but nothing blocks a correct call.

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 all five parameters (limit, store, section, max_chars, include_deleted) are already documented in the schema. The description adds only the ordering claim, not parameter meaning, so the baseline 3 applies.

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+resource ('Return recently updated entries') plus the sort order ('newest first'), which cleanly separates it from rememb_read, rememb_search, and rememb_list_tags. It does not explicitly name any sibling, so the differentiation is inferential rather than stated.

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?

'Useful for catching up on what changed since the last session' implies a scenario, but there is no explicit when-not guidance and no routing to alternatives such as rememb_search for keyword lookup or rememb_read for a known entry. Usage is implied, not prescribed.

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

rememb_restoreA

Restore a soft-deleted entry, or restore a specific prior version as the new current head. Restores are non-destructive: they append a new head revision rather than rewriting history.

NameRequiredDescriptionDefault
storeNoMemory store id. 'global' is the ~/.rememb store. Other ids are project stores passed via repeated --project MCP args.global
versionNoOptional historical version to restore. If omitted, restores the current soft-deleted entry.
entry_idYesEntry ID (8 hex characters)

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations at all, the description carries the full burden, and it delivers the single most important behavioral fact: restores are non-destructive because they append a new head revision rather than rewriting history. It stops short of error conditions, permission requirements, or what happens when version points at a non-existent revision.

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?

Two sentences, no filler. The core action and its two modes come first, and the non-destructive guarantee follows immediately — exactly the front-loading an agent needs.

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?

For a 3-parameter mutation tool with no annotations and no output schema, the description covers purpose, both modes, and the key safety property. It leaves gaps around failure behavior and what a restore returns, but nothing an agent needs to invoke it correctly is missing.

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%, and the schema already explains entry_id, store, and the optional version parameter, so the description need not duplicate it. The description restates the dual version behavior, which reinforces but adds no syntax or format detail beyond the schema; baseline 3 applies.

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 names a specific verb and resource ('Restore a soft-deleted entry') and adds a second distinct mode ('restore a specific prior version as the new current head'), so an agent knows exactly what the tool does. It doesn't explicitly name a sibling such as rememb_versions or rememb_edit as the alternative for a non-restore path, which keeps it just short of a 5.

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 rather than stated: restoring deleted entries or rolling back to a prior version. There is no explicit 'use this instead of rememb_edit when…' guidance, and no mention of what to do if the entry is not soft-deleted or the version does not exist.

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

rememb_statsA

Return memory usage statistics: total entries, size in KB, oldest and newest entry dates, and count per section. Safe, read-only operation with no side effects. Use to give the user an overview of their memory store or to decide if cleanup is needed.

NameRequiredDescriptionDefault
storeNoMemory store id. 'global' is the ~/.rememb store. Other ids are project stores passed via repeated --project MCP args.global

TDQS

A3.8/5.0
Behavior3/5

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

No annotations exist, so the description carries the full behavioral burden; it does declare 'safe, read-only operation with no side effects' and enumerates the return fields, which is meaningful disclosure. It omits cost/performance, whether the store must already exist, and any pagination or truncation behavior for large stores.

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?

Two sentences, front-loaded with the concrete metrics and followed by purpose. Minor redundancy between 'safe, read-only' and 'no side effects', but nothing wasteful or padded.

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

Completeness5/5

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

For a zero-required-parameter stats tool with no output schema, the description names exactly which statistics come back and when to reach for it. Nothing an agent needs in order to call this correctly is missing.

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?

Only one optional parameter and schema coverage is 100%, with the schema fully explaining 'global' vs project store ids. The description adds nothing about the store parameter (e.g. whether stats are scoped strictly to that store), so the baseline 3 applies.

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?

Specific verb (return) plus resource (memory usage statistics) with the returned metrics enumerated: totals, size in KB, oldest/newest dates, per-section counts. That distinguishes it from list/read siblings such as rememb_list_stores or rememb_recent, though no sibling is named explicitly.

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

Usage Guidelines4/5

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

Gives two concrete use cases: overview of the user's memory store and deciding whether cleanup is needed. It does not state when not to use it or name an alternative (e.g. rememb_list_stores for enumerating stores or rememb_clear for cleanup), so routing is clear but not exhaustive.

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

rememb_use_skillA

Load one bundled rememb skill by identifier or exact declared name and return its instructions. Safe, read-only operation. Use rememb_list_skills first to inspect available skills.

NameRequiredDescriptionDefault
skillYesSkill identifier (directory name) or exact declared skill name

TDQS

A4.2/5.0
Behavior4/5

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

Explicitly declares 'Safe, read-only operation' in the absence of annotations, disclosing its non-destructive nature. Adds that it returns instructions, providing clear behavioral context.

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?

Two sentences, no fluff. First sentence states purpose and behavior, second gives usage guidance. Every word adds value.

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?

For a simple tool with one parameter and no output schema, the description is sufficiently complete. It could mention the return format of instructions, but not required.

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 coverage is 100%, so baseline is 3. The description adds no new information beyond what the schema already provides (skill identifier or exact name).

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 states the specific action 'load' on a 'bundled rememb skill' and distinguishes between identifier and exact name. It clearly differentiates from sibling tools like rememb_list_skills, which inspects skills.

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

Usage Guidelines4/5

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

Provides explicit guidance to use 'rememb_list_skills first to inspect available skills', indicating when this tool should be used. Missing explicit exclusions but sufficient for the task.

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

rememb_versionsB

List all revisions known for an entry, including prior content snapshots and deleted states when requested. Safe, read-only operation.

NameRequiredDescriptionDefault
storeNoMemory store id. 'global' is the ~/.rememb store. Other ids are project stores passed via repeated --project MCP args.global
entry_idYesEntry ID (8 hex characters)
include_deletedNoKeep deleted revisions visible when the current entry is soft-deleted

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description carries the behavioral burden and does disclose that the operation is safe and read-only. It also indicates that deleted revisions can be included, but it omits permissions, pagination, ordering, and response-shape details.

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?

Two sentences, front-loaded with the core action and followed by the read-only safety note. There is no redundant or wasted text.

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?

For a simple read-only history-listing tool with fully described parameters, the description covers what is returned conceptually: revisions, snapshots, and optionally deleted states. It could be more complete about ordering or pagination, but no output schema exists to carry that burden.

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 the schema already documents entry_id, store, and include_deleted clearly. The description reinforces the deleted-state behavior but adds little parameter meaning beyond the schema.

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: list revisions for a given entry, including prior content snapshots and deleted states. It is clear enough to distinguish it from current-entry reads such as rememb_get, though it does not explicitly name alternatives like rememb_diff or rememb_restore.

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

Usage Guidelines2/5

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

It does not explain when to choose this tool over siblings such as rememb_get, rememb_diff, or rememb_restore. The phrase 'when requested' describes the include_deleted parameter rather than offering tool-selection guidance.

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

rememb_writeA

Save a new memory entry or multiple entries in one call. Existing entries are never overwritten. Use rememb_edit to update an existing entry by ID.

NameRequiredDescriptionDefault
tagsNoTags to categorize this entry
storeNoMemory store id. 'global' is the ~/.rememb store. Other ids are project stores passed via repeated --project MCP args.global
contentNoContent to remember (1-3 sentences)
entriesNoBatch write payloads. Each item accepts content and optional section/tags.
sectionNoSection: project, actions, systems, requests, user, contextcontext

TDQS

A3.9/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 behavioral burden, and it does disclose one genuinely non-obvious trait: existing entries are never overwritten (append-only, no upsert). It says nothing about what a successful write returns (e.g. IDs needed for a later rememb_edit), whether writes are deduplicated, or any persistence/confirmation behavior.

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?

Three short sentences, front-loaded with what it does, then the non-overwrite guarantee, then the alternative. Nothing is redundant or padded.

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 5-parameter mutation tool with zero annotation coverage and no output schema, the description is minimally sufficient but leaves real gaps: no return-value indication, no guidance on the content-vs-entries choice, and no explanation of how 'store' or 'section' defaults should be chosen despite the schema requiring nothing.

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 the baseline is 3, and the description adds only a thin gloss on the batch shape via 'or multiple entries in one call'. It does not address the more consequential ambiguity the schema leaves open: both 'content' and 'entries' are optional with no stated mutual exclusivity or precedence.

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?

States a specific verb ('Save') plus resource ('memory entry') and explicitly covers both the single and batch form. It also names the sibling it is not (rememb_edit), so an agent can distinguish it from the update path without opening a schema.

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

Usage Guidelines4/5

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

Gives an explicit routing rule: use rememb_edit to update an existing entry by ID, which is exactly the decision this tool's callers face. It does not cover the other plausible boundary cases, such as when to send a batch via 'entries' versus repeated single calls, or when rememb_consolidate is the right tool instead.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 17 tool updatesv0.4.20
    • Changedrememb_clear1 field changed
      • addedInput schema / properties / store
        Added value: +{
        +  "default": "global",
        +  "description": "Memory store id. 'global' is the ~/.rememb store. Other ids are project stores passed via repeated --project MCP args.",
        +  "enum": [
        +    "global"
        +  ],
        +  "type": "string"
        +}
    • Changedrememb_consolidate3 fields changed
      • removedInput schema / properties / mode
        Removed value: -{
        -  "default": "exact",
        -  "description": "Consolidation mode: exact (normalized content) or semantic (similarity threshold)",
        -  "enum": [
        -    "exact",
        -    "semantic"
        -  ],
        -  "type": "string"
        -}
      • removedInput schema / properties / similarity_threshold
        Removed value: -{
        -  "default": 0.88,
        -  "description": "Cosine similarity threshold used when mode is semantic (>0 and <=1)",
        -  "type": "number"
        -}
      • addedInput schema / properties / store
        Added value: +{
        +  "default": "global",
        +  "description": "Memory store id. 'global' is the ~/.rememb store. Other ids are project stores passed via repeated --project MCP args.",
        +  "enum": [
        +    "global"
        +  ],
        +  "type": "string"
        +}
    • Changedrememb_delete3 fields changed
      • addedInput schema / properties / entry_ids
        Added value: +{
        +  "description": "Batch deletion IDs.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / store
        Added value: +{
        +  "default": "global",
        +  "description": "Memory store id. 'global' is the ~/.rememb store. Other ids are project stores passed via repeated --project MCP args.",
        +  "enum": [
        +    "global"
        +  ],
        +  "type": "string"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "entry_id"
        -]
    • Addedrememb_diff
    • Changedrememb_edit3 fields changed
      • addedInput schema / properties / store
        Added value: +{
        +  "default": "global",
        +  "description": "Memory store id. 'global' is the ~/.rememb store. Other ids are project stores passed via repeated --project MCP args.",
        +  "enum": [
        +    "global"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / updates
        Added value: +{
        +  "description": "Batch update payloads. Each item requires entry_id and at least one of content, section, or tags.",
        +  "items": {
        +    "properties": {
        +      "content": {
        +        "description": "New content",
        +        "type": "string"
        +      },
        +      "entry_id": {
        +        "description": "Entry ID (8 hex characters)",
        +        "type": "string"
        +      },
        +      "section": {
        +        "description": "Move to different section",
        +        "enum": [
        +          "project",
        +          "actions",
        +          "systems",
        +          "requests",
        +          "user",
        +          "context"
        +        ],
        +        "type": "string"
        +      },
        +      "tags": {
        +        "description": "Replace tags",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "entry_id"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "entry_id"
        -]
    • Addedrememb_get
    • Removedrememb_init
    • Addedrememb_list_stores
    • Addedrememb_list_tags
    • Changedrememb_read4 fields changed
      • addedInput schema / properties / include_deleted
        Added value: +{
        +  "default": false,
        +  "description": "Include soft-deleted entries in the response",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / max_chars / description
        Previous value: -"Maximum characters of content to include per entry"New value: +"Optional mechanical cap on content characters per entry"
      • addedInput schema / properties / store
        Added value: +{
        +  "default": "global",
        +  "description": "Memory store id. 'global' is the ~/.rememb store. Other ids are project stores passed via repeated --project MCP args.",
        +  "enum": [
        +    "global"
        +  ],
        +  "type": "string"
        +}
      • removedInput schema / properties / summary_only
        Removed value: -{
        -  "default": false,
        -  "description": "Render a compact one-line summary per entry",
        -  "type": "boolean"
        -}
    • Changedrememb_read_page4 fields changed
      • addedInput schema / properties / include_deleted
        Added value: +{
        +  "default": false,
        +  "description": "Include soft-deleted entries in the response",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / max_chars / description
        Previous value: -"Maximum characters of content to include per entry"New value: +"Optional mechanical cap on content characters per entry"
      • addedInput schema / properties / store
        Added value: +{
        +  "default": "global",
        +  "description": "Memory store id. 'global' is the ~/.rememb store. Other ids are project stores passed via repeated --project MCP args.",
        +  "enum": [
        +    "global"
        +  ],
        +  "type": "string"
        +}
      • removedInput schema / properties / summary_only
        Removed value: -{
        -  "default": true,
        -  "description": "Render a compact one-line summary per entry",
        -  "type": "boolean"
        -}
    • Addedrememb_recent
    • Addedrememb_restore
    • Changedrememb_search6 fields changed
      • addedInput schema / properties / include_deleted
        Added value: +{
        +  "default": false,
        +  "description": "Include soft-deleted entries in the search corpus and results",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / max_chars / description
        Previous value: -"Maximum characters of content to include per entry"New value: +"Excerpt length per entry. Default 160. 0 returns the full body."
      • changedInput schema / properties / query / description
        Previous value: -"Search query - natural language or keywords"New value: +"Search query - keywords or short phrases"
      • addedInput schema / properties / store
        Added value: +{
        +  "default": "global",
        +  "description": "Memory store id. 'global' is the ~/.rememb store. Other ids are project stores passed via repeated --project MCP args.",
        +  "enum": [
        +    "global"
        +  ],
        +  "type": "string"
        +}
      • removedInput schema / properties / summary_only
        Removed value: -{
        -  "default": true,
        -  "description": "Render a compact one-line summary per entry",
        -  "type": "boolean"
        -}
      • changedInput schema / properties / tag / description
        Previous value: -"Optional exact tag filter applied before semantic search"New value: +"Optional exact tag filter applied before keyword search"
    • Changedrememb_stats1 field changed
      • addedInput schema / properties / store
        Added value: +{
        +  "default": "global",
        +  "description": "Memory store id. 'global' is the ~/.rememb store. Other ids are project stores passed via repeated --project MCP args.",
        +  "enum": [
        +    "global"
        +  ],
        +  "type": "string"
        +}
    • Addedrememb_versions
    • Changedrememb_write4 fields changed
      • addedInput schema / properties / entries
        Added value: +{
        +  "description": "Batch write payloads. Each item accepts content and optional section/tags.",
        +  "items": {
        +    "properties": {
        +      "content": {
        +        "description": "Content to remember (1-3 sentences)",
        +        "type": "string"
        +      },
        +      "section": {
        +        "description": "Section: project, actions, systems, requests, user, context",
        +        "enum": [
        +          "project",
        +          "actions",
        +          "systems",
        +          "requests",
        +          "user",
        +          "context"
        +        ],
        +        "type": "string"
        +      },
        +      "tags": {
        +        "description": "Tags to categorize this entry",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "content"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • removedInput schema / properties / semantic_scope
        Removed value: -{
        -  "default": "global",
        -  "description": "Semantic duplicate guard scope: global (all sections) or section (target section only)",
        -  "enum": [
        -    "global",
        -    "section"
        -  ],
        -  "type": "string"
        -}
      • addedInput schema / properties / store
        Added value: +{
        +  "default": "global",
        +  "description": "Memory store id. 'global' is the ~/.rememb store. Other ids are project stores passed via repeated --project MCP args.",
        +  "enum": [
        +    "global"
        +  ],
        +  "type": "string"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "content"
        -]
  2. 7 tool updatesv0.4.11
    • Addedrememb_consolidate
    • Addedrememb_list_skills
    • Changedrememb_read2 fields changed
      • addedInput schema / properties / max_chars
        Added value: +{
        +  "description": "Maximum characters of content to include per entry",
        +  "type": "integer"
        +}
      • addedInput schema / properties / summary_only
        Added value: +{
        +  "default": false,
        +  "description": "Render a compact one-line summary per entry",
        +  "type": "boolean"
        +}
    • Addedrememb_read_page
    • Changedrememb_search4 fields changed
      • addedInput schema / properties / max_chars
        Added value: +{
        +  "description": "Maximum characters of content to include per entry",
        +  "type": "integer"
        +}
      • addedInput schema / properties / section
        Added value: +{
        +  "description": "Optional section filter: project, actions, systems, requests, user, context",
        +  "enum": [
        +    "project",
        +    "actions",
        +    "systems",
        +    "requests",
        +    "user",
        +    "context"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / summary_only
        Added value: +{
        +  "default": true,
        +  "description": "Render a compact one-line summary per entry",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / tag
        Added value: +{
        +  "description": "Optional exact tag filter applied before semantic search",
        +  "type": "string"
        +}
    • Addedrememb_use_skill
    • Changedrememb_write1 field changed
      • addedInput schema / properties / semantic_scope
        Added value: +{
        +  "default": "global",
        +  "description": "Semantic duplicate guard scope: global (all sections) or section (target section only)",
        +  "enum": [
        +    "global",
        +    "section"
        +  ],
        +  "type": "string"
        +}
  3. 1 tool updatev0.1.2
    • Addedrememb_stats
  4. 7 tool updatesv0.1.0
    • First observedrememb_clear
    • First observedrememb_delete
    • First observedrememb_edit
    • First observedrememb_init
    • First observedrememb_read
    • First observedrememb_search
    • First observedrememb_write

TDQS

A3.8/5.0

Scored across 18 tools

Disambiguation4/5

Core entry operations are clearly separated: write/create, edit/update, delete/soft-delete, restore, clear, get, search, recent, and versions/diff each target distinct intents. The main overlap is between rememb_read and rememb_read_page, which both return full entry content and differ only by pagination/filtering; search/recent/get are distinguishable by description.

Naming Consistency4/5

All tools consistently use the rememb_ prefix and mostly follow a verb or verb_noun pattern such as list_stores, get, search, write, edit, delete, restore, and read_page. A few names are noun/adjective-based (versions, recent, stats) rather than strict verbs, but the overall convention remains readable and predictable.

Tool Count3/5

At 18 tools the surface is borderline heavy for a memory store, with several overlapping read/list variants (read, read_page, recent, search, get) plus auxiliary skill and store-management tools. Each tool has a plausible purpose, but some read variants could likely be consolidated to reduce selection burden.

Completeness5/5

The memory lifecycle is well covered: create, read, search, update, soft-delete, restore, permanent clear, revisions, diffing, tagging, statistics, store listing, consolidation, and skill discovery/loading. No obvious CRUD or lifecycle gaps remain for the stated domain.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Persistent semantic memory for AI agents. SQLite-backed, local-first, zero config. Semantic search via Ollama embeddings with keyword fallback. Tools: remember, recall, history, forget, stats.
    17
    37 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Lightweight persistent memory for AI agents using a single SQLite file with hybrid search (keywords + semantics). Zero to 12MB install, no cloud or server required.
    7
    MIT