Skip to main content
Glama
ceorkm
by ceorkm

Kratos MCP

Ultra-Lean Memory System for AI Coding Tools

npm version License: MIT MCP Compatible TypeScript

Never explain your codebase again. Let AI remember everything.


Kratos has evolved. This repo is now legacy.

github.com/ceorkm/kratos-cli

Kratos is now a standalone CLI — faster, lighter, works with ANY AI agent.

No MCP overhead. No vendor lock-in. Just memory that works.

Star the new repo

npx kratos-memory

Claude Code, Codex, Cursor, Cline — anything that runs Bash.

Your existing memories work instantly. Same ~/.kratos/ storage, same SQLite format.

Go to Kratos CLI >


Related MCP server: LumenCore

Why Kratos?

After building 30+ production apps with AI, we discovered a critical problem: AI tools forget everything between sessions. You explain your architecture, your patterns, your decisions—and tomorrow, you explain it all again.

Kratos MCP solves this with an ultra-lean memory system that gives AI perfect recall of your project—with minimal context overhead.

Features

100% Project Isolation

Each project gets its own SQLite database. No cross-contamination. Ever.

Zero Configuration

Auto-detects projects via git, package.json, or directory structure. Just install and code.

Ultra-Lean Architecture

Just 12 essential tools. 64% smaller context footprint than competitors.

Universal Protocol

Works with Claude, Cursor, Windsurf, Continue—any MCP-compatible tool.

Installation

# Install globally
npm install -g kratos-mcp

# Or run directly with npx (no installation required)
npx kratos-mcp

# Or install as a dependency
npm install kratos-mcp

Quick Start

1. Configure Your AI Tool

Add to your Claude Desktop config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Linux: ~/.config/claude/claude_desktop_config.json

{
  "mcpServers": {
    "kratos": {
      "command": "npx",
      "args": ["--yes", "kratos-mcp@latest"]
    }
  }
}

Or if you have it installed globally:

{
  "mcpServers": {
    "kratos": {
      "command": "kratos-mcp",
      "args": []
    }
  }
}

Run this command in your terminal:

claude mcp add kratos -- npx --yes kratos-mcp@latest

Or for global installation:

# First install globally
npm install -g kratos-mcp@latest

# Then add to Claude Code
claude mcp add kratos -- kratos-mcp

Add to .cursor/mcp_config.json in your project root:

{
  "mcpServers": {
    "kratos": {
      "command": "npx",
      "args": ["--yes", "kratos-mcp@latest"]
    }
  }
}

Kratos works with any tool supporting the Model Context Protocol. The general format is:

{
  "command": "npx",
  "args": ["kratos-mcp"]
}

Compatible with: Windsurf, Cline, BoltAI, Augment Code, Roo Code, Zencoder, Amazon Q, Qodo Gen, JetBrains AI, Warp, Opencode, Continue.dev, Zed, and more!

Check your tool's documentation for specific MCP server configuration location.

2. Start Using Kratos

// Your AI now remembers:
// - Your authentication patterns
// - Your API structure
// - Your component architecture
// - Your coding standards
// - Every decision you've made

Available Tools

Kratos provides 12 ultra-lean tools optimized for minimal context consumption:

Memory Management (7 tools)

Tool

Description

memory_save

Store important project knowledge with tags, paths, and importance levels

memory_search

Smart semantic search with debug mode and path matching

memory_ask

Natural language queries about your memories

memory_get_recent

Get recently created memories with filtering

memory_get

Retrieve a specific memory by ID

memory_get_multiple

Bulk retrieve multiple memories

memory_forget

Delete a memory by ID

Security (1 tool)

Tool

Description

security_scan

Scan text for PII and secrets before saving

Project Management (3 tools)

Tool

Description

project_switch

Switch between different projects

project_current

Get current active project info

change_storage_path

Dynamically change storage location with automatic data migration

System (1 tool)

Tool

Description

system_status

Get system status and memory statistics

How It Works

AI Tool ──► Kratos MCP ──► Project Detection ──► SQLite + FTS5 ──► Perfect Context
  • SQLite + FTS5: Lightning-fast full-text search

  • Smart Scoring: Path matching + recency + importance

  • Auto-detection: Git, package.json, or directory-based

  • Secure: All data stays local, no external calls

  • Lean: Only 4 core components, minimal memory footprint

Performance

Metric

Value

Context Overhead

64% smaller than v3

Memory Retrieval

< 10ms

Project Switch

< 100ms

Storage Overhead

~2MB per project

Data Storage

~/.kratos/
├── projects/
│   ├── project-id-1/
│   │   └── memories.db          # SQLite database with FTS5
│   └── project-id-2/
│       └── memories.db
└── global/
    └── global.db                # Shared knowledge (optional)

Use change_storage_path to move data to custom locations like /opt/kratos or .kratos for per-project storage.

Example Usage

// Save a memory
await memory_save({
  summary: "JWT auth implementation",
  text: "We use httpOnly cookies with refresh tokens...",
  tags: ["auth", "security"],
  paths: ["src/middleware/auth.ts"],
  importance: 5
});

// Search memories
await memory_search({
  q: "authentication",
  k: 5,
  debug: true
});

// Ask natural language questions
await memory_ask({
  question: "How does our auth system work?",
  limit: 10
});

Contributing

git clone https://github.com/ceorkm/kratos-mcp.git
npm install
npm run build
npm run dev

License

MIT


Built for developers who value their time.

Report Bug · Request Feature

Available Tools

12 tools
change_storage_pathB

Dynamically change where Kratos stores data (with automatic migration)

ParametersJSON Schema
NameRequiredDescriptionDefault
newPathYesNew storage path (e.g., "/opt/kratos" or ".kratos")
migrateNoMigrate existing data to new location (default: true)
backupNoCreate backup before migration (default: true)

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It mentions automatic migration but omits potential side effects like downtime, permission requirements, or whether the change is immediate or requires restart. The description is too brief to be transparent.

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, concise sentence that front-loads the key action and feature (automatic migration). Every word serves a purpose; no fluff.

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?

No output schema exists, so the description should explain what the tool returns or confirms (e.g., success message, errors). It does not. Also missing context about prerequisites like running Kratos or admin rights.

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 parameters are already well-documented. The description adds no additional meaning beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: dynamically changing the storage path for Kratos with automatic migration. The verb 'change' and resource 'storage path' are specific. No sibling tool has similar functionality, so distinction is inherent.

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?

No guidance on when to use this tool versus alternatives is provided. The description does not mention prerequisites, scenarios, or when not to use it. Being the only storage-related tool implies uniqueness but the description lacks explicit usage context.

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

memory_askC

Ask questions about your memories using natural language

ParametersJSON Schema
NameRequiredDescriptionDefault
questionYesNatural language question about your memories
limitNoMax results to return (default: 10)

TDQS

C2.8/5.0
Behavior1/5

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

With no annotations provided, the description carries full burden but offers no behavioral disclosure. No mention of read-only nature, data privacy, rate limits, or return format.

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

Conciseness3/5

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

One short sentence is concise but lacks structure. No front-loading of key info beyond a generic verb-noun phrase.

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?

Despite simple parameters and no output schema, the description fails to specify what the tool returns, how to phrase effective questions, or any constraints (e.g., time range). Incomplete for full understanding.

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% and description adds minimal extra meaning beyond 'using natural language' for question parameter. Baseline 3 is appropriate as it does not significantly enrich parameter understanding.

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

Purpose5/5

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

The description clearly states the tool allows asking questions about memories using natural language, which distinguishes it from siblings like memory_search (likely keyword-based) and memory_get (by ID).

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?

No guidance on when to use this tool versus other memory tools, such as when to use memory_get or memory_search instead. Lacks context about appropriate scenarios or limitations.

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

memory_forgetB

Delete a memory by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesMemory ID to delete

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, description carries full burden. It states 'Delete' (destructive) but provides no details on consequences, error handling, or permission requirements.

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?

Single, clear sentence with no redundancy. Efficient front-loading of core purpose.

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?

Adequate for a simple delete tool, but lacks context on behavior for invalid IDs or side effects. No output schema, so description could outline return value or confirmation.

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 already fully describes the 'id' parameter as 'Memory ID to delete'. Description adds no new meaning; baseline 3 applies as schema coverage is 100%.

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?

Description clearly states action ('Delete') and resource ('a memory by ID'), directly distinguishing it from sibling tools like memory_get (read), memory_save (create/update), and memory_search (query).

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?

No guidance on when to use this tool versus alternatives (e.g., memory_save or memory_get). Does not specify prerequisites or exclusion criteria.

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

memory_getB

Get a specific memory by ID with full text

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesMemory ID to retrieve

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, and the description only adds 'with full text', which implies a behavior but doesn't explain safety, authentication, or side effects. More context is needed for a read operation.

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. Every part of the sentence adds value and is directly relevant to the tool's purpose.

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 simple retrieval tool with one parameter and no output schema, the description provides basic understanding. However, it lacks details on return format or how 'full text' differs from other retrieval tools, leaving gaps in completeness.

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 a single parameter 'id' described as 'Memory ID to retrieve'. The tool description adds no extra meaning beyond the schema, but per rules, high coverage justifies a baseline of 3.

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 ('Get'), the resource ('a specific memory'), and the key qualifier ('by ID with full text'). It effectively distinguishes from siblings like memory_get_multiple and memory_get_recent.

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?

No guidance is provided on when to use this tool versus alternatives (e.g., memory_get_recent for recent memories or memory_search for query-based retrieval). The agent is left to infer from the name alone.

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

memory_get_multipleB

Get multiple memories by IDs with full text (bulk operation)

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesArray of memory IDs to retrieve

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are present, so the description must convey behavioral traits. It only mentions 'full text' but omits read-only indication, error handling, or any side effects. The tool is likely safe (read), but not explicitly stated.

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?

The description is a single efficient sentence that front-loads the action and object. However, it is slightly too terse, missing optional clarifications.

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?

Given no output schema and a single parameter, the description is minimally sufficient. However, it lacks details on return format, behavior for invalid IDs, and does not leverage sibling context to clarify differences.

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. The tool description adds 'by IDs' and 'full text' but does not enhance the parameter meaning beyond what the schema already provides ('Array of memory IDs').

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 ('get'), the resource ('memories by IDs'), and specifies 'full text' and 'bulk operation', distinguishing it from siblings like memory_get (likely single) and memory_get_recent.

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 bulk retrieval by IDs but does not explicitly state when to use this tool over memory_get or memory_get_recent. No alternatives or when-not-to-use guidance is provided.

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

memory_get_recentB

Get recent memories from active project

ParametersJSON Schema
NameRequiredDescriptionDefault
kNoMax results
path_prefixNoFilter by path prefix
include_expiredNoInclude expired memories

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided; description does not disclose behavioral traits like read-only nature, authentication needs, rate limits, or side effects beyond the implied 'get' operation.

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?

Single concise sentence, front-loads key information with no wasted words.

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?

Minimal description for a tool with 3 optional parameters and no output schema. Lacks clarity on how 'recent' is defined or what 'active project' means. Adequate but could be more complete.

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?

Input schema has 100% parameter description coverage. Description adds no extra meaning beyond schema; baseline 3 is appropriate.

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 'Get recent memories from active project', specifying the verb (get), resource (memories), and scope (recent, active project). It distinguishes from siblings like memory_get (generic) and memory_search (search-specific).

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?

No guidance on when to use this tool versus alternatives (e.g., memory_get, memory_search). No context on prerequisites or exclusions.

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

memory_saveC

Save a memory document to the active project

ParametersJSON Schema
NameRequiredDescriptionDefault
summaryYesShort, 1-2 line summary
textYesFull memory content
tagsNoTags for categorization
pathsNoFile/directory paths (globs)
importanceNoImportance level
ttlNoTime to live in seconds

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 of behavioral disclosure. It only says 'save', which implies writing, but lacks details on side effects (e.g., overwriting, creation vs update), required permissions, or idempotency. This is insufficient for an agent to reason about consequences.

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?

The description is a single sentence with no extraneous words. It is appropriately front-loaded. However, it is perhaps too terse, missing opportunities to convey useful details without significant bloat.

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?

Given the absence of an output schema and annotations, the description should compensate by explaining return behavior or integration with the project. It does not mention what happens after saving (e.g., confirmation, error conditions), leaving the agent with an incomplete picture of the tool's effect.

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?

All 6 parameters are described in the input schema (100% coverage), so the schema already documents their meaning. The tool description adds no extra semantic value beyond the schema. Baseline score of 3 is appropriate as the description does not detract but also does not enhance.

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 clearly states the verb 'Save' and the resource 'memory document to the active project', making the core action unambiguous. However, it does not differentiate from sibling tools like memory_ask or memory_forget, which limits its distinctiveness.

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 offers no guidance on when to use this tool over alternatives. There is no mention of prerequisites, context, or conditions where this tool is appropriate, leaving the agent without decision-support information.

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

project_currentA

Get current active project

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided. Description merely states 'Get', implying read-only, but lacks details on side effects, prerequisites, or return format. For a tool with no annotations, the description should compensate with more 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?

Four words, extremely concise. Every word is meaningful with no redundancy.

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?

Given no output schema and no annotations, the description is minimally complete but could mention the expected return type (e.g., project object) or context (e.g., current project path).

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?

Tool has zero parameters and schema coverage is 100%. Description adds no param info but baseline for 0 params is 4. It adequately communicates the operation.

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?

Description 'Get current active project' is a specific verb+resource pair. It clearly distinguishes from sibling tools like project_switch, which switches projects.

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?

No guidance on when to use this tool versus alternatives. For example, it could mention that it requires no parameters and is used to retrieve the currently active project, whereas project_switch changes the active project.

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

project_switchC

Switch to a different project

ParametersJSON Schema
NameRequiredDescriptionDefault
project_pathYesPath to project directory

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 must disclose behavioral traits. It only states the action without explaining effects on subsequent operations, required permissions, or side effects. For a state-changing tool, this is insufficient.

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?

The description is a single, concise sentence. It is front-loaded and efficient, though it could be slightly expanded without losing conciseness.

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?

Given the simplicity of the tool (one parameter), the description is adequate but lacks behavioral context such as the effect on subsequent tool calls. Output schema is absent, but not critical here.

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 one parameter 'project_path' described. The description adds no additional meaning beyond the schema, meeting the baseline for high coverage.

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 'Switch to a different project' uses a specific verb and resource, making the purpose clear. It distinguishes from siblings like project_current, which retrieves current project, and other tools. However, it lacks additional detail on scope or context.

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?

No guidelines are provided on when to use this tool versus alternatives such as change_storage_path or project_current. There is no mention of prerequisites 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.

security_scanB

Scan text for PII and secrets

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to scan
redactNoReturn redacted version

TDQS

B3.3/5.0
Behavior2/5

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

The description only says 'scan,' which implies a read operation, but does not disclose whether the tool modifies data, the scope of detection, or side effects. No annotations exist to compensate.

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, clear sentence with no wasted words. It is appropriately front-loaded and concise.

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 simple tool with 2 parameters and no output schema, the description is adequate but lacks detail on what constitutes PII/secrets or how scanning works. More context would improve completeness.

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 the schema already documents both parameters. The description adds minimal context ('PII and secrets') but does not explain parameter interactions or formats beyond 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?

The description clearly states the tool scans text for PII and secrets, using a specific verb and resource. It distinguishes itself from sibling tools like memory_get or system_status.

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?

No guidance is provided on when or when not to use this tool, such as prerequisites or alternatives. Sibling tools are unrelated, but the description offers no contextual advice.

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

system_statusA

Get system status and statistics

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose side effects (e.g., read-only, auth needs). The word 'Get' implies safety, but transparency beyond that is minimal for a tool with no annotations.

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 of 7 words with no extraneous content. Every word earns its place.

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?

Given no parameters or output schema, the description covers the basic purpose but omits details about return format or statistics included. Additional context on output would improve completeness.

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 zero parameters, baseline 3 applies. The description adds no parameter information because there are none.

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 'Get system status and statistics' clearly uses a specific verb and resource, distinguishing it from sibling tools like memory and project tools. No ambiguity exists.

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 use for system status, but lacks explicit guidance on when to use vs alternatives or prerequisites. No alternatives are mentioned, which is acceptable given uniqueness, but exclusion criteria are absent.

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. 12 tool updatesv4.1.1
    • First observedchange_storage_path
    • First observedmemory_ask
    • First observedmemory_forget
    • First observedmemory_get
    • First observedmemory_get_multiple
    • First observedmemory_get_recent
    • First observedmemory_save
    • First observedmemory_search
    • First observedproject_current
    • First observedproject_switch
    • First observedsecurity_scan
    • First observedsystem_status

TDQS

B3.4/5.0

Scored across 12 tools

Disambiguation4/5

Most tools have distinct purposes, but memory_get and memory_get_multiple are closely related, and memory_ask could be conflated with memory_search if not careful. Overall, boundaries are clear.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case, making them predictable and easy to navigate.

Tool Count5/5

With 12 tools, the set is well-scoped for a memory and project management system, neither too sparse nor overwhelming.

Completeness3/5

Missing a memory update tool and project listing capability. The set covers core CRUD for memories but lacks lifecycle operations for projects and explicit memory updates.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides AI coding agents with persistent, long-term memory through local semantic search and SQLite storage. It enables agents to save and retrieve architectural decisions or project context across different conversation sessions without requiring cloud services.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides AI coding assistants with persistent project memory to retain architectural decisions, code patterns, and domain knowledge across sessions. It stores data locally in a SQLite database, allowing agents to remember, recall, and manage project-specific context using full-text search.
    5 npm
    Apache 2.0
  • A
    license
    A
    quality
    B
    maintenance
    Provides persistent cross-session memory and full-text search for AI coding assistants, storing project context, decisions, and preferences while enabling searchable access to conversation history via local SQLite.
    8
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Provides AI coding assistants with persistent memory storage using a local SQLite database. Enables tools to remember project details, notes, and relationships across sessions to maintain context and reduce repetitive explanations.
    17
    4
    MIT