Skip to main content
Glama
admin0330

KnowledgeBase MCP

by admin0330

📚 KnowledgeBase MCP (kb-mcp)

License: MIT Python 3.10+ MCP Standard

A portable, mount-tolerant Model Context Protocol (MCP) server for personal knowledge bases on external storage (macOS APFS / external SSDs).

专为外置固态硬盘/大容量移动存储设计的个人知识库 MCP 智能服务,具备热插拔防崩溃、混合语义与全文检索(FTS5 + BM25 + FastEmbed)、AI 自动化整理与原子大纲自愈能力。


🌟 核心特性

  • 即用即连与拔盘容错 (Mount-Tolerant):

    • 硬盘未连接时,服务优雅返回离线占位状态,绝不导致 Claude Desktop 或 Cursor 启动崩溃。

  • 结构化收敛架构:

    • 外置硬盘根目录下仅保留单一 Database/ 文件夹,整洁清爽,内含待整理收件箱 _Inbox 与分类归档。

  • 混合检索能力:

    • 内置基于 SQLite FTS5 的 Trigram 中文子串分词 + BM25 排名,并可选 FastEmbed 本地向量语义召回。

  • AI 智能整理工作流:

    • 提供 kb_scan_inbox、kb_move_file、kb_rename_file、kb_update_index_md 等工具,支持 AI 全自动内容分析、规范化重命名归档并同步更新 INDEX.md。


Related MCP server: MoonLink

🚀 方式一:直接使用 GitHub 仓库调用(零安装 / 推荐)

如果你使用 Claude Desktop、Cursor 或任何支持 MCP 的客户端,只需在配置文件中直接引用该 GitHub 仓库,即可通过 uvx 自动拉取运行,无需手动克隆代码!

Claude Desktop 配置示例

配置文件路径:~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "kb-retrieval": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/admin0330/kb-mcp.git",
        "kb-mcp"
      ],
      "env": {
        "KB_VOLUME": "/Volumes/KnowledgeBase/Database"
      }
    },
    "kb-files": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Volumes/KnowledgeBase/Database"
      ]
    }
  }
}

提示:如果需要启用向量语义检索,只需在 args 中添加 --with 和 fastembed,并设置环境变量 KB_ENABLE_SEMANTIC: "1"。


🛠 方式二:本地克隆与自包含部署

如果你希望将工具链与运行环境完全本地化(或随外置硬盘携带):

# 1. 克隆仓库
git clone https://github.com/admin0330/kb-mcp.git
cd kb-mcp

# 2. 一键配置环境 (自动通过 uv 安装 Python 3.11 独立虚拟环境)
./scripts/setup.sh

# 3. 初始化外置硬盘目录结构 (首次使用)
./scripts/init_drive.sh /Volumes/KnowledgeBase

📂 外置硬盘标准目录规范

/Volumes/KnowledgeBase/
└── Database/                  <-- 根目录唯一总入口
    ├── _Inbox/                <-- 【缓冲区】平时将待整理的文档、电子书、论文直接丢这里
    ├── 01_Documents/          <-- 通用文档、合同、方案、报告
    ├── 02_Books/              <-- 电子书、技术手册 (PDF/EPUB)
    ├── 03_Notes/              <-- 个人笔记、Markdown 卡片
    ├── 04_Archive/            <-- 历史归档文件
    ├── mcp/                   <-- 随盘携带的 MCP 系统与说明
    ├── .mcp_meta/             <-- SQLite 检索库 (index.db) 与日志 (organize.log)
    └── INDEX.md               <-- 全库大纲索引(AI 整理后自动同步)

🧰 提供的 MCP 工具清单

工具名称

功能描述

kb_status

报告硬盘挂载状态、分类目录以及已索引文件统计。

kb_search

全文/关键词/语义检索,返回命中的文档段落、匹配得分与来源路径。

kb_reindex

增量扫描外置硬盘中的新文件并更新索引库(支持 full=True 全量重构)。

kb_scan_inbox

扫描 _Inbox/ 目录下的待整理文件并生成内容预览供 AI 决策。

kb_move_file

将文件从一个目录移动到另一个目录,并支持原子化重命名与索引同步。

kb_rename_file

对指定文件按标准规则重命名并同步索引。

kb_create_directory

在知识库内创建新的分类子目录。

kb_read_document

提取指定文档的全文纯文本(支持 PDF、Word、PPT、EPUB、Markdown 等)。

kb_list_tree

获取指定子目录的树状结构(支持深度限制)。

kb_log

记录整理流水账到外置硬盘日志中。

kb_update_index_md

重新生成并原子化覆盖根目录下的 INDEX.md 索引大纲。

kb_health_check

检查待处理积压、死链、未收录进 INDEX.md 的孤立文件。


💬 常用日常提示词模板

1. 【一键整理收件箱】

“请调用 kb_scan_inbox 检查外置硬盘 _Inbox 里的所有新文件:

  1. 根据内容为每个文件重命名为 YYYY-MM-DD_[主题]_[关键词].[ext];

  2. 移动到对应分类目录(如 01_Documents、02_Books 等);

  3. 调用 kb_update_index_md 更新根目录索引并调用 kb_reindex 增量更新检索库。”

2. 【智能检索与问答】

“请在知识库中检索关于‘[关键词/技术点]’的资料,总结核心结论,并注明引用自哪个文件。”

3. 【知识库体检】

“请运行 kb_health_check 检查知识库健康状态,并汇报积压与未索引情况。”


📄 开源协议

本项目采用 MIT License 开源协议。

Available Tools

12 tools
kb_create_directoryB

Create a directory (and parents) under the volume root.

NameRequiredDescriptionDefault
relpathYes

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It does disclose one real trait beyond the schema: parent directories are created automatically (mkdir -p semantics). It says nothing about behavior when the directory already exists (error vs. idempotent), permissions required, or failure modes — significant gaps for a write 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?

A single front-loaded sentence with zero filler; the scope and the parents behavior are both packed into it.

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

Completeness3/5

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

An output schema exists, so return values need not be explained. However, for an unannotated mutation tool the description omits existence/overwrite behavior and error conditions, leaving an agent to guess how to handle a pre-existing path.

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?

There is one parameter at 0% schema description coverage, so the description must compensate. It partially does by implying relpath is interpreted relative to the volume root, but it does not state the path format, allowed characters, or whether a leading slash is valid.

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

Purpose4/5

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

States a specific verb and resource ("Create a directory") plus a scope constraint ("under the volume root"), which is enough to separate it from siblings like kb_move_file or kb_rename_file. It stops short of naming a sibling or explicitly contrasting, but the action 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 on when to use this versus alternatives such as kb_move_file or kb_list_tree, and no preconditions stated (permissions, whether the volume root must exist). Usage is only inferable from the name and the parenthetical "(and parents)".

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

kb_health_checkA

Audit the knowledge base for common problems.

Reports: files still in _Inbox (backlog), files on disk that are not referenced in INDEX.md (orphans), INDEX.md links that point to missing files (dead links), and files not yet in the search index.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It makes clear the tool reports rather than mutates, and it lists exactly which conditions are surfaced, which is useful. However, it does not state cost/scope of the scan (whole KB vs. partial), whether it modifies anything (e.g. rebuilding the index), or any performance caveats for large knowledge bases.

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

Conciseness4/5

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

Two short parts: a one-line purpose followed by a dense enumeration of the checks, with the purpose front-loaded. Every clause maps to a distinct output category. Minor waste only in the reST-style double-backtick markup around `_Inbox` and `INDEX.md`.

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

Completeness4/5

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

With zero parameters and an output schema present, the description only needs to explain what the audit looks for, and it does so exhaustively across four categories. The remaining gap is operational context — expected cost on a large KB and whether any remediation happens — but nothing required to invoke it is missing.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. No parameter-level gaps exist to compensate for.

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 gives a specific verb+resource ('audit the knowledge base') and then enumerates the four problem classes it reports: inbox backlog, orphans, dead links, and unindexed files. This is far more than a restatement of the name. It does not explicitly contrast itself with overlapping siblings such as kb_status, kb_scan_inbox, or kb_reindex, so an agent must infer the boundary.

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

Usage Guidelines3/5

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

Usage is implied rather than stated — 'audit for common problems' suggests a periodic or pre-cleanup diagnostic, and the enumerated checks hint at what you'd act on afterwards. There is no explicit when-to-use, when-not-to-use, or named alternative (e.g. kb_scan_inbox for inbox-only checks).

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

kb_list_treeC

List the directory tree under subdir (depth-limited).

NameRequiredDescriptionDefault
depthNo
subdirNo.

Output Schema

NameRequiredDescription
resultYes

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 the full behavioral burden; 'List' implies read-only, but it says nothing about traversal behavior, output size limits, symlink handling, or error conditions for a missing subdir. The only behavioral disclosure is the parenthetical 'depth-limited', which is vague since the actual default (2) lives in the schema.

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?

A single front-loaded sentence with no filler, appropriately sized for a simple two-parameter read. The doubled backticks around ``subdir`` are a minor formatting artifact but don't hurt 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?

An output schema exists, so return values needn't be described, but for a traversal tool with zero annotation coverage and zero schema description coverage the description leaves too much unstated: depth semantics, defaults, and whether the listing is recursive or a single level. It is not complete enough for reliable invocation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate and only partly does: it names `subdir` and gestures at `depth` via 'depth-limited', but never explains what depth counts (directory levels vs. file counts), that it defaults to 2, or that subdir defaults to '.'. An agent still has to guess the meaning of both parameters.

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

Purpose4/5

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

States a specific verb (List) and resource (directory tree) with a scoping qualifier (under subdir, depth-limited), which cleanly separates it from retrieval siblings like kb_search or kb_read_document. It doesn't explicitly name any sibling, so it stops short of 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?

No guidance on when to prefer this over kb_search, kb_scan_inbox, or kb_status. The agent must infer that this is for structural browsing rather than content lookup.

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

kb_logB

Append a line to the organize log (.mcp_meta/organize.log).

NameRequiredDescriptionDefault
messageYes

Output Schema

NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden. It does disclose the key traits — the operation is additive ('append'), non-destructive of prior content, and targets a fixed path — but says nothing about whether the meta directory is created if absent, whether lines are timestamped, or whether failures raise errors.

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?

One sentence, front-loaded with the verb and resource, with the path in parentheses as useful supporting detail. No filler; the only shortfall is that the budget was spent entirely on 'what' with nothing on 'when'.

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 one-parameter append-only logging tool with an output schema, the description covers the essential what and where, so an agent can call it. Gaps remain on line format, directory creation side effects, and when logging is expected, which matter because there are no annotations to fall back on.

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

Parameters2/5

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

Schema description coverage is 0% and the single 'message' parameter is never described. The description doesn't say whether message should be plain prose, whether newlines are allowed, or whether it is prefixed/formatted. The self-evident parameter name limits the damage, but no compensation is provided.

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

Purpose4/5

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

Specific verb ('Append') plus a specific resource ('a line to the organize log') and even the concrete target path (.mcp_meta/organize.log). This clearly separates it from read/search/mutation siblings like kb_read_document or kb_move_file, though it never explicitly names a sibling it contrasts with.

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

Usage Guidelines2/5

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

There is no statement of when an agent should call this versus doing nothing or using another tool, nor any precondition (e.g. 'call after a successful organize operation'). Usage is only inferable from the word 'log'.

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

kb_move_fileB

Move (and optionally rename) a file into a category directory.

The search index is updated in place — no reindex needed afterwards.

:param src_rel: Current path, e.g. _Inbox/report.pdf. :param dest_dir_rel: Target directory, e.g. 01_Documents. :param new_name: Optional new filename; keeps the original when empty.

NameRequiredDescriptionDefault
src_relYes
new_nameNo
dest_dir_relYes

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full behavioral burden. It usefully discloses that "the search index is updated in place — no reindex needed afterwards," but it omits important mutation behavior such as overwrite/collision handling, source deletion semantics, required permissions, and failure modes.

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 purpose is front-loaded in the first sentence, followed by a relevant index-update note and compact parameter explanations. Every line adds useful information with no filler.

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

Completeness3/5

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

An output schema exists, so return-value explanation is unnecessary. However, for a mutation tool with no annotations and a sibling kb_rename_file, the description lacks selection guidance and collision/overwrite behavior, leaving meaningful gaps for safe 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?

Schema description coverage is 0%, so the description must compensate, and it does explain all three parameters. It gives path examples for src_rel and dest_dir_rel and clarifies that new_name is optional and preserves the original filename when empty.

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

Purpose4/5

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

The description states a specific verb-plus-resource: "Move (and optionally rename) a file into a category directory." That is clear enough to identify the operation, but it does not explicitly distinguish the tool from the sibling kb_rename_file despite overlapping rename functionality.

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 implies that this tool is for moving files into category directories, but it gives no explicit when-to-use guidance, prerequisites, or exclusions. It never says when to use kb_move_file versus kb_rename_file, kb_create_directory, or other siblings.

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

kb_read_documentA

Return the extracted plain text of one document (for quoting/summarising).

:param relpath: Path relative to the volume root, e.g. _Inbox/foo.pdf. :param max_chars: Maximum characters to return (1-50000).

NameRequiredDescriptionDefault
relpathYes
max_charsNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It usefully discloses that the return is extracted text (not raw bytes), but says nothing about behavior on missing files, truncation signaling, or permission/error conditions. The output schema covers the return shape, which offsets this somewhat.

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?

One front-loaded sentence stating the purpose, followed by a compact param block. No wasted prose, though the Sphinx-style ':param' formatting is slightly redundant with the schema.

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

Completeness4/5

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

An output schema exists so return values needn't be described, and both parameters are documented. The remaining gap is error/missing-file behavior and how truncation is indicated to the caller.

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?

Schema description coverage is 0%, so the description must compensate, and it does: relpath is defined relative to the volume root with a concrete example, and max_chars is bounded (1-50000). The default value of 6000 is only in the schema, and truncation semantics aren't spelled out, keeping it short of a 5.

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

Purpose4/5

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

States a specific verb and resource: return the extracted plain text of one document. The 'one document' scope implicitly separates it from kb_search and kb_list_tree, though no sibling is named.

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 parenthetical '(for quoting/summarising)' implies a use case, but there is no explicit when-to-use/when-not guidance and no routing to kb_search for finding a path first.

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

kb_reindexA

Scan the volume and update the search index incrementally.

:param full: When true, re-extract every file instead of only changed ones.

NameRequiredDescriptionDefault
fullNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the burden. It usefully discloses the incremental-vs-full behavior and the cost implication that full re-extracts every file, but says nothing about permissions, duration, concurrency, or whether the operation is safe to interrupt or repeat.

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

Conciseness4/5

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

Two short sentences, with the primary action front-loaded. The ':param' reStructuredText artifact is slightly out of place in a tool description but costs little.

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?

A mutation-flavored maintenance tool with no annotations and an output schema (so returns needn't be explained). The one parameter is well covered, but guidance on when to run it, prerequisites, and side effects on the existing index is missing.

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?

Schema coverage is 0% for the single parameter, but the description compensates well by defining 'full' as re-extracting every file rather than only changed ones. That is the key semantic an agent needs to choose the 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?

States a specific verb+resource: scan the volume and update the search index incrementally. That distinguishes it from kb_search and kb_read_document, though it is not explicitly differentiated from kb_health_check or kb_update_index_md, which an agent might confuse with an index-maintenance operation.

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

Usage Guidelines3/5

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

Implies usage ('incrementally' vs a full re-scan) but never states when an agent should call this versus siblings such as kb_scan_inbox or kb_update_index_md, nor whether it is safe or necessary to run routinely.

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

kb_rename_fileA

Rename a file in place (same directory). Index is kept in sync.

NameRequiredDescriptionDefault
src_relYes
new_nameYes

Output Schema

NameRequiredDescription
resultYes

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 behavioral burden. It usefully discloses that the index is kept in sync and that the operation stays in the same directory, but it omits important mutation details such as overwrite behavior, permissions, failure cases, and reversibility.

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 two short sentences with no filler. The core operation and scope are front-loaded, and the index-sync note is directly relevant.

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 an output schema exists, this is a mutation tool with no annotations and zero parameter description coverage. The description leaves out collision behavior, path semantics, and permission requirements, so it is not complete enough for confident invocation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain the two required parameters. It does not clarify what 'src_rel' is relative to, whether 'new_name' should include an extension, or how target-name collisions are handled.

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

Purpose5/5

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

The description states a specific verb and resource: rename a file. The phrase 'in place (same directory)' also distinguishes it from the sibling move operation without requiring schema inspection.

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

Usage Guidelines4/5

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

It gives clear context for when this tool applies: renaming within the same directory. However, it does not explicitly name kb_move_file as the alternative for cross-directory moves or state when not to use this tool.

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

kb_scan_inboxA

List files in _Inbox with a short content preview for triage.

Use the previews to decide a target category and a new name, then call :func:kb_move_file.

NameRequiredDescriptionDefault
preview_charsNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the burden; 'List' implies a safe read, but it says nothing about permissions, ordering, limits, or whether subdirectories of _Inbox are included. The triage-workflow sentence adds genuine context beyond the structured fields, which earns partial credit.

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

Conciseness5/5

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

Two short sentences, front-loaded with the core action and its scope, followed by the follow-up step. No filler or restated name.

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?

Return values are covered by the output schema, so the remaining gaps are behavioral and parametric: recursion, result limits, and preview_chars meaning. Adequate to call the tool, but not complete for a tool whose parameter is entirely undocumented.

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

Parameters2/5

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

preview_chars has 0% schema description coverage and the description never mentions it. 'Short content preview' gestures at controllable preview length but does not state units, defaults, truncation behavior, or acceptable ranges, so the single parameter remains effectively undocumented.

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

Purpose4/5

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

States a specific verb ('List'), resource ('files'), and a narrow scope ('_Inbox'), plus an output shape ('short content preview'). This differentiates it in practice from kb_list_tree's whole-tree listing and kb_search, though no sibling is named explicitly.

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

Usage Guidelines4/5

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

Explicitly describes the downstream workflow: use previews to pick a target category and new name, then call kb_move_file. That is a clear when-to-use signal, but it gives no exclusions or guidance on when kb_list_tree or kb_search would be preferred instead.

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

kb_statusA

Report whether the drive is mounted and basic index statistics.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description must carry the behavioral burden. 'Report' implies a non-mutating read operation and the sentence discloses the two checks performed, but it does not explicitly state safety, permissions, or error behavior when the drive is not mounted.

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

Conciseness5/5

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

The description is a single front-loaded sentence with no wasted text. It states the core behavior immediately and is appropriately sized for a zero-parameter status tool.

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

Completeness4/5

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

For a simple zero-parameter status tool with an output schema, the description is largely complete: it says what is reported and does not need to explain return values. The main remaining gap is that it does not clarify its relationship to kb_health_check.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The description does not need to explain parameter semantics, and the empty input schema is self-contained.

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 clear verb, 'Report', and names the two things reported: drive mount status and basic index statistics. It is specific about what the tool does, but it does not differentiate this status check from the sibling kb_health_check.

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 gives no explicit guidance on when to use this tool rather than alternatives such as kb_health_check. Usage is only implied by the word 'Report', with no conditions, exclusions, or alternative routing.

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

kb_update_index_mdA

Regenerate the root INDEX.md from the current directory contents.

Writes atomically (temp file + rename) so an interrupted run never leaves a truncated index.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does well by disclosing that the write is atomic via temp file plus rename, preventing truncated indexes on interruption. It still omits prerequisites such as whether the root directory must exist and whether manual edits are overwritten.

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

Conciseness5/5

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

Two short sentences with zero waste. The main action is front-loaded, and the atomic-write detail follows immediately as supporting context.

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

Completeness4/5

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

The tool is simple, has no parameters, and has an output schema, so the description does not need to explain return values. It covers the core operation and the key safety behavior, though it leaves the relationship to kb_reindex unclear.

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

Parameters4/5

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

The tool takes zero parameters, so there are no parameter semantics to explain. The description correctly adds no irrelevant parameter detail, matching the baseline for a parameterless tool.

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

Purpose4/5

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

The description names a specific verb and resource: regenerate the root INDEX.md from current directory contents. It does not, however, distinguish this from the sibling kb_reindex, which likely has overlapping semantics.

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

Usage Guidelines2/5

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

It states what the tool does but gives no explicit guidance on when to use it, when not to use it, or how it differs from kb_reindex. An agent must infer usage entirely from the name and the phrase 'from the current directory contents'.

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

Tool Schema Changelog

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

  1. 12 tool updatesv0.1.0
    • First observedkb_create_directory
    • First observedkb_health_check
    • First observedkb_list_tree
    • First observedkb_log
    • First observedkb_move_file
    • First observedkb_read_document
    • First observedkb_reindex
    • First observedkb_rename_file
    • First observedkb_scan_inbox
    • First observedkb_search
    • First observedkb_status
    • First observedkb_update_index_md

TDQS

B3.4/5.0

Scored across 12 tools

Disambiguation4/5

Most tools target a clearly distinct operation (search, read, move, rename, status, health check). Minor overlap exists between kb_move_file and kb_rename_file (move also renames), and the three 'index' concepts (kb_reindex, kb_update_index_md, kb_status) could be momentarily confused, but descriptions draw the boundaries well.

Naming Consistency4/5

All tools share a consistent kb_ prefix with mostly verb_noun snake_case names (kb_search, kb_read_document, kb_create_directory, kb_move_file). A couple of names are noun-only (kb_status, kb_log) but they remain readable and predictable.

Tool Count5/5

Twelve tools is well within the healthy range and each earns its place: search, read, browse, organize, index maintenance, and auditing. Nothing feels padded or redundant at the set level.

Completeness3/5

The lifecycle is covered for browsing, reading, moving, renaming, and index upkeep, plus a health audit. However there is no delete/archive operation and no way to create or write a document/file (only directories), which are noticeable gaps for a file-organizing knowledge base workflow.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    Not graded
    maintenance
    A local-first knowledge base server that enables AI clients to store, retrieve, and manage documents using semantic search. Provides privacy-focused, offline-capable memory for AI assistants with tools for ingesting, querying, updating, and deleting knowledge.
    7
    60 npm
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to capture bookmarks, sticky notes, todos, notes, and web archives, and to search and organize personal knowledge and memory across cloud-synced clients.
    -
  • A
    license
    A
    quality
    A
    maintenance
    Enables local AI agents to perform hybrid search (BM25 + vector) over privately indexed local files, including notes, PDFs, DOCX, source code, and OCR'd images. All indexing and retrieval stay on the machine with read-only, whitelist-scoped access.
    3
    MIT
  • F
    license
    Not graded
    quality
    A
    maintenance
    Exposes a local hybrid (vector + BM25) index of scattered notes, docs, PDFs, and chat logs to AI hosts like Claude Desktop, Cursor, and Cline, letting agents search and get cited answers. It publishes a set of tools, resources, and prompts so any MCP-compatible client can query that knowledge base with section-level citations.
    -