Skip to main content
Glama
ululazmi18
by ululazmi18

๐Ÿง  Agent Memory Engine

CI / Quality Gate Python Version MCP Protocol License: MIT Zero Cloud Leak Token Reduction

Deterministic High-Density Memory Engine & Autonomous Model Context Protocol (MCP) Server for AI Coding Agents.
Eliminate raw code scanning token waste through instant SQLite FTS5 search, exact line referencing (#Lstart-Lend), AST code mapping, and the 6-Pillar High-Density Knowledge Contract.

โšก 60-Second Quickstart โ€ข ๐Ÿ“Š Executive Pitch & ROI โ€ข ๐Ÿ—๏ธ Architecture โ€ข ๐Ÿ”Œ MCP Integrations โ€ข ๐Ÿ’ก Python API โ€ข โ“ FAQ โ€ข ๐Ÿ‡ฎ๐Ÿ‡ฉ Panduan Bahasa Indonesia


๐Ÿ“Š Executive Summary & ROI (Why CEOs & CTOs Care)

Every modern software engineering team is deploying AI coding agents (Google Antigravity, Claude Code, Cursor, Windsurf, Roo Code). However, context window bloat is crippling agent velocity and inflating LLM API budgets:

Traditional AI Coding Agents:
  Prompt -> Broad directory scan -> Read 20+ raw files -> 45,000+ tokens consumed ($0.45 - $1.50 / query)
  Latency: 35s - 60s | Accuracy: Vulnerable to hallucinated line numbers & lost-in-the-middle context

With Agent Memory Engine:
  Prompt -> Instant SQLite FTS5 + AST Card -> Exact #Lstart-Lend -> 850 tokens consumed ($0.008 / query)
  Latency: < 0.8s | Accuracy: 100% deterministic, zero hallucinations, zero cloud leaks

๐Ÿ† Empirical Benchmark Comparison

Metric

Traditional File Scraping (cat / view_file)

Cloud Vector RAG (Embeddings / Pinecone)

๐Ÿง  Agent Memory Engine (SQLite + AST)

Token Consumption

30,000 โ€“ 80,000 tokens / prompt

4,000 โ€“ 12,000 tokens / prompt

400 โ€“ 1,200 tokens / prompt (85-95% savings)

Retrieval Latency

15s โ€“ 45s (disk I/O + buffer limits)

1.5s โ€“ 4.0s (network + embedding calls)

< 0.01s (Local SQLite FTS5 index)

Line-Level Precision

Low (dumps full files or broad chunks)

Fuzzy (approximate similarity chunks)

100% Deterministic (#Lstart-Lend exact lines)

Hallucination Risk

High (context overflow / lost in middle)

Medium (semantic drift / false positive)

Zero (grounded directly in static AST)

Cloud Privacy

Depends on LLM provider

โš ๏ธ Code sent to external embedding APIs

๐Ÿ”’ 100% Local (Zero Cloud Leak Guarantee)

Infrastructure Cost

$0 (High LLM API token bills)

$50 - $500 / month (Vector DB + API)

$0 (Embedded SQLite WAL, pure standard lib)


Related MCP server: codegraph-mcp

โšก 60-Second Quickstart

Step 1: Install Package

# Direct install via pip from GitHub
python -m pip install git+https://github.com/ululazmi18/agent-memory.git

# Or clone and install locally:
git clone https://github.com/ululazmi18/agent-memory.git
cd agent-memory
python -m pip install -e .

Step 2: One-Command Autonomous Setup

Run the autonomous installer inside your target project workspace:

python -m agent_memory --install

What --install automatically does:

  1. Dynamic Python Discovery: Detects the active Python binary (sys.executable) without hardcoded path assumptions.

  2. Registers MCP Server: Automatically provisions agent-memory into ~/.gemini/config/mcp_config.json with UTF-8 encoding.

  3. Deploys Agent Skill: Installs SKILL.md to ~/.gemini/config/skills/agent-memory/SKILL.md.

  4. Applies Gatekeeping Rule: Copies workflow-memory-first.md into your workspace .agents/rules/.

  5. Initializes AST Codebase: Builds .agents/memory/memory.db and maps every symbol, function, class, and SHA-256 hash in seconds.


๐Ÿ—๏ธ System Architecture

flowchart TD
    Client["๐Ÿค– AI Coding Agent<br/>(Antigravity / Claude Code / Cursor / Windsurf)"]
    
    subgraph Engine ["๐Ÿง  Agent Memory Engine Core"]
        MCP["Model Context Protocol (MCP 2.0+)"]
        CLI["Universal Multi-Query CLI"]
        Validator["Quality Gate Validator<br/>(6-Pillar High-Density Model)"]
        AST["Static AST Parser<br/>(Function, Class, Line #Lstart-Lend)"]
        CRMW["Cognitive Read-Merge-Write<br/>(Bullet Consolidation & Set Union)"]
    end
    
    subgraph Storage ["๐Ÿ”’ Embedded Local Storage"]
        DB[("SQLite WAL Database<br/>.agents/memory/memory.db")]
        FTS["FTS5 Full-Text Index<br/>(Unicode & Colloquial Slang)"]
        Seed["knowledge_seed.json<br/>(Version-Controlled Knowledge Backup)"]
    end

    Client <-->|MCP Protocol / JSON-RPC| MCP
    Client <-->|CLI Commands| CLI
    MCP --> Validator
    CLI --> Validator
    Validator --> AST
    AST --> DB
    Validator --> CRMW
    CRMW --> DB
    DB <--> FTS
    DB -.->|Export / Hydrate| Seed

Key Technical Pillars

  1. Deterministic Static AST Parser: Extracts signatures, docstrings, decorators, and internal call graphs without executing untrusted code.

  2. SQLite FTS5 Full-Text Search: Supports colloquial query terms, user slang, command habits, and typo-tolerant search in < 0.01s.

  3. The 6-Pillar High-Density Knowledge Contract: Prevents shallow AI memory notes:

    • Pillar 1: Physical Metadata & Size Profile.

    • Pillar 2: Upstream Dependencies & Downstream Artifacts.

    • Pillar 3: Exact Symbol Contracts (#Lstart-Lend), Call Graphs, and Data Schemas.

    • Pillar 4: Colloquial Human Aliases (Natural conversational search hooks).

    • Pillar 5: Hierarchical Progressive Depth (Level 0 Root to Level 4+ Binary Aggregations).

    • Pillar 6: Critical Guardrails, Gotchas & Strict Constraints.

  4. Cognitive Read-Merge-Write (Anti-Knowledge Regression): Smart bullet consolidation and set union preserve all previous engineering discoveries during live updates (merge_mode="merge").


๐Ÿ”Œ Universal MCP Integration

Agent Memory Engine complies with the Model Context Protocol (MCP 2.0+). It seamlessly integrates with any MCP-compatible coding tool.

1. Google Antigravity

The one-liner python -m agent_memory --install automatically registers the server. Manual configuration in ~/.gemini/config/mcp_config.json:

{
  "mcpServers": {
    "agent-memory": {
      "command": "python",
      "args": ["-m", "agent_memory.mcp_server"],
      "env": {
        "PYTHONIOENCODING": "utf-8"
      }
    }
  }
}

2. Claude Code (Anthropic CLI)

Register the server in Claude Code with a single command:

claude mcp add agent-memory python -m agent_memory.mcp_server

3. Cursor & Windsurf (mcp.json)

Add to your project's .cursor/mcp.json or .codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "agent-memory": {
      "command": "python",
      "args": ["-m", "agent_memory.mcp_server"]
    }
  }
}

4. Roo Code / VS Code Cline

Add to your Extension MCP settings:

{
  "mcpServers": {
    "agent-memory": {
      "command": "python",
      "args": ["-m", "agent_memory.mcp_server"]
    }
  }
}

๐Ÿ› ๏ธ MCP Toolset Reference

Tool Name

Parameters

Purpose

memory_batch_inspect

targets: list[str]

Multi-query complete High-Density Identity Cards for multiple files/directories in a single turn.

memory_find_by_intent

terms: list[str]

Instant FTS5 search by colloquial human intent, command slang, or natural query habits.

memory_get_phase_map

file_path: str

Retrieves 16+ sequential execution sub-blocks of complex scripts without reading raw code.

memory_enrich_knowledge

entity_path, purpose, colloquial_aliases, ...

Records deep architectural insights. Automatically enforced by the 6-Pillar Quality Gate.

memory_sync_codebase

None

Runs incremental AST parsing and SHA-256 line drift detection across all files.


๐Ÿ’ป CLI Usage & Terminal Output

Multi-Query Composite Command (One-Shot):

python -m agent_memory \
  -q src/auth_service.py src/database.py \
  -f "login flow" "reset password" "verify jwt" \
  -i authenticate_user hash_token \
  -b src/pipeline_worker.py

Terminal Output Preview:

=== [IDENTITY CARD] src/auth_service.py (Type: FILE_PY | Level: 1 | Size: 4.2 KB) ===
[Pillar 1: Purpose] Manages OAuth2 token lifecycle, JWT verification, and user authentication.
[Pillar 2: Architecture] Upstream: api/routes.py | Downstream: db/users.py, cache/redis.py
[Pillar 6: Guardrails & Gotchas] Never log raw bearer tokens or expose private signing keys.
[Pillar 3: Technical Symbols & Contracts (2 functions detected)]
โ€ข [authenticate_user] [src/auth_service.py#L24-L68] `def authenticate_user(token: str) -> UserSession`
  Contracts: Calls: verify_jwt, db.get_user | Side-effects: Redis TTL refresh | Error-hnd: Raises AuthError
โ€ข [hash_token] [src/auth_service.py#L72-L95] `def hash_token(raw_key: str) -> str`
  Contracts: Calls: hashlib.sha256 | Error-hnd: None (pure)
--- [END OF CARD: src/auth_service.py] ---

[USER INTENT SEARCH] Query: 'login flow' (2 matches found)
โ€ข [Score: 1.0] src/auth_service.py -> authenticate_user | Context: Matches 'login flow'

๐Ÿ’ก Python Programmatic API

You can use Agent Memory directly within your Python scripts, CI bots, or custom AI agent orchestrations:

from agent_memory.config import resolve_workspace_root, get_database_path
from agent_memory.core.database import Database
from agent_memory.core.scanner import Scanner

# 1. Connect to workspace memory
workspace = resolve_workspace_root()
db = Database(get_database_path(workspace))

# 2. Synchronize AST & Codebase
scanner = Scanner(workspace)
cards = scanner.scan_all()
db.upsert_entities_batch(cards)

# 3. Retrieve Identity Card
card = db.get_entity_card("src/auth_service.py")
print(f"File Purpose: {card.purpose}")
for sym in card.symbols:
    print(f"  โ€ข {sym.name} [#L{sym.start_line}-L{sym.end_line}] -> {sym.signature}")

# 4. Instant FTS5 Search by Natural Human Slang
matches = db.find_by_intent("login token")
for match in matches:
    print(f"Match: {match['path']} -> {match.get('target_name', '')}")

(See examples/basic_usage.py for a runnable demonstration).


โ“ Frequently Asked Questions (FAQ)


๐Ÿงช Automated Testing & Quality Gate

Agent Memory Engine includes a comprehensive, zero-dependency unit test suite using Python's native unittest framework:

# Run all unit tests
python -m unittest discover tests -v

# Or using pytest (if installed)
pytest

Quality Status: 30/30 unit tests passing (100% pass rate). Tested across Windows, Linux, and macOS on Python 3.10, 3.11, and 3.12.


๐Ÿ”’ Privacy & Security (Zero Cloud Leak)

  • Local Embedded Storage: All indices are stored locally in .agents/memory/memory.db.

  • Zero Third-Party Telemetry: Your proprietary code never leaves your developer workstation.

  • Git Governance: Binary SQLite databases (*.db, *.db-wal, *.db-shm) are strictly excluded via .gitignore, preventing accidental repository bloat.


๐Ÿ‡ฎ๐Ÿ‡ฉ Panduan Eksekutif Bahasa Indonesia

Mengapa Repositori Ini Wajib Digunakan?

Bagi Software Architect, Tech Lead, dan Engineering Manager:

  1. Pemberantasan Pemborosan Token (Token Bloat): AI Coding Agent konvensional menghabiskan 30.000โ€“80.000 token hanya untuk membaca file mentah (view_file, cat, grep). Agent Memory Engine memangkasnya menjadi < 1.000 token per interaksi (hemat hingga 95%).

  2. Akurasi Baris Deterministik 100%: Dilengkapi navigasi baris eksak (#Lstart-Lend), AST parser bawaan, dan call graph internal untuk mencegah halusinasi kode.

  3. Pencarian Intent Bahasa Santai Pengguna: Berkat SQLite FTS5 berkecepatan 0.01 detik, AI dapat menemukan letak fungsi berdasarkan kebiasaan perintah, typo, atau bahasa santai pengguna (misal: "cek login", "sambung audio", "potong ayat", "hitung pajak").

Cara Pasang Cepat 1-Baris:

python -m pip install -e .
python -m agent_memory --install

๐Ÿ“œ Lisensi & Kontribusi

Didistribusikan di bawah lisensi MIT License. Bebas digunakan, dimodifikasi, dan didistribusikan untuk proyek komersial maupun open-source.

Available Tools

5 tools
memory_batch_inspectB

Fetch complete High-Density Identity Cards for multiple folders and files in a single call (Multi-Query).

NameRequiredDescriptionDefault
targetsYes

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden, but it only says what is fetched. It does not disclose read-only behavior, permission requirements, partial-failure handling, result ordering, or limits on the number of targets, all of which matter for a batch fetch.

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 with no wasted words. It immediately identifies the action, result, and batch scope.

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?

An output schema exists, so return values need not be explained. Still, for an unannotated batch tool with one loosely documented parameter, the description should clarify target format, batch constraints, and failure behavior; those gaps keep it at minimum viability.

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 by clarifying that targets represent multiple folders and files, but it does not specify the expected string format, whether paths or IDs are accepted, or any size limits for the array.

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 ('Fetch') and resource ('High-Density Identity Cards') and clarifies that it handles multiple folders and files in one call. It is clear enough to distinguish this batch-inspection tool from single-target siblings, though it does not explicitly name those siblings.

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 phrase 'for multiple folders and files in a single call (Multi-Query)' implies this tool is for batched lookups rather than single-target calls. However, there is no explicit guidance about when to prefer this over individual inspection tools 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.

memory_enrich_knowledgeC

Save deep understanding of a file/folder or function/symbol. MANDATORY: Write technical specs (purpose, logic_phases, upstream, downstream, guardrails, side_effects, error_handling) in High-Density Technical English (saves 40% tokens). MANDATORY: Write colloquial_aliases in natural Indonesian user habits/slang for instant FTS5 matching.

NameRequiredDescriptionDefault
purposeNo
upstreamNo
downstreamNo
guardrailsNo
merge_modeNomerge
entity_pathYes
symbol_nameNo
logic_phasesNo
side_effectsNo
child_summaryNo
error_handlingNo
colloquial_aliasesNo

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden for a write tool and omits the core behaviors: what merge_mode actually does, whether existing knowledge is overwritten or appended, idempotency, and what happens when entity_path does not resolve. It does disclose the output-formatting convention (high-density English for specs, Indonesian slang for aliases), which is real value, but write semantics remain undisclosed.

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?

Front-loaded with the action, then the two formatting mandates, with no filler sentences. Slightly repetitive in the doubled 'MANDATORY:' prefix, but efficient overall.

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 12-parameter mutation tool with zero schema coverage and no annotations, the definition is under-specified: merge semantics, the required path's expected form, and symbol scoping are all absent. The output schema removes the need to explain return values, but that alone does not close the gap.

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 0%, so the description must compensate. It names eight of twelve parameters (purpose, logic_phases, upstream, downstream, guardrails, side_effects, error_handling, colloquial_aliases) and gives a content convention for two of them, but never explains entity_path, symbol_name, merge_mode, or child_summary โ€” including the only required parameter.

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 ('Save deep understanding') and resource ('a file/folder or function/symbol'), which is enough to separate it from the read-oriented siblings (inspect, find_by_intent, get_phase_map). It stops short of naming the write counterpart (memory_sync_codebase), so the boundary with auto-generation is not drawn.

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?

The description spends its words on mandatory content formatting, not on when to call this versus memory_sync_codebase or the inspection tools. There is no stated trigger, no prerequisite (e.g. entity must exist in the index), and no exclusion criteria.

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

memory_find_by_intentA

Search symbols, files, or exact code blocks using natural human language, Indonesian colloquial slang, command habits, or typos.

NameRequiredDescriptionDefault
termsYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It implies a non-mutating search and clarifies accepted query styles, but it does not discuss matching behavior, result limits, permissions, or other operational traits.

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 with no filler. The core action and the accepted query styles are stated efficiently.

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?

The tool is simple, has one required parameter, and includes an output schema, so the description need not explain return values. It conveys enough to attempt a call, though it lacks explicit guidance on when to choose this tool over the siblings.

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 for the single 'terms' parameter. It usefully explains that terms may be natural language, slang, command habits, or typos, but it does not clarify how the array is interpreted or whether multiple terms affect matching.

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, 'Search', and specific resource types: symbols, files, and exact code blocks. It is clear what the tool does, though it does not explicitly differentiate itself from the sibling memory_* tools.

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 listing input styles such as natural language, Indonesian slang, command habits, and typos. 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.

memory_get_phase_mapB

Retrieve detailed internal logic execution phase map for a script from start to finish without reading raw code.

NameRequiredDescriptionDefault
file_pathYes

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description has to carry behavioral disclosure. It makes clear this is a read-style retrieval of a derived phase map rather than raw code, but it does not cover freshness, supported script types, failure behavior, or whether analysis has side effects.

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 with no filler. Every phrase contributes: the action, the resource, the scope, and the reason to prefer this over reading raw code.

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?

An output schema exists, so return-value details need not be repeated. For a one-parameter tool this is close to sufficient, but the lack of annotations and parameter documentation leaves gaps around supported inputs and behavioral expectations.

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

Parameters2/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 for the lone file_path parameter. It only implies that the path refers to a script; it does not clarify format, relative vs absolute paths, supported extensions, or what happens if the file cannot be analyzed.

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 ("Retrieve") and a specific resource ("detailed internal logic execution phase map for a script"), and it clarifies the value by saying this is done "without reading raw code." It is distinguishable from most sibling tools, though it does not explicitly name alternatives.

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: call this when you need to understand a script's execution phases without inspecting raw source. There is no explicit when-not guidance, prerequisites, or comparison to sibling tools such as memory_find_by_intent or memory_batch_inspect.

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

memory_sync_codebaseB

Automatically sync codebase via AST parsing and SHA-256 hashing to detect exact line and symbol changes.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.4/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 usefully discloses how change detection works (AST + hashing) and what it produces (exact line and symbol deltas), but 'sync' implies writes into the memory store and the description never says what gets mutated, whether it is idempotent, or what it costs on a large codebase.

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?

One sentence, front-loaded with the verb and mechanism, with no filler. Every clause (AST parsing, SHA-256, line and symbol changes) contributes distinct information.

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?

An output schema exists so return values are covered, and the zero-parameter surface is simple. However, with no annotations and an implied mutation, the description omits side effects, scope of the sync, and failure/cost behavior, leaving the agent short of what it needs for a write-shaped 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?

The tool takes zero parameters, so the baseline is 4. Nothing about inputs needs explaining, and the description correctly spends no words on 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 and resource ('sync codebase') and adds the mechanism (AST parsing, SHA-256 hashing) plus the outcome (detect line and symbol changes). It is clear what the tool does, but it never names or contrasts itself with the memory_* siblings, so an agent still has to infer the boundary.

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?

There is no statement of when this should be invoked versus the sibling inspection/query tools, no prerequisites, and no exclusions. The word 'Automatically' even leaves ambiguous whether the agent should call it at all or whether it is triggered internally.

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. 5 tool updatesv0.1.0
    • First observedmemory_batch_inspect
    • First observedmemory_enrich_knowledge
    • First observedmemory_find_by_intent
    • First observedmemory_get_phase_map
    • First observedmemory_sync_codebase

TDQS

B3.3/5.0

Scored across 5 tools

Disambiguation4/5

Each tool has a fairly distinct role: bulk read (batch_inspect), search (find_by_intent), deep read of one script's logic (get_phase_map), sync/index (sync_codebase), and write (enrich_knowledge). The only mild overlap is between batch_inspect and get_phase_map, since both return stored knowledge about code, but the granularity difference (identity cards vs. execution phases) is stated clearly enough to choose correctly.

Naming Consistency4/5

All five tools share a clear `memory_` prefix and use snake_case, giving a predictable namespace. The verb ordering varies slightly (adjective+verb in batch_inspect, verb+preposition in find_by_intent, verb+noun elsewhere), but each name remains self-descriptive and readable.

Tool Count4/5

Five tools is lean but each covers a distinct stage of the memory lifecycle (sync, search, bulk read, deep read, write). It stays well under the heavy-tool threshold and no tool feels redundant, though the surface is minimal for a full memory engine.

Completeness3/5

The read/create/sync path is covered, but there is no delete or invalidate operation for stale knowledge, no explicit update/amend for existing entries, and no listing/index tool to discover what folders are stored. Agents can work around some of this via search and re-enrich, but lifecycle coverage has notable holes.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides intelligent code indexing with 15 MCP tools for symbol extraction, hybrid search (FTS5+vector), call graphs, and incremental indexing of local folders and remote repos, enabling token-efficient code retrieval for AI agents.
    3
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Provides graph-native code intelligence for coding agents, enabling them to navigate repositories through compact SQLite-backed symbol graphs and retrieve full source only for relevant symbols.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI coding agents to interrogate a local repository deterministically for symbols, dependencies, call paths, routes, tests, and Git impact, returning verified structured evidence with exact line citations instead of requiring the whole codebase to be read.
    46 PyPI
    4
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables semantic and keyword search over a local codebase by chunking source files along function and class boundaries, embedding them offline, and fusing vector and BM25 results. Runs entirely on your machine in a single SQLite file, so AI coding agents can find relevant code with no API keys, telemetry, or cloud calls.
    7
    19 npm
    MIT