Skip to main content
Glama
miles990

sqlite-memory-mcp

by miles990

sqlite-memory-mcp

npm version License: MIT

統一的 SQLite Memory MCP Server,為 Claude Code 生態系提供智能記憶管理

特色

  • 跨專案記憶共享 — 學一次,處處可用

  • FTS5 全文搜尋 — 毫秒級搜尋,精確匹配

  • Skill 效果追蹤 — 知道什麼最有效

  • 失敗經驗索引 — 不重複犯錯

  • Context 狀態共享 — 跨 Skill 無縫傳遞

  • 零外部依賴 — 純 SQLite,無需 PyTorch/ONNX

Related MCP server: Memory MCP

效能

指標

傳統方案

sqlite-memory-mcp

Token/搜尋

~2300

~200 (-91%)

搜尋速度

~20ms

~3.5ms (5.7x)

外部依賴

PyTorch/ONNX

並發支援

JSONL 無

SQLite WAL

安裝

從 npm 安裝(推薦)

npm install -g sqlite-memory-mcp

從源碼安裝

git clone https://github.com/miles990/claude-memory-mcp.git
cd claude-memory-mcp
npm install
npm run build

配置 Claude Code

~/.claude/.mcp.json 加入:

{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["sqlite-memory-mcp"]
    }
  }
}

或如果從源碼安裝:

{
  "mcpServers": {
    "memory": {
      "command": "node",
      "args": ["/path/to/claude-memory-mcp/dist/index.js"]
    }
  }
}

工具列表 (23 tools)

Memory 工具 (6)

工具

說明

memory_write

寫入記憶到知識庫

memory_read

讀取特定記憶

memory_search

FTS5 全文搜尋

memory_list

列出記憶(可過濾)

memory_delete

刪除記憶

memory_stats

統計資訊

Skill 工具 (7)

工具

說明

skill_register

註冊 skill 安裝

skill_get

取得 skill 資訊

skill_list

列出所有 skill

skill_usage_start

開始使用追蹤

skill_usage_end

結束使用追蹤

skill_recommend

智能推薦(基於成功率)

skill_stats

使用統計

Context 工具 (5)

工具

說明

context_set

設定 context 值

context_get

取得 context 值

context_list

列出 session context

context_clear

清除 context

context_share

跨 session 共享

Failure 工具 (5)

工具

說明

failure_record

記錄失敗經驗

failure_search

FTS5 搜尋解法

failure_list

列出失敗記錄

failure_update

更新解法

failure_stats

失敗統計

資料庫

位置:~/.claude/claude.db

自動建立 schema,包含:

  • memory 表 + memory_fts FTS5

  • skills

  • skill_usage

  • failures 表 + failures_fts FTS5

  • context

使用範例

記憶搜尋

memory_search query="TypeScript pattern"
memory_list scope="global"

Skill 追蹤

skill_usage_start skill_name="evolve"
skill_usage_end usage_id=1 success=true outcome="completed"
skill_recommend project_type="typescript"

失敗經驗

failure_record error_pattern="TypeError: undefined" solution="Check null values"
failure_search query="TypeError undefined"

與競品比較

功能

server-memory

doobidoo

sqlite-memory-mcp

存儲

JSONL

SQLite-vec

SQLite WAL

搜尋

關鍵字

向量

FTS5 全文

Skill 追蹤

-

-

失敗索引

-

-

Context 共享

-

-

外部依賴

PyTorch

與 evolve skill 整合

此 MCP Server 設計為與 self-evolving-agent 整合:

  • CP1: 使用 memory_search + failure_search 搜尋經驗

  • CP3.5: 使用 memory_write 記錄學習

  • CP5: 使用 failure_record 記錄失敗

  • Skill 追蹤: 自動追蹤使用成功率

License

MIT

Available Tools

23 tools
context_clearC

Clear context values

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNoOptional session ID to clear specific session

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations available, the description carries the full burden of behavioral disclosure. It states 'clear' implying destructive behavior, but does not explain whether this clears all context or only a specific session, whether the action is reversible, or any side effects. This is a significant gap 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.

Conciseness3/5

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

The description is extremely short (three words), which is concise but under-specified. It does not waste words, but it also fails to front-load necessary context. The brevity feels like under-specification rather than effective conciseness, especially given the lack of behavioral details.

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?

The tool is part of a larger context/memory suite, but the description gives no sense of how clearing context fits into the workflow. There is no output schema, no annotations, and no explanation of scope or consequences. For a destructive operation, the description is incomplete and leaves the agent without enough information to invoke it safely.

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 one parameter, session_id, with a clear description. Schema description coverage is 100%, so the baseline is 3. The tool description adds no additional parameter semantics beyond what the schema provides, but the schema itself sufficiently explains the parameter's purpose.

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 'Clear context values' clearly identifies the action (clear) and the resource (context values). It is distinguishable from sibling tools like context_set and context_get, though it could be more specific about what 'context values' entails. The verb+resource structure is clear and non-tautological.

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 like memory_delete or context_share. There is no mention of prerequisites, exclusions, or typical scenarios. The description implies clearing context but gives no context on when that is appropriate.

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

context_getC

Get a context value

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesContext key
session_idYesSession identifier

TDQS

C2.4/5.0
Behavior1/5

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

With no annotations provided, the description must disclose behavioral traits itself, but it merely restates the tool's name. It does not mention whether the operation is read-only, what happens if the key does not exist, or any side effects.

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

Conciseness2/5

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

The description is a single short sentence, but it is under-specified and adds no value beyond the tool name. It is not appropriately sized because it omits necessary context, making it an incomplete, not merely concise, description.

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 simple getter with no output schema, the description should explain the return value and error behavior, but it does not. It also does not clarify the role of session_id or how the context value is scoped, leaving the agent underinformed.

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 describes both parameters (key as 'Context key' and session_id as 'Session identifier') with 100% coverage, so the baseline is 3. The description adds no further semantic meaning beyond implying that the key identifies the value within a session.

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 uses the verb 'get' and identifies the resource as 'a context value', clearly indicating a retrieval operation. However, it does not differentiate from sibling tools like context_list or memory_read, which also perform read operations.

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 lacks any mention of prerequisites, exclusions, or scenarios where context_get is preferred over context_list or memory_read.

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

context_listA

List all context values for a session

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesSession identifier

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description is the sole source of behavioral disclosure. It states the action but does not disclose whether the operation is read-only, what the return payload looks like, whether pagination applies, or any permission requirements. The word 'list' implies a read operation, but this is not made explicit.

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 with the verb front-loaded. Every word earns its place; zero wasted words. It is appropriately sized for the tool's simplicity.

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

Completeness3/5

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

The tool is simple with one parameter, no output schema, and no annotations, but the description gives no indication of the response format, whether 'all' includes metadata, or if there are pagination limits. While the action is clear, the lack of any return-value context leaves a gap in completeness for an AI agent to understand what to expect.

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% since 'session_id' has the description 'Session identifier'. The tool description adds no additional semantic detail beyond the schema, so it meets the baseline but does not exceed it. No examples, format hints, or relationship to other parameters are provided.

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

Purpose5/5

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

The description uses the specific verb 'List' with the resource 'context values' and scopes it to 'for a session', clearly distinguishing it from sibling tools like context_get (single value) and context_set (write operation). It is immediately obvious what the tool does.

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

Usage Guidelines3/5

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

The description implies usage ('List all context values for a session') but gives no explicit when-to-use or when-not-to-use guidance. It does not mention alternatives such as context_get for a single value or context_search for filtering, so the guidance is only implied by contrast with sibling tool names.

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

context_setB

Set a context value for cross-skill state sharing

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesContext key
valueYesContext value (any JSON-serializable type)
session_idYesSession identifier
skill_nameNoOptional skill name that set this context
expires_in_minutesNoOptional expiration time in minutes

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description must carry the full burden of behavioral disclosure, but it only states 'Set a context value'. It does not mention overwrite behavior, scoping by session, expiration, or any side effects, which are crucial 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 concise sentence with no fluff, front-loading the action and purpose. Every word contributes value, making it appropriately sized for a tool with this simplicity.

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 5-parameter schema, no annotations, and no output schema, the description is too sparse to fully inform the agent. It does not explain the return value, overwrite semantics, expiration behavior, or how this tool differs from memory_write, leaving significant gaps for a state-setting operation.

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

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents all five parameters with descriptions (100% coverage), so the description does not need to explain parameter syntax. However, the description adds no semantic context beyond the schema, such as how 'cross-skill state sharing' relates to session_id or skill_name, leaving the baseline score of 3 unchanged.

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

Purpose5/5

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

The description uses the explicit verb 'Set' and identifies the resource as 'context value' with a purpose ('cross-skill state sharing'), clearly distinguishing it from sibling tools like context_get, context_clear, and context_share. This provides a specific action and scope.

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

Usage Guidelines3/5

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

The description implies usage for cross-skill state sharing, which suggests when to use it, but it does not explicitly state when not to use it or point to alternatives such as memory_write or context_share. There is no exclusion or comparative guidance, so the usage context is only implied.

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

context_shareC

Share context from one session to another

ParametersJSON Schema
NameRequiredDescriptionDefault
keysNoOptional specific keys to share
to_sessionYesTarget session ID
from_sessionYesSource session ID

TDQS

C2.7/5.0
Behavior1/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 'share', which is ambiguous: does it copy or move context? What happens when the target already has context? Does omitting 'keys' share everything? None of these are addressed. The schema partially helps, but the description itself adds no 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?

The description is a single, economical sentence with no filler or redundancy. It front-loads the action and resource, and every word earns its place. While it could be more informative, it remains highly concise.

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 that transfers context between sessions, the description is under-specified. It does not explain default behavior (e.g., sharing all keys when 'keys' is omitted), side effects (copy vs. move), or return values. The schema mitigates some gaps, but the overall description is inadequate for an agent to fully predict tool behavior.

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 provides 100% coverage for all three parameters, including clear descriptions for optional keys, target session, and source session. The description adds no additional parameter information, so it stays at the baseline score of 3.

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 ('share') and the resource ('context') with directional scope ('from one session to another'). This distinguishes it from sibling context tools like context_set or context_get, though it does not explicitly name alternatives. It misses the optional 'keys' detail, but the core purpose is unambiguous.

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 like context_set or memory_write. There are no exclusions, conditions, or references to sibling tools. The description only states the action, leaving the agent to infer applicability without support.

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

failure_listC

List failure experiences

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results
skill_nameNoOptional skill name filter

TDQS

C2.1/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 merely states 'list' without explaining behavior such as pagination, sorting, maximum results, or what a 'failure experience' entails. This is insufficient for an agent to understand side effects or execution characteristics.

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?

The description is a single concise sentence, which is easy to read. However, it is under-specified and lacks any structural elements like examples or additional context. It reads as a fragment rather than a well-rounded tool description.

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?

This is a simple list tool with two parameters and a partial schema, but the description provides no information about return format, pagination, relevance, or how it compares to failure_search. The lack of annotations and output schema makes the description inadequate for an agent to fully understand the tool's context and capabilities.

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 'limit' and 'skill_name' already documented. The tool description adds no additional meaning to the parameters. Because the schema handles parameter semantics well, the baseline of 3 is appropriate.

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

Purpose2/5

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

The description 'List failure experiences' directly restates the tool name 'failure_list' without adding any specifics beyond the resource type. It does not differentiate itself from sibling tools like failure_search, which likely provides similar functionality. This is essentially a tautology.

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

Usage Guidelines1/5

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

There is no guidance on when to use this tool versus alternatives such as failure_search. The description contains no context about preferred use cases, limitations, or exclusions. The only hint of a filter is in the parameter schema, but the description itself offers no usage direction.

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

failure_recordC

Record a failure experience for future reference

ParametersJSON Schema
NameRequiredDescriptionDefault
solutionNoSolution that fixed the error
skill_nameNoRelated skill name
project_pathNoProject where error occurred
error_messageNoActual error message
error_patternYesError pattern or type

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 responsibility for behavioral disclosure. It only says 'for future reference', which implies persistence but doesn't clarify side effects, whether it overwrites existing records, or what response to expect. For a write operation, 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.

Conciseness4/5

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

The description is a single sentence, concise and front-loaded. The phrase 'for future reference' provides a hint of purpose without extra fluff. However, it is slightly redundant with the tool name, preventing a perfect score.

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 tool has 5 parameters, no output schema, and no annotations, the one-sentence description is insufficient. It doesn't explain how the parameters relate, the required error_pattern, or what constitutes a successful record. The description is minimal and leaves the agent with many unresolved questions.

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

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters already have meaningful descriptions. The tool description adds no additional parameter semantics, so the baseline 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 'Record a failure experience for future reference' clearly states the verb ('Record') and resource ('failure experience'), which aligns with the tool name 'failure_record'. It distinguishes itself from sibling search/list/stats tools by implying a create/write operation, though it doesn't explicitly exclude update/delete behavior.

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 failure_update or memory_write. There are no preconditions, exclusions, or mentions of related tools. The agent is left to infer usage 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.

failure_statsC

Get failure statistics

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 full burden. It only states it gets statistics, but does not disclose whether it is read-only, what aggregation is performed, or what the output format is. 'Get' implies a safe read, but no further detail is given.

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?

The description is a single sentence, which is concise, but it is under-specified. It could be considered too vague to be fully useful, but it is not overly verbose. It earns a middle score for structure 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 the tool has no parameters and no output schema, the description should describe what statistics are returned. It does not, leaving the agent unclear about the return value. The tool is simple but the description lacks necessary context for effective invocation.

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 zero properties, so parameters are not a concern. The description doesn't need to explain parameters, and with no params, the baseline score of 4 applies.

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

Purpose4/5

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

The description uses a specific verb 'Get' and resource 'failure statistics', which distinguishes it from sibling tools like failure_list or failure_search that return raw records. However, it doesn't specify what statistics are included, making it somewhat vague but still clear about its general purpose.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus failure_list or failure_search. The description does not mention any exclusions, prerequisites, or alternatives, leaving the agent to infer usage from the tool name alone.

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

failure_updateB

Update a failure record with a solution

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesFailure record ID
solutionYesSolution for the failure

TDQS

B3.3/5.0
Behavior1/5

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

No annotations are provided, and the description gives no behavioral context beyond the verb 'update'. It does not disclose whether the solution overwrites previous solutions, what happens if the record doesn't exist, or any side effects, leaving the safety and behavior profile completely opaque.

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 sentence that packages the verb and target concisely. It is front-loaded and contains no redundant words, making it highly efficient for understanding the tool's core function.

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 only two parameters and no output schema, the description is minimally adequate. However, it lacks key context such as error behavior on missing IDs or whether the update is partial/full, which leaves some ambiguity for an agent invoking the tool.

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

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%; both 'id' and 'solution' already have descriptions. The tool description adds no additional semantic meaning beyond what the schema provides, so the baseline of 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 action ('Update'), the resource ('a failure record'), and the specific purpose ('with a solution'). It distinguishes the tool from sibling tools like failure_record, failure_search, and failure_list, which handle other operations.

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 usage is implied: you use this tool to attach a solution to an existing failure record. However, the description does not explicitly state when to use this over alternatives or mention any exclusions, providing only minimal guidance.

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

memory_deleteB

Delete a memory entry

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesKey of the memory to delete

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must convey behavioral traits on its own. It only states the operation ('Delete a memory entry') but does not disclose whether the deletion is permanent, what happens if the key does not exist, or any side effects. For a mutation tool, this is insufficient transparency.

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, focused sentence with no filler. It is appropriately sized for a simple CRUD operation and clearly front-loads the action ('Delete') and the target ('memory entry').

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 (one parameter, no output schema) and the absence of annotations, the description is minimally viable but lacks behavioral context. It does not mention irreversibility or failure behavior, which would be expected for a mutation tool, leaving some gaps for the 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?

The schema description coverage is 100% for the single required 'key' parameter, with the schema already explaining 'Key of the memory to delete'. The description adds no additional parameter semantics beyond what the schema provides, so the baseline of 3 applies.

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

Purpose5/5

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

The description clearly states the tool's function with a specific verb ('Delete') and a specific resource ('a memory entry'). This distinguishes it from sibling tools like memory_write, memory_read, and memory_list, which perform different operations on the same resource.

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. There is no mention of conditions that warrant deletion, prerequisites (e.g., key existence), or exclusions (e.g., when to use context_clear instead). It leaves the agent to infer usage purely from the name and schema.

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

memory_listC

List memory entries with optional filters

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results
scopeNoFilter by scope
prefixNoFilter by key prefix

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 only says 'List memory entries' and does not mention ordering, pagination, return format, authentication needs, rate limits, or whether this is a safe read operation. This is a minimal disclosure with no additional 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?

The description is a single sentence with only five key words, front-loaded with the verb and resource. It contains no redundant information or filler, making it highly concise and easily parsable by an agent.

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 being a simple listing tool, the description lacks important context. There is no output schema or mention of return values, no guidance on filtering behavior (e.g., whether prefix is exact match), and no explanation of how this tool relates to the broader memory/context tool family. The description is technically present but incomplete for making an informed invocation decision.

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 the schema already describes all three parameters (limit, scope, prefix) with brief descriptions. The tool description adds no new semantic detail beyond the word 'filters', so it does not improve on the schema's parameter documentation.

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 uses a specific verb ('List') and resource ('memory entries') with explicit mention of optional filters. It clearly states what the tool does, but does not distinguish it from sibling tools like memory_search or memory_read, which may also list or retrieve memory content.

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 such as memory_search or memory_read. The phrase 'optional filters' implies filtering capability but does not explain the intended use cases, exclusions, or prerequisites.

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

memory_readA

Read a specific memory entry by key

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesKey of the memory entry to read

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It indicates the operation is a read, implying non-destructive behavior, but it does not address edge cases like missing keys, return format, or any side effects. The minimal wording provides some transparency but leaves common behavioral questions unanswered.

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 action and target. It contains no filler or redundant information, earning a top score.

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

Completeness4/5

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

The tool is simple—one parameter, no output schema, and no annotations—so the description is largely complete for basic usage. However, it could mention what happens when the key is not found or what the return value looks like, but given the low complexity, the current description is near-sufficient.

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 already covers the single parameter 'key' with a description, achieving 100% schema coverage. The description adds little beyond the schema—'specific memory entry' and 'by key' mostly rephrase the schema. As a result, it does not significantly enhance parameter understanding beyond the baseline.

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

Purpose5/5

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

The description uses a specific verb ('Read') and resource ('memory entry') with a clear scope ('by key'). It clearly distinguishes from sibling tools like memory_write, memory_delete, and memory_list, which serve different purposes.

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

Usage Guidelines4/5

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

The phrase 'by key' implies the intended use case of retrieving a single known memory entry, which is distinct from listing (memory_list) or searching (memory_search). However, it does not explicitly mention when not to use this tool or name alternative tools, so it lacks full exclusionary guidance.

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

memory_statsC

Get memory statistics

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.6/5.0
Behavior1/5

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

No annotations are provided, so the description must carry the full behavioral burden. It only restates the tool's name and doesn't disclose read-only nature, return format, rate limits, authentication needs, or potential side effects. The description adds no transparency beyond the tool name itself.

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 with no wasted words. It is front-loaded and easy to parse. While it could include more detail, it is appropriately sized for its simplicity.

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?

With no output schema and no annotations, the description should explain what kind of memory statistics are returned, but it doesn't. It leaves the agent guessing about the output and context, making it incomplete for a stats-fetching tool.

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

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, and the schema is empty with 100% coverage. The description doesn't need to add parameter semantics, and the baseline for zero parameters is 4. It doesn't mislead or obscure anything about parameters.

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 a specific action ('Get memory statistics') and resource, but 'statistics' is vague and it doesn't distinguish from sibling stats tools like skill_stats or failure_stats. It's not a tautology, but lacks specificity about what statistics are provided.

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 given on when to use this tool versus alternatives such as memory_list or memory_write. There is no mention of use cases, prerequisites, or exclusions, leaving the agent without 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.

memory_writeC

Write a memory entry to the knowledge base

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesUnique key for the memory entry (e.g., "tip:typescript:pattern-matching")
tagsNoOptional tags for categorization
scopeNoScope: "global" or "project:{name}"global
sourceNoSource of the memory (e.g., "evolve", "manual")
contentYesContent of the memory

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 full responsibility for disclosing behavioral traits. It does not mention whether writing overwrites an existing key, requires unique keys, has permission requirements, or what the return value looks like. This is a significant gap 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.

Conciseness4/5

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

The description is a single, efficient sentence with no wasted words. It is concise, but lacks the enriching details that would make it truly valuable; still it is not overlong and gets to the point.

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 output schema, and no annotations, the description is too sparse. It does not explain return values, overwrite behavior, key uniqueness, or interaction with sibling tools like memory_read/delete, leaving a notable completeness gap.

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

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All five parameters have descriptions in the schema (100% coverage), so the schema handles parameter semantics. The description adds no extra meaning beyond naming the action itself, so the baseline score of 3 applies.

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

Purpose4/5

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

The description clearly states the action ('Write') and the resource ('a memory entry to the knowledge base'), which distinguishes it from sibling read/search/list/delete operations. However, it could be more specific about the target knowledge base or the write semantics (e.g., create vs. update).

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool instead of alternatives like memory_update or context_set. The description merely states what it does, leaving the agent to infer usage context.

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

skill_getC

Get skill information

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSkill name

TDQS

C2.2/5.0
Behavior2/5

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

With no annotations provided, the description must carry behavioral disclosures. It only says 'Get' which implies a read operation, but does not state side effects, error handling, access requirements, or return format. This is insufficient for a tool with no other metadata.

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

Conciseness2/5

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

The description is brief (three words), but it is under-specified and simply restates the tool name. It lacks substantive content, making it less a model of conciseness and more a symptom of missing information.

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

Completeness2/5

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

Although the tool has a simple single-parameter schema, there is no output schema and no annotations. The description does not explain what information is returned, how it differs from 'skill_list', or what happens if the skill name does not exist, so it is not fully 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?

The input schema fully documents the single 'name' parameter with a description ('Skill name'), and the tool description adds no additional meaning. With 100% schema coverage, the baseline score of 3 is appropriate.

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

Purpose2/5

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

The description 'Get skill information' is a near-verbatim restatement of the tool name 'skill_get' and provides no additional specificity. It does not distinguish from sibling 'skill_list' or clarify that it retrieves a single skill by name.

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 like 'skill_list' or 'skill_stats'. It does not mention prerequisites, such as requiring a skill name, or scenarios where this tool is preferred.

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

skill_listA

List all registered skills

ParametersJSON Schema
NameRequiredDescriptionDefault
project_pathNoOptional project path filter

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It clearly indicates a read operation ('List') but does not mention the optional project_path filter or describe the return format. It adds minimal context beyond the tool's name, so a mid-range score is appropriate.

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, complete sentence: 'List all registered skills'. It is concise, front-loaded, and contains no filler or redundant content. Every word contributes to the meaning.

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

Completeness3/5

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

The tool is simple with one optional parameter and no output schema. The description provides the core purpose but omits key context such as the optional filtering behavior (implied by the parameter) and the return value shape. Given the simplicity, it is adequate but not fully 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?

Schema coverage is 100%: the only parameter, project_path, is fully described in the input schema as an 'Optional project path filter'. The description itself adds no parameter information, and the baseline for high schema coverage is 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 'List all registered skills' uses a specific verb (list) and resource (registered skills), clearly distinguishing from sibling tools like skill_get (retrieves a specific skill) and skill_recommend. The scope is explicit ('all registered'), making the purpose unambiguous.

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 that this tool is for listing all skills, which serves as basic usage guidance. However, it does not explicitly state when to use this rather than skill_get or other sibling tools, nor does it exclude any cases. No alternative tools are mentioned.

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

skill_recommendC

Get skill recommendations based on project type and success rates

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum recommendations
project_typeNoOptional project type to filter by

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 disclosing behavior. It does not state whether the tool is read-only, whether it involves side effects, or how success rates are used to order recommendations. The lack of such context 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 concise sentence with no unnecessary words. It front-loads the primary action and includes relevant criteria, earning a high score for efficiency.

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 the simple tool signature with only two optional parameters, the description lacks information about output format, recommendation criteria, or typical use cases. No annotations or output schema exist to compensate, making the description incomplete for a new 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?

The input schema already provides clear descriptions for both parameters (limit and project_type), so baseline is 3. The description adds the 'success rates' context, which hints at the ranking logic, but does not elaborate on how parameters influence results beyond the schema.

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

Purpose4/5

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

The description clearly states the function: get skill recommendations based on project type and success rates. This distinguishes it from sibling tools like skill_get or skill_list, which focus on retrieval or listing, though it could be more explicit about the recommendation nature.

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 such as skill_list or skill_get. It does not mention scenarios, prerequisites, or exclusions, leaving the agent to infer proper usage.

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

skill_registerC

Register a skill installation

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSkill name
sourceYesSource (e.g., "plugin:evolve@evolve-plugin")
versionYesSkill version
installed_byNoWho installed it
project_pathNoOptional project path where installed

TDQS

C2.1/5.0
Behavior1/5

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

No annotations are provided, so the description carries full responsibility for behavioral disclosure. 'Register' implies a write operation, but side effects, idempotency, permissions, and return values are completely unexplored. The description is a bare phrase with no 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.

Conciseness2/5

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

The description is only one short sentence, but it is not appropriately sized because it is under-specified rather than concise. It lacks necessary details and does not earn its place with useful information. A concise description should still convey essential usage context.

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

Completeness1/5

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

With 5 parameters, 3 required, no output schema, and no annotations, this description is drastically insufficient. It does not explain what happens on success, how the tool behaves, or how it fits into the skill management workflow. The description is effectively a single phrase and fails to provide any contextual depth.

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 schema provides basic field names and descriptions (e.g., 'Skill name', 'Source (e.g., "plugin:evolve@evolve-plugin")'), but the tool description itself adds no additional meaning about how parameters relate or are used. The schema descriptions are sufficient for a baseline, but nothing extra is contributed.

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 'Register a skill installation' uses a verb and resource, but 'register' is vague and doesn't specify what the action entails or how it differs from sibling tools like skill_usage_start or skill_recommend. It is not a tautology, but it lacks the specificity to fully distinguish the tool's purpose.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool vs alternatives. The description only implies it is for recording an installation, but does not mention exclusions, prerequisites, or related tools. This is insufficient for an agent to choose it confidently over sibling tools.

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

skill_statsB

Get skill usage statistics

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, the description offers minimal behavioral context beyond the read intent implied by 'get'. It does not disclose whether statistics are aggregated, which skills are covered, or any access 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?

The description is a single front-loaded sentence with no redundant wording, earning full marks for brevity.

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 zero-parameter tool, the description is adequate at a high level, but without an output schema, it leaves unclear the shape or content of the returned statistics. It could mention whether results are counts, durations, or per-skill breakdowns.

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?

Since the tool takes zero parameters, the empty schema fully covers parameter documentation. The description adds no parameter semantics, but none are needed, aligning with the baseline of 4 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 uses the verb 'get' and identifies the resource as 'skill usage statistics', which distinguishes it from sibling tools like skill_usage_start/end and skill_list. However, it lacks specificity about what metrics are included, keeping it from 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?

No usage guidance or alternatives are provided. The description only states the action without telling the agent when to choose this over similar tools like failure_stats or skill_usage_start.

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

skill_usage_endC

End skill usage tracking

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoOptional notes
outcomeNoOutcome description
successYesWhether the skill usage was successful
usage_idYesUsage ID from skill_usage_start
tokens_usedNoEstimated tokens used

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 does not state whether this tool updates a usage record, requires a success flag, calculates duration, or handles invalid usage_ids. The minimal phrase gives no insight into side effects or 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?

The description is a single concise sentence with no wasted words. It is appropriately sized for a simple mutation tool, though it sacrifices depth for 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?

The tool has a clear workflow (paired with skill_usage_start) and five parameters, but the description offers no context about how to use it correctly. There is no output schema, and the description does not explain the lifecycle or expected behavior, leaving the agent with insufficient information for proper invocation.

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 provides 100% coverage with descriptions for all five parameters, including 'Usage ID from skill_usage_start' for usage_id. The description adds no additional meaning beyond the schema, so the 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 'End skill usage tracking' uses a specific verb and resource, clearly indicating the action of stopping a tracking session. It distinguishes from the sibling tool skill_usage_start, which implies the complementary action. However, it lacks detail on what 'end' entails, such as recording final results or updating a record.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives, nor any prerequisites like calling skill_usage_start first to obtain a usage_id. The description provides no context for the expected workflow or exclusions, leaving the agent to infer usage.

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

skill_usage_startC

Start tracking skill usage

ParametersJSON Schema
NameRequiredDescriptionDefault
skill_nameYesName of the skill being used
project_pathNoOptional project path

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, but it only states 'Start tracking skill usage' without explaining side effects, idempotency, or what state changes occur. It does not clarify whether starting tracking creates a session, overwrites existing sessions, or requires prior setup, leaving significant behavioral ambiguity.

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 wasted words, making it highly concise and front-loaded with the key action. It lacks any additional structure or context, but for a simple tool this is acceptable. It would earn a 5 if it incorporated more value without becoming verbose.

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?

The tool is a state-changing operation with no annotations and no output schema, so the description should provide workflow context. It does not mention that a tracking session should eventually be ended with 'skill_usage_end', nor does it explain the lifecycle or any consequences of calling the tool. Parameter schema is complete, but the overall context is insufficient for an agent to fully understand the tool's role.

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 both parameters (skill_name and project_path) are already documented with meaningful descriptions. The tool description adds no parameter-specific meaning, which is acceptable given the schema carries the full burden. There are no enums or nested objects complicating parameter understanding.

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 ('Start tracking') and the resource ('skill usage'), making the tool's purpose understandable. It implicitly distinguishes itself from the sibling tool 'skill_usage_end' by indicating the starting point of a tracking lifecycle. However, it lacks detail on what 'tracking' entails, leaving some ambiguity about the exact scope.

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 usage guidance is provided. The description does not state when to use this tool versus alternatives, nor does it mention the companion tool 'skill_usage_end' or any prerequisites for tracking. The intended context is only implied by the tool name and terse description.

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. Dates show when Glama detected each change.

  1. 23 tool updatesv1.0.2
    • First observedcontext_clear
    • First observedcontext_get
    • First observedcontext_list
    • First observedcontext_set
    • First observedcontext_share
    • First observedfailure_list
    • First observedfailure_record
    • First observedfailure_search
    • First observedfailure_stats
    • First observedfailure_update
    • First observedmemory_delete
    • First observedmemory_list
    • First observedmemory_read
    • First observedmemory_search
    • First observedmemory_stats
    • First observedmemory_write
    • First observedskill_get
    • First observedskill_list
    • First observedskill_recommend
    • First observedskill_register
    • First observedskill_stats
    • First observedskill_usage_end
    • First observedskill_usage_start

TDQS

B3/5.0
Disambiguation5/5

Each tool follows a clear resource-action pattern (memory, context, skill, failure) with distinct operations. List vs search tools are differentiated by retrieval mechanism, so no two tools are ambiguous.

Naming Consistency5/5

All tools use a consistent resource_verb snake_case pattern (e.g., memory_write, context_set, skill_usage_start). The naming is uniform and predictable, making it easy to infer functionality.

Tool Count3/5

At 23 tools, the server covers four distinct resource areas, but this is on the heavy side. While each tool serves a purpose, the volume approaches the upper boundary of what is typical for a coherent server.

Completeness3/5

The surface covers CRUD for memory and context, but memory lacks an update operation, and skills/failures have no delete operation. These are notable lifecycle gaps that agents may need to work around.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • 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
    Persistent memory + FTS5 full-text search for Claude Code conversation history. Indexes ~/.claude/projects/ JSONL into SQLite, exposes 10 MCP tools (store/recall/search memories, browse sessions, get summaries) plus prompts. Includes a web UI for visual exploration
    10
    94
    91
    MIT
  • -
    license
    Not graded
    quality
    D
    maintenance
    Provides persistent memory for AI assistants like Claude, storing and retrieving information across conversations using a local SQLite database.
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/miles990/sqlite-memory-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server