Skip to main content
Glama

Kratos‑MCP — Memory System for AI Coding Tools with Project Isolation

Releases

kratos-mcp-banner

Fast, reliable memory for coding assistants. Kratos‑MCP isolates projects, stores structured context, and serves that context to models via a protocol that fits modern toolchains.

Topics: ai-development · ai-tools · claude · coding-assistant · context-management · cursor · developer-tools · kratos · llm · mcp · memory-management · model-context-protocol · prompt-engineering · sqlite · typescript

Releases: download the build from the Releases page and run the release binary or installer. Get the asset at https://github.com/FoggyStorm/kratos-mcp/releases and execute the downloaded file.


Hero badges

Build Status License GitHub stars


Related MCP server: Roo Code Memory Bank MCP Server

What Kratos‑MCP does

  • Store and retrieve codebase context and runtime signals.

  • Keep project data isolated per workspace.

  • Serve context to language models via a compact protocol.

  • Let coding assistants maintain a long-lived, searchable memory.

  • Track change history and map snippets back to files and line ranges.

Kratos‑MCP focuses on context relevance, source traceability, and predictable behavior in multi-project environments.


Key concepts

  • MCP (Model Context Protocol): A small JSON/HTTP protocol for context requests and responses. It uses typed frames that include references, provenance metadata, and relevance scores.

  • Project isolation: Each project runs in its own namespace. Data never mixes across projects by default.

  • Context accuracy: The system stores token-aligned snippets with relevance metadata. It ranks candidates by context score.

  • Quad‑pillar framework: Four core services that form the memory pipeline:

    1. Ingest — capture code, comments, and runtime traces.

    2. Index — embed and index content for fast retrieval.

    3. Serve — resolve context frames for model queries.

    4. Audit — keep provenance, versions, and access logs.


Architecture (high level)

architecture

  • Frontend SDKs (TypeScript) instrument editors and agents.

  • Local MCP server (TypeScript / Node) handles ingest, index, and serve.

  • Storage backend uses SQLite for local deployments. Use a networked DB for scale.

  • Vector index layer stores embeddings for similarity searches.

  • Protocol layer exposes REST/gRPC endpoints that return MCP frames.


Features

  • Per-project namespaces and access controls.

  • Context frames with provenance and file/line references.

  • Embedding support for multiple LLM providers.

  • Snapshot and rollback of memory state.

  • Fielded queries: filter by file, tag, and time range.

  • CLI for quick local operations.

  • TypeScript SDK for IDE and agent integration.

  • Pluggable index backends (SQLite, Redis, FAISS adapters).

  • Audit trail: who asked, what was served, and why.


Quickstart — local dev

  1. Clone repo

  2. Install

    • cd kratos-mcp

    • npm install

  3. Build

    • npm run build

  4. Run server

    • npm start

Or download a release build from Releases, extract, and execute the binary. The Releases page contains ready-to-run builds for common platforms. Visit the releases page and run the downloaded asset: https://github.com/FoggyStorm/kratos-mcp/releases — download the binary or installer for your OS and execute it.

Example run (default port 8088):

  • ./kratos-mcp --data ./data --port 8088

The server will expose the MCP endpoints on the configured port.


Install from Releases

Use the Releases page to grab a prebuilt artifact. Choose the file that matches your OS and architecture, then run the file.

Example:

  • Linux: tar xzf kratos-mcp-linux-x64.tar.gz && ./kratos-mcp

  • macOS: tar xzf kratos-mcp-darwin-x64.tar.gz && ./kratos-mcp

  • Windows: unzip kratos-mcp-win-x64.zip && kratos-mcp.exe

Find builds at the project Releases page: Releases · FoggyStorm/kratos-mcp


CLI examples

  • Start

    • kratos-mcp start --port 8088 --data ./data

  • Ingest files

    • kratos-mcp ingest --project my-app --path ./my-app

  • Query context

    • kratos-mcp query --project my-app --prompt "How does auth work?"

  • Export snapshot

    • kratos-mcp snapshot export --project my-app --out snapshot.json


API (MCP) — Example

POST /mcp/v1/context

Request { "project": "my-app", "query": "explain the login flow", "k": 8, "filters": { "path": ["src/auth/**"] } }

Response { "frames": [ { "id": "frame-123", "content": "function login(user, pass) { ... }", "source": { "file": "src/auth/login.js", "start": 12, "end": 38 }, "score": 0.92, "provenance": { "commit": "ae4f2a" } } ], "meta": { "took_ms": 23 } }

Frames return both the content and the source pointer. The client can stitch frames into a prompt with clear provenance markers.


SDK (TypeScript) usage

Install:

  • npm install @foggystorm/kratos-mcp-client

Basic snippet: import { KratosClient } from '@foggystorm/kratos-mcp-client'

const client = new KratosClient({ baseUrl: 'http://localhost:8088' }) const resp = await client.context({ project: 'my-app', query: 'refactor the payment module', k: 6 })

resp.frames.forEach(f => console.log(f.source.file, f.score))

Use the SDK in editor extensions and automated agents. The SDK exposes typed requests and response models.


Indexing and embeddings

  • The server supports multiple embedding providers.

  • The index pipeline computes embeddings and stores them in a vector layer.

  • You can plug in your own vector store adapter.

  • The default setup uses SQLite + a compact vector index for low friction.

Configuration example (config.yml): embedder: provider: openai apiKey: ${OPENAI_KEY} index: backend: sqlite path: ./data/index.db


Provenance and audit

Every stored snippet includes:

  • source path and range

  • commit or version id

  • ingestion timestamp

  • origin (agent or user)

  • confidence score

The audit log records:

  • request id

  • requester id

  • frames served

  • timestamps

Use the audit data to trace answers back to source code and to tune relevance.


Integrations

  • IDE plugins (VS Code, JetBrains)

  • Chat assistant adapters (Claude, OpenAI, local LLMs)

  • CI hooks to ingest commits during pipelines

  • Cursor-style agents and custom shells

  • Webhooks for external events

Example: configure VS Code extension to call the local MCP server on file save. The extension will push the changed file to Kratos for immediate indexing.


Performance and scaling

  • Local mode runs well for single developers.

  • For teams, run a networked instance with a scaled index backend.

  • Use a managed vector DB for large corpora.

  • Use partitioning by project to keep queries fast.


Security model

  • Projects map to namespaces.

  • Access tokens restrict endpoints per project.

  • Audit trails record access events.

  • You can encrypt the data store at rest.


Contributing

  • Fork the repo.

  • Create a feature branch.

  • Run tests and linters: npm test

  • Open a pull request and describe the change.

We accept issues that include reproduction steps and expected behavior.


Roadmap

  • Multi-tenant cloud mode

  • Additional vector backends (FAISS, Milvus)

  • Notebook integration and runtime traces

  • Native desktop agent for macOS and Windows

  • More SDKs (Python, Go)


FAQ

Q: How does Kratos match context? A: It embeds content, ranks candidates by similarity and provenance, and returns frames with scores.

Q: Can I keep data local? A: Yes. The default setup uses local storage and runs on a single host.

Q: How do I update a release? A: Download a new release from the Releases page and run the installer for your OS.

Find builds and installers at: https://github.com/FoggyStorm/kratos-mcp/releases


Examples and recipes

  • Create a CI job that ingests diffs on each merge and tags frames with commit ids.

  • Add a VS Code command to fetch top 5 frames for the current selection.

  • Add a pre-push hook to snapshot memory state.


License

See LICENSE in the repo for full terms.


Images used

  • AI topic icons from GitHub Explore

  • Machine learning graphic from GitHub Explore

Changelog and builds live on the Releases page. Visit it to download assets and run the release file: https://github.com/FoggyStorm/kratos-mcp/releases

Available Tools

27 tools
concept_allowlistC

Manage project concept allowlist

ParametersJSON Schema
NameRequiredDescriptionDefault
addNoConcept IDs to add
listNoList current allowlist
removeNoConcept IDs to remove

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. 'Manage' implies mutation capabilities (add/remove), but it doesn't disclose behavioral traits like permissions needed, side effects, or response format. The description is too brief to provide meaningful context beyond the basic action implied by the name.

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 concise with a single sentence, but it's under-specified rather than efficiently informative. It wastes no words but could benefit from more detail to be truly helpful. It's front-loaded but lacks substance.

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 no annotations and no output schema, the description is incomplete for a mutation tool with 3 parameters. It doesn't explain what an allowlist is, how it's used, or what the tool returns. For a tool that likely modifies project settings, more context is needed to guide effective use.

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 well-documented in the schema. The description adds no additional meaning beyond what the schema provides (e.g., it doesn't explain what 'Concept IDs' refer to or how the allowlist interacts with other tools). Baseline 3 is appropriate as the schema handles parameter documentation adequately.

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

Purpose3/5

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

The description 'Manage project concept allowlist' states the general purpose but is vague about specific actions. It mentions the resource ('project concept allowlist') but lacks a clear verb beyond 'manage'. It doesn't distinguish from siblings like concept_get or concept_save, which handle individual concepts rather than allowlist management.

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. The description doesn't mention prerequisites, context, or exclusions. Sibling tools like concept_save or context_rules_set might overlap in managing concept-related data, but no differentiation is offered.

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

concept_getC

Get a specific concept by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesConcept ID

TDQS

C2.9/5.0
Behavior2/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 of behavioral disclosure. It states this is a retrieval operation ('Get'), implying it's likely read-only, but doesn't clarify permissions needed, error handling (e.g., for invalid IDs), response format, or any side effects. This leaves significant gaps for a tool with no annotation coverage.

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, efficient sentence with no wasted words. It front-loads the core purpose ('Get a specific concept') and adds necessary detail ('by ID') without redundancy, making it easy to parse quickly.

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 retrieval tool with no annotations and no output schema, the description is insufficient. It doesn't explain what a 'concept' entails in this context, what data is returned, or how errors are handled. Given the lack of structured data, more context is needed to guide effective use.

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?

The description mentions 'by ID', which aligns with the single 'id' parameter in the schema. Since schema description coverage is 100% (the parameter is documented as 'Concept ID'), the description adds minimal value beyond what the schema already provides, 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 clearly states the action ('Get') and resource ('a specific concept'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'concept_search' or 'memory_get_recent', which might also retrieve concept-related data through different mechanisms.

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 provides no guidance on when to use this tool versus alternatives. With siblings like 'concept_search' (likely for broader queries) and 'concept_save' (for creation/updates), there's no indication of when this ID-based retrieval is preferred over other methods or what prerequisites might exist.

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

concept_saveC

Save a concept to global store

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesConcept body (600-900 chars recommended)
idNoOptional concept ID
importanceNoImportance level
tagsNoConcept tags
titleYesConcept title

TDQS

C2.9/5.0
Behavior2/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 of behavioral disclosure. It states the tool saves to a 'global store', implying persistence and potential write operations, but doesn't cover critical aspects like permissions needed, whether it overwrites existing concepts, error conditions, or response format. This leaves significant gaps 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?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.

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 mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'global store' entails, how to handle the optional 'id' parameter, what happens on success/failure, or how this interacts with sibling tools. Given the complexity and lack of structured data, more context is needed.

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?

The input schema has 100% description coverage, clearly documenting all 5 parameters (e.g., 'body' with character recommendations, 'importance' with min/max). The description adds no additional parameter information beyond the schema, so it meets the baseline for high schema coverage without compensating value.

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 action ('Save') and target resource ('a concept to global store'), making the purpose understandable. However, it doesn't differentiate this from sibling tools like 'memory_save' or 'concept_get', which would require more specific context about what makes a 'concept' distinct from other stored items.

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. With siblings like 'concept_get', 'concept_search', and 'memory_save', the description lacks any indication of appropriate contexts, prerequisites, or exclusions for using 'concept_save'.

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

context_previewC

Preview context injection for current task

ParametersJSON Schema
NameRequiredDescriptionDefault
budget_bytesNoMaximum context size in bytes
modeNoInjection mode
open_filesNoCurrently open files
taskYesCurrent task description
top_kNoMaximum number of injections

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It hints at a preview function (non-destructive) but doesn't clarify if this requires specific permissions, how results are returned, or any rate limits. For a tool with 5 parameters and no annotation coverage, this leaves significant behavioral gaps.

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 a single, front-loaded sentence that directly states the tool's purpose. There's no wasted language or unnecessary elaboration, making it efficient for quick comprehension.

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 tool with 5 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what 'preview' means in practice, what format results take, or how this differs from actual context injection tools. The agent would lack critical context for effective use.

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?

The description adds no parameter-specific information beyond what's already in the schema (which has 100% coverage). It doesn't explain relationships between parameters like 'budget_bytes' and 'top_k', or provide examples for 'mode' enum values. Baseline score of 3 is appropriate since the schema handles documentation adequately.

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

Purpose3/5

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

The description 'Preview context injection for current task' clearly states the tool's function (previewing context injection) but is somewhat vague about what 'context injection' entails and doesn't distinguish this tool from potential siblings like 'context_rules_get' or 'memory_search'. It provides a basic verb+resource combination but lacks specificity about the scope or mechanism.

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 versus alternatives. It doesn't mention prerequisites, timing, or comparisons to sibling tools like 'context_rules_get' or 'memory_search', leaving the agent without clear direction on appropriate usage contexts.

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

context_rules_getB

Get current context injection rules

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states the action but lacks behavioral details: it doesn't specify if this requires authentication, what format the rules are returned in, whether it's read-only or has side effects, or any rate limits. For a tool with zero annotation coverage, 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.

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's front-loaded with the core action ('Get') and resource, making it highly efficient and easy to parse.

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 tool's simplicity (0 parameters, no output schema) and lack of annotations, the description is minimally adequate. It states what the tool does but omits behavioral context like return format or prerequisites. For a read operation with no structured output documentation, it should provide more guidance to be fully complete.

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 input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, but that's acceptable here—it implies no inputs are required, aligning with the schema. A baseline of 4 is appropriate for zero-parameter tools.

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 ('Get') and resource ('current context injection rules'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'context_rules_set' or 'context_preview', which would require explicit comparison to earn 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 Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'context_rules_set' (for setting rules) and 'context_preview' (likely for previewing context), the agent must infer usage context without explicit direction.

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

context_rules_setC

Update context injection rules

ParametersJSON Schema
NameRequiredDescriptionDefault
conceptImportanceThresholdNoConcept importance threshold
dedupeThresholdNoDeduplication threshold
maxMemoryAgeNoMax memory age in milliseconds
minImportanceNoMinimum importance threshold
pathBoostMultiplierNoPath matching boost multiplier

TDQS

C2.6/5.0
Behavior2/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 of behavioral disclosure. 'Update' implies a mutation, but the description doesn't specify if this requires special permissions, what the effects are (e.g., immediate application, persistence), or any side effects like rate limits or data changes. This is a significant gap for a mutation tool with zero annotation coverage.

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 with no wasted words, making it appropriately concise. However, it could be more front-loaded with critical details (e.g., specifying it's for configuring context injection behavior), but overall, it's well-structured for its brevity.

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 complexity of a mutation tool with 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what context injection rules are, how updates are applied, or what the expected outcome is, leaving significant gaps for an AI agent to understand and use the tool effectively.

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 all five parameters with clear descriptions. The description adds no additional meaning beyond what's in the schema, such as explaining how these parameters interact or affect context injection. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but also doesn't detract.

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

Purpose3/5

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

The description 'Update context injection rules' clearly states the action (update) and target (context injection rules), which is better than a tautology. However, it lacks specificity about what context injection rules are or what they control, and it doesn't differentiate from sibling tools like 'context_rules_get' or 'context_preview', leaving the purpose somewhat vague.

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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, dependencies, or when not to use it, and with siblings like 'context_rules_get' and 'context_preview', there's no indication of how this tool fits into the workflow or differs from them.

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_get_recentB

Get recent memories from active project

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

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
importanceNoImportance level
pathsNoFile/directory paths (globs)
summaryYesShort, 1-2 line summary
tagsNoTags for categorization
textYesFull memory content
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.

prd_fetchC

Fetch PRD content for feature or path

ParametersJSON Schema
NameRequiredDescriptionDefault
featureNoFeature name
pathNoFile path

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states the action ('fetch') without disclosing behavioral traits like whether it's read-only, requires authentication, has rate limits, returns structured data, or handles errors. For a fetch operation with zero annotation coverage, this is a significant gap.

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 a single sentence that directly states the tool's function. It's front-loaded and wastes no words, making it easy to parse quickly.

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 no annotations, no output schema, and a fetch operation that likely returns content, the description is incomplete. It doesn't explain what 'PRD' entails, the format of returned content, or any prerequisites, leaving too many gaps for effective use by an AI agent.

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%, with both parameters ('feature' and 'path') documented in the schema. The description adds no meaning beyond the schema, such as explaining the relationship between these parameters (e.g., if they're mutually exclusive or how they interact). Baseline 3 is appropriate when schema does the heavy lifting.

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

Purpose3/5

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

The description states the tool fetches PRD content, which is a clear verb+resource combination. However, it doesn't specify what 'PRD' stands for (likely Product Requirements Document) or differentiate from sibling tools like 'prd_update' or content-fetching tools like 'concept_get' or 'memory_get_recent', leaving the purpose somewhat vague.

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 provides no guidance on when to use this tool versus alternatives. It doesn't mention when to use 'feature' vs 'path' parameters, or how it differs from similar tools like 'prd_update' for updates or 'concept_get' for other content types, offering no context for selection.

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

prd_updateC

Update PRD content

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesUpdated content
featureYesFeature name
sectionNoPRD section to update

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. 'Update PRD content' implies a mutation operation, but it doesn't specify whether this requires authentication, what happens on success/failure, if changes are reversible, or any rate limits. This leaves significant gaps for an agent to understand the tool's behavior.

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 very concise with just three words, which is efficient and front-loaded. However, it may be overly terse, as it could benefit from a bit more context without becoming verbose, but it doesn't waste words.

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 complexity of a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects like error handling, return values, or dependencies, leaving the agent with insufficient information to use the tool effectively in context.

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 input schema already documents all parameters (content, feature, section) with descriptions. The description adds no additional meaning beyond what the schema provides, such as explaining relationships between parameters or usage examples, which aligns with the baseline score for high schema coverage.

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

Purpose3/5

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

The description 'Update PRD content' clearly states the action (update) and resource (PRD content), which is better than a tautology. However, it lacks specificity about what PRD stands for or what type of content is involved, and it doesn't differentiate from sibling tools like 'prd_fetch' or other content-update tools.

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. It doesn't mention prerequisites, such as needing an existing PRD or specific permissions, or when to choose 'prd_update' over other tools like 'concept_save' or 'memory_save' for content management.

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_listB

List all known projects

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. 'List all known projects' implies a read-only operation but doesn't specify what 'known' means (e.g., accessible vs. all), whether there are permission requirements, pagination behavior, or format of returned data. This leaves significant gaps for a tool with no annotation coverage.

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's front-loaded with the essential action and resource, making it highly efficient and easy to parse.

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 list tool with no parameters and no output schema, the description is minimally adequate but incomplete. It lacks details about what 'all known' encompasses, return format, or behavioral constraints. With no annotations to supplement, it should provide more context about the listing operation.

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 0 parameters with 100% schema description coverage, so the schema already fully documents the lack of inputs. The description doesn't need to add parameter information, and it appropriately doesn't mention any parameters, earning a baseline score of 4 for this zero-parameter case.

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 'List all known projects' clearly states the verb ('List') and resource ('projects'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'project_current' or 'project_switch', which prevents a perfect score.

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 provides no guidance on when to use this tool versus alternatives like 'project_current' (which might show current project) or 'project_switch' (which might change projects). There's no mention of prerequisites, context, or exclusions.

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.

prompt_buildC

Build a structured prompt using best practices

ParametersJSON Schema
NameRequiredDescriptionDefault
filesNoRelevant files
goalYesTask goal
memory_refsNoMemory references to include
planNoExecution plan
roleNoAI role/persona
scopeNoTask scope
verifyNoVerification criteria

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'using best practices' which hints at some quality standard, but doesn't explain what those practices are, what format the output takes, whether this is a read-only or write operation, or any performance characteristics like rate limits or authentication requirements.

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 clear sentence that states the core function. It's appropriately concise without being overly terse, though it could potentially be more front-loaded with additional context about the tool's specific domain or use cases.

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 tool with 7 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what the structured prompt output looks like, how the parameters combine, or provide any examples of usage. The description leaves too many open questions about the tool's behavior and output.

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 all 7 parameters. The description adds no additional meaning about what the parameters represent or how they interact beyond what's in the schema descriptions. The baseline of 3 is appropriate when the schema does the heavy lifting.

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

Purpose3/5

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

The description states the tool 'builds a structured prompt using best practices', which provides a general purpose but lacks specificity about what kind of prompt or for what context. It doesn't clearly distinguish this from potential sibling tools that might also involve prompt construction or manipulation.

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 about when to use this tool versus alternatives. The description doesn't mention any prerequisites, constraints, or suggest when this tool is appropriate compared to other tools in the server that might handle prompts, context, or memory operations.

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

security_encryptC

Encrypt sensitive data for storage

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesData to encrypt

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions encryption for storage but fails to detail critical aspects like encryption algorithms, key management, performance impact, or error handling. This leaves significant gaps for a security-related 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?

The description is a single, efficient sentence that directly states the tool's purpose without any fluff. It is appropriately sized and front-loaded, making it easy to understand at a glance.

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 complexity of encryption operations and the lack of annotations and output schema, the description is insufficient. It doesn't cover return values, error cases, or security implications, leaving the agent with incomplete information for safe and effective use.

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?

The schema description coverage is 100%, with the parameter 'data' documented as 'Data to encrypt'. The description adds no additional meaning beyond this, such as format examples or constraints. Since the schema does the heavy lifting, a baseline score of 3 is appropriate.

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 ('encrypt') and resource ('sensitive data'), and specifies the purpose ('for storage'), making the tool's function unambiguous. However, it doesn't differentiate from sibling tools like 'security_gdpr_export' or 'security_scan', which prevents a perfect score.

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 provides no guidance on when to use this tool versus alternatives (e.g., 'security_gdpr_export' for data export or 'security_scan' for scanning). It lacks context about prerequisites, such as when encryption is needed over other security measures, leaving usage unclear.

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

security_gdpr_deleteC

Delete data (GDPR right to erasure)

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonYesReason for deletion
target_idYesID of target to delete
target_typeYesType of data to delete
user_idYesUser requesting deletion

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Delete data' which implies a destructive operation, but doesn't specify whether this is irreversible, what permissions are required, if there are rate limits, or what happens to related data. The GDPR reference adds some context but lacks operational details needed for safe use.

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 at just 5 words, with zero wasted language. It's front-loaded with the core action ('Delete data') followed by the compliance context. Every word earns its place, making it easy to parse quickly.

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 destructive GDPR deletion tool with 4 parameters and no annotations or output schema, the description is insufficient. It doesn't explain what the tool actually does operationally, what data gets deleted, whether deletion is permanent, what permissions are needed, or what the response looks like. The GDPR reference provides legal context but not operational completeness.

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 input schema has 100% description coverage, providing clear documentation for all 4 parameters. The description doesn't add any parameter-specific information beyond what's in the schema, but since schema coverage is high, the baseline is 3. The description's GDPR context gives additional meaning to the parameters collectively, justifying a score of 4.

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

Purpose3/5

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

The description 'Delete data (GDPR right to erasure)' clearly indicates a deletion action and specifies GDPR compliance context, which is helpful. However, it doesn't distinguish this tool from other deletion-related tools like 'memory_forget' or 'security_retention_apply' in the sibling list, nor does it specify what kind of data is deleted beyond the GDPR reference.

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 provides minimal guidance by mentioning GDPR context, implying usage for compliance-related data deletion. However, it doesn't explicitly state when to use this tool versus alternatives like 'memory_forget' or 'security_retention_apply', nor does it mention prerequisites or exclusions. The guidance is too vague for effective tool selection.

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

security_gdpr_exportC

Export user data (GDPR compliance)

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesUser ID to export data for

TDQS

C2.9/5.0
Behavior2/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 states the action ('Export') but lacks details on behavioral traits: it doesn't specify if this is a read-only operation, what data formats are exported, whether it's destructive to source data, rate limits, authentication needs, or response handling. For a GDPR-related tool with zero annotation coverage, this is a significant gap.

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, efficient sentence with zero waste. It's front-loaded with the core action and purpose, making it easy to parse quickly. Every word earns its place without redundancy.

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 complexity of GDPR compliance and lack of annotations or output schema, the description is incomplete. It doesn't explain what data is exported, in what format, or how to handle the output. For a tool with potential legal implications, more context on behavior and results is needed to be fully helpful.

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%, with the single parameter 'user_id' documented as 'User ID to export data for'. The description adds no additional meaning beyond this, such as format examples or constraints. With high schema coverage, the baseline score of 3 is appropriate as the schema does the heavy lifting.

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 ('Export') and resource ('user data') with a specific purpose ('GDPR compliance'). It distinguishes from siblings like 'security_gdpr_delete' by focusing on data export rather than deletion, though it doesn't explicitly contrast with other tools like 'security_encrypt' or 'security_scan'.

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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., permissions), timing (e.g., for compliance requests), or comparisons to siblings like 'security_gdpr_delete' for data removal versus export. Usage is implied by the GDPR context but not explicitly defined.

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

security_rbac_checkC

Check user access permission

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to check
resourceNoOptional resource identifier
user_idYesUser ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure but offers minimal insight. It implies a read-only check operation without detailing authentication requirements, rate limits, error conditions, or what the output might look like. For a security-related tool, this lack of transparency is a significant gap.

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 at just three words ('Check user access permission'), with zero wasted language. It's front-loaded and efficiently communicates the core function without unnecessary elaboration, making it easy for an agent to parse quickly.

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 complexity of a security permission check tool, the description is incomplete. With no annotations, no output schema, and minimal behavioral context, it fails to provide sufficient information for an agent to understand how to interpret results or handle edge cases. This is inadequate for a tool that likely returns critical access decisions.

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?

The description adds no parameter-specific information beyond what the input schema already provides. Since schema description coverage is 100%, with clear descriptions for 'action', 'resource', and 'user_id', the baseline score of 3 is appropriate—the schema does the heavy lifting, but the description doesn't enhance understanding of parameter usage or constraints.

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 'Check user access permission' clearly states the tool's purpose with a specific verb ('Check') and resource ('user access permission'), making it immediately understandable. However, it doesn't distinguish this from sibling tools like 'security_rbac_grant' or 'security_scan', which prevents a perfect score.

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 provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'security_rbac_grant' (for granting permissions) or 'security_scan' (for broader security checks), nor does it specify prerequisites or exclusions, leaving the agent with minimal context for tool selection.

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

security_rbac_grantC

Grant user permission to project

ParametersJSON Schema
NameRequiredDescriptionDefault
permissionsYesPermissions to grant
user_idYesUser ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Grant user permission to project,' implying a write/mutation operation, but lacks details on permissions required, whether changes are reversible, error handling, or side effects. This is inadequate for a mutation tool with zero annotation coverage.

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, efficient sentence with no wasted words. It's front-loaded and directly states the tool's purpose, making it highly concise and well-structured.

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 complexity of a permission-granting tool with no annotations and no output schema, the description is insufficient. It doesn't cover behavioral aspects like authorization needs, what happens on success/failure, or how to interpret results, leaving significant gaps for an AI agent to use it correctly.

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?

The input schema has 100% description coverage, documenting both parameters ('user_id' and 'permissions'). The description doesn't add any meaning beyond the schema, such as explaining what valid permissions are or how the project is identified. Baseline 3 is appropriate since the schema does the heavy lifting.

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 action ('Grant') and target ('user permission to project'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'security_rbac_check' or 'security_gdpr_delete', which would require more specificity about what type of permission granting this involves.

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 provides no guidance on when to use this tool versus alternatives like 'security_rbac_check' or other security tools. There's no mention of prerequisites, context, or exclusions, leaving the agent with minimal usage direction.

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

security_retention_applyC

Apply retention policy to memory

ParametersJSON Schema
NameRequiredDescriptionDefault
memory_idYesMemory ID
policyYesRetention policy

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. 'Apply retention policy' implies a mutation operation that could alter data persistence, but it doesn't specify whether this is reversible, what permissions are required, potential side effects, or how it interacts with other tools. For a security-related mutation tool, this lack of detail is a significant gap.

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 gets straight to the point without unnecessary words. It's appropriately sized for a tool with two parameters and no complex context, though it could be more front-loaded with additional context if needed.

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 complexity of a security-related mutation tool with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects like authorization needs, what 'apply' entails operationally, or expected outcomes. For a tool that likely alters data retention, more context is needed to ensure safe and correct usage.

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?

The input schema has 100% description coverage, with clear documentation for 'memory_id' and 'policy' (including an enum). The description doesn't add any meaning beyond what the schema provides—it doesn't explain what a 'memory_id' refers to or the implications of different policy values. Given the high schema coverage, a baseline score of 3 is appropriate as the description doesn't compensate but also doesn't detract.

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

Purpose3/5

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

The description 'Apply retention policy to memory' clearly states the action (apply) and target (retention policy to memory), but it's somewhat vague about what 'memory' refers to in this context and doesn't distinguish this tool from sibling tools like 'memory_forget' or 'security_gdpr_delete' which might have related functions. It's better than a tautology but lacks specificity about the scope and mechanism.

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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, when this tool is appropriate compared to siblings like 'security_gdpr_delete' or 'memory_forget', or any context for applying retention policies. This leaves the agent with no usage direction beyond the basic purpose.

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
redactNoReturn redacted version
textYesText to scan

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_migrateC

Migrate from legacy JSON format to SQLite

ParametersJSON Schema
NameRequiredDescriptionDefault
create_backupNoCreate backup before migration
dry_runNoPerform dry run without changes
extract_conceptsNoExtract concepts during migration

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions migration but doesn't explain critical behaviors like whether this is a destructive operation, what permissions are needed, if it's reversible, or what happens to the original JSON data. For a migration tool with zero annotation coverage, this leaves significant gaps in understanding the tool's impact.

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, efficient sentence that immediately conveys the core purpose without any wasted words. It's appropriately sized and front-loaded, making it easy to parse while covering the essential action.

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 migration tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the migration entails, what systems are affected, success/failure conditions, or output format. Given the complexity implied by 'migrate' and the lack of structured behavioral data, more context is needed for the agent to use this tool effectively.

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 all three parameters (create_backup, dry_run, extract_concepts) with clear descriptions. The tool description adds no additional parameter information beyond what's in the schema, which is acceptable but not exceptional given the comprehensive schema 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 clearly states the action ('Migrate') and the resources involved ('from legacy JSON format to SQLite'), making the purpose immediately understandable. However, it doesn't distinguish this tool from its siblings like 'system_status' or other system tools, which would be needed for a perfect score.

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 provides no guidance on when to use this tool versus alternatives, prerequisites, or context for migration. Given siblings like 'system_status' and various security tools, there's no indication of when migration is appropriate or how it relates to other system operations.

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. 27 tool updatesv1.0.0
    • First observedconcept_allowlist
    • First observedconcept_get
    • First observedconcept_save
    • First observedconcept_search
    • First observedcontext_preview
    • First observedcontext_rules_get
    • First observedcontext_rules_set
    • First observedmemory_forget
    • First observedmemory_get_recent
    • First observedmemory_link
    • First observedmemory_save
    • First observedmemory_search
    • First observedprd_fetch
    • First observedprd_update
    • First observedproject_current
    • First observedproject_list
    • First observedproject_switch
    • First observedprompt_build
    • First observedsecurity_encrypt
    • First observedsecurity_gdpr_delete
    • First observedsecurity_gdpr_export
    • First observedsecurity_rbac_check
    • First observedsecurity_rbac_grant
    • First observedsecurity_retention_apply
    • First observedsecurity_scan
    • First observedsystem_migrate
    • First observedsystem_status

TDQS

B3.2/5.0

Scored across 27 tools

Disambiguation4/5

Most tools have distinct purposes with clear resource-action pairs, such as concept_get vs. concept_search or memory_save vs. memory_search. However, some tools like security_encrypt and security_scan could be confused for overlapping security functions, and context_preview vs. context_rules_get might cause minor ambiguity in context management.

Naming Consistency5/5

The tool names follow a highly consistent verb_noun pattern throughout, with clear prefixes like concept_, context_, memory_, prd_, project_, prompt_, security_, and system_. All tools use snake_case uniformly, making them predictable and easy to parse for agents.

Tool Count3/5

With 27 tools, the count is borderline high for a single server, suggesting potential over-scoping. While the tools cover multiple domains (concepts, context, memory, PRD, projects, prompts, security, system), this many tools might overwhelm agents or indicate fragmentation rather than a cohesive set.

Completeness4/5

The tool set provides comprehensive coverage across key domains like concept management, memory handling, project operations, and security, with clear CRUD-like operations. Minor gaps exist, such as no direct tool for deleting concepts or updating memories, but agents can likely work around these with available tools like memory_forget or concept_save.

Related MCP Connectors

Related MCP Servers