Skip to main content
Glama

Knowerage — AI Analysis Coverage Management

Links: GitHub · Glama MCP listing · npm @mtimma/knowerage

Quick Start

Requirements: Node.js 18 or newernpx must be on your PATH (it comes with npm, which is included with Node).

Related MCP server: Atlas

MCP server configuration

Register Knowerage wherever your MCP host expects server definitions (for example some clients use .cursor/mcp.json or .vscode/mcp.json; others use environment variables or a UI—follow your host’s documentation). Use the same server entry shape:

{
  "mcpServers": {
    "knowerage": {
      "command": "npx",
      "args": ["@mtimma/knowerage"],
      "env": {
        "KNOWERAGE_WORKSPACE_ROOT": "${workspaceFolder}",
        "KNOWERAGE_AUTO_FULL_RECONCILE": "true"
      }
    }
  }
}

Replace ${workspaceFolder} with your project root if your host does not expand that variable.

KNOWERAGE_AUTO_FULL_RECONCILE is optional: when unset, empty, or not a truthy value, the file watcher defaults to off. Set to 1, true, yes, or on (trimmed, case-insensitive) to enable. When on, the server watches knowerage/ and, after a short debounce, runs knowerage_reconcile_all on filesystem changes. That is not the same as running a full reconcile after every MCP tool call—it only reacts to file changes under knowerage/. Registry writes to registry.json are ignored by the watcher so saves do not loop.

How to use Knowerage

After the MCP server is configured, you talk to your assistant in normal sentences. You do not need to memorize tool names.

Analyse or document code

Point at files, classes, or behaviour you care about. For example:

  • Using Knowerage, analyse the logical algorithm workflow in main.java.

  • Analyze the data entity reconciliation and versioning logic in the ETL service.

The assistant creates or updates markdown under knowerage/analysis/ and records coverage in knowerage/registry.json (see How It Works below).

Coverage and gaps (same project, later chat or another agent)

When you already have analyses in the tree, you can ask:

  • In percentage, how much of the code has our analysis covered?

  • What part of this codebase is not yet analysed?

Knowerage answers these from the registry and coverage helpers (for example overview, per-file status, and stale lists)—not from hand-waving over the repo.

Alternative approaches

Install via npm

npx @mtimma/knowerage

Or build from source

cargo build --release
./target/release/knowerage-mcp

How It Works

  1. AI agent creates analysis .md files with YAML frontmatter declaring source file and covered line ranges

  2. Registry (knowerage/registry.json) tracks analysis records with SHA-256 hashes for freshness

  3. MCP tools expose create, reconcile, query, and export operations

  4. Agent says "analyze X" → full workflow runs automatically (create → reconcile → record)

Registry file shape (knowerage/registry.json)

The on-disk format is a JSON object whose keys are analysis paths (strings). Each value is one record (see contracts/contracts.md). A full sample with two records lives at examples/registry.sample.json.

flowchart TB
  subgraph file["knowerage/registry.json"]
    O["Top-level JSON object"]
    O --> K["Each key: analysis markdown path, e.g. knowerage/analysis/.../topic.md"]
    K --> V["Value: one RegistryRecord"]
  end

  subgraph rec["RegistryRecord fields"]
    ap["analysis_path · source_path"]
    cr["covered_ranges: [[start,end], ...]"]
    h["analysis_hash · source_hash (sha256:… )"]
    t["record_created_at · record_updated_at (ISO 8601)"]
    st["status: fresh | stale_doc | stale_src | missing_src | dangling_doc"]
  end

  V --> rec

Frontmatter for analysis .md files is specified separately in the contracts doc (metadata schema), not inside registry.json.

MCP Tools

Tool

Purpose

knowerage_create_or_update_doc

Create/update analysis document

knowerage_parse_doc_metadata

Parse and validate frontmatter

knowerage_reconcile_record

Reconcile one analysis record

knowerage_reconcile_all

Full rescan/rebuild

knowerage_get_file_status

Analyzed vs missing ranges

knowerage_list_stale

List stale/problematic records

knowerage_list_registry

Full registry snapshot (same shape as registry.json, sorted keys)

knowerage_get_tree

Tree/grouped coverage

registry_export_report

Export snapshot (JSON/YAML/TXT/HTML)

knowerage_generate_bundle

Chunked export of selected analyses (toc*.md, combined*.md, manifest.json)

Project Structure

knowerage/                  # Created per-project
├── analysis/              # Analysis markdown files
│   └── **/*.md
└── registry.json          # Coverage registry

src/                       # Rust MCP server
├── main.rs
├── lib.rs
├── types.rs
├── parser.rs
├── registry.rs
├── mcp.rs
├── security.rs
└── export.rs

Documentation

Security

  • All paths validated against workspace root

  • Path traversal (..) rejected

  • Atomic writes for registry (crash-safe)

  • No secrets in analysis files or reports

  • SHA-256 hash-based freshness (survives git pull)

License

MIT — copyright Martins Timma.

Parts of this project were written or refined with generative AI coding assistants. Human review applies to design, security-sensitive behavior, and releases.

Available Tools

11 tools
knowerage_coverage_overviewA

Batch coverage overview for all source files. Returns per-source coverage percentage, analyzed/missing ranges, range attribution, stale records, and project-wide file/line totals. Uses fresh records only for coverage calculation. Optional extensions filter applies to sources, stale list, and project scan.

ParametersJSON Schema
NameRequiredDescriptionDefault
extensionsNoFile extensions without leading dot (e.g. java, xml). Omit or pass [] to use defaults: java, xml, properties, gradle, kt, groovy, scala, kts.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description provides good behavioral detail: it reads data, uses fresh records, and the extensions filter applies to sources, stale list, and project scan. It doesn't mention side effects, which is fine as it's an overview 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?

Two sentences front-load the tool's purpose and outputs, with no redundant phrasing. Every sentence adds value.

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?

Given no output schema, the description lists key return fields. The single parameter is fully described. Misses potential details like pagination or data range limits, but overall complete for typical use.

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 schema description coverage is 100%, but the description adds default values and examples for the extensions parameter, clarifying usage beyond the schema's basic description.

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 provides a batch coverage overview for all source files, listing specific outputs (per-source coverage, ranges, stale records, totals). It distinct from siblings like knowerage_get_file_status or knowerage_list_stale.

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 mentions it uses fresh records and optional extensions filter, but does not explicitly state when to use this tool versus alternatives like knowerage_get_file_status or knowerage_list_stale. Usage is implied rather than prescribed.

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

knowerage_create_or_update_docA

PRIMARY tool for persisting legacy/source code analysis: create or update an analysis markdown file under knowerage/analysis/ with YAML frontmatter (source path, covered line ranges, dates). Use this whenever the user asks to analyze, document, or explain a source file and Knowerage is in the tool list—do not use generic file-write tools alone for knowerage analysis paths, or the registry will not stay consistent. Follow with knowerage_reconcile_record on the same analysis_path.

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_pathYesRelative path for the analysis markdown file
contentYesMarkdown body content for the analysis
covered_linesYesArray of [start, end] line ranges
source_pathYesRelative path to the source file being analyzed

TDQS

A4.3/5.0
Behavior4/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 discloses the file format (markdown with YAML frontmatter including source path, covered line ranges, and dates) and the create-or-update behavior. However, it does not specify potential side effects (e.g., overwriting existing files) or error conditions, slightly reducing 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 concise, with three sentences covering purpose, usage guidelines, and follow-up. It is front-loaded with the primary role and avoids unnecessary words, earning its place.

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

Completeness3/5

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

Given the tool has 4 required parameters, no output schema, and no annotations, the description covers the main purpose and usage context but omits details about the return value or what happens on errors. The mention of YAML frontmatter with 'dates' is ambiguous (not a parameter), and the follow-up step suggests some output but it's not described.

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 description does not add significant meaning beyond the schema; it restates the path convention and YAML frontmatter details but offers no new insights into parameter usage or constraints.

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 it is the PRIMARY tool for persisting legacy/source code analysis, specifically creating or updating an analysis markdown file under knowerage/analysis/ with YAML frontmatter. It distinguishes itself from generic file-write tools, making its purpose and scope very clear.

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

Usage Guidelines5/5

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

Explicitly states when to use ('whenever the user asks to analyze, document, or explain a source file and Knowerage is in the tool list') and when not to ('do not use generic file-write tools alone for knowerage analysis paths'). Also provides a follow-up step ('Follow with knowerage_reconcile_record on the same analysis_path'), giving comprehensive guidance.

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

knowerage_generate_bundleA

Export selected analysis markdown files into chunked NotebookLM-style bundles under output_dir: writes toc.md + combined.md for part 1, toc_N.md + combined_N.md for further parts when size limits require splitting, plus manifest.json (files, errors, part metadata). Every analysis_paths entry is validated under the workspace (no traversal). Per-file and per-part size limits apply (see contracts).

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_pathsYesRelative paths to analysis .md files (workspace-rooted; order preserved)
output_dirYesRelative directory under workspace where toc*.md, combined*.md, and manifest.json are written

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description discloses key behaviors: writes multiple files, validates paths against workspace, splits into parts based on size limits, and produces a manifest. It references contracts for limits but omits error handling details.

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 four sentences, front-loaded with the main purpose. It is concise but could be restructured for more immediate scanning of key points like output files and validation.

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?

Given only two parameters and no output schema, the description covers output file structure, splitting logic, path validation, and mentions size limits via contracts. It is reasonably complete for a file generation 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?

Schema coverage is 100%, but the description adds meaning: analysis_paths are relative .md files with order preserved, output_dir is relative and determines file names. It explains how parameters influence output structure (e.g., part suffixing).

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 exports analysis markdown files into chunked bundles (like NotebookLM), specifying output files and splitting logic. It distinguishes from sibling tools that handle coverage, registry, or individual document 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 description implies usage for exporting analysis files as bundles and mentions validation and limits, but does not explicitly state when not to use or compare to sibling alternatives like knowerage_create_or_update_doc.

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

knowerage_get_file_statusA

Per-source coverage: total lines, analyzed vs missing ranges, and which analysis paths claim them. Prefer this over guessing from open files when answering 'what is documented for this source?' while Knowerage is enabled.

ParametersJSON Schema
NameRequiredDescriptionDefault
source_pathYesRelative path to the source file

TDQS

A4.2/5.0
Behavior4/5

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

No annotations exist, so description fully discloses that it returns coverage metrics and analysis paths. This is adequate for a read-only status query, though it could mention that it performs no mutations.

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 concise sentences: first defines output, second gives usage guidance. No unnecessary words or redundancy.

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?

Given simple input and no output schema, description sufficiently explains what the tool returns. Lacks mention of error handling or prerequisites, but sufficient for a status check.

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 covers the single parameter fully (100% coverage) with a clear description. The tool description adds no extra detail beyond the schema, so baseline score 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?

Description clearly states the tool returns per-source coverage details (total lines, analyzed vs missing ranges, analysis paths). It also contrasts with guessing, distinguishing it from siblings like knowerage_coverage_overview.

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 advises using this tool over guessing when asked what is documented for a source, providing clear context for its use. Does not list alternatives or when-not-to-use, but strong enough for a straightforward status tool.

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

knowerage_get_treeC

Get a tree view of analysis records grouped by directory

ParametersJSON Schema
NameRequiredDescriptionDefault
group_byNodirectory
rootNoRoot directory prefix 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 must disclose behavioral traits, but it only states the action ('Get a tree view') without mentioning side effects, read-only nature, or return format.

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

Conciseness5/5

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

Single sentence with no wasted words, highly concise.

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

Completeness3/5

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

Adequate for a simple tool with two parameters but lacks description of the tree structure return value, which is important given no output schema.

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?

The description adds minimal value beyond the schema; it echoes 'grouped by directory' for group_by but doesn't explain root filtering beyond what the schema already provides. Schema coverage is 50% and description does not compensate.

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 tool returns a tree view grouped by directory, but it does not distinguish from siblings like knowerage_coverage_overview or knowerage_list_registry which also deal with analysis records.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus its siblings; no mentions of context or prerequisites.

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

knowerage_list_registryA

Return the full analysis coverage registry in one structured JSON response. USE THIS when you need an inventory of which source files are documented, where the analysis markdown lives, which line ranges are claimed, and freshness (fresh/stale_doc/stale_src/missing_src/dangling_doc). The records object is the same shape as the entire knowerage/registry.json file (sorted keys for stable reading). Call early when planning documentation work, finding gaps, or mapping analysis paths to sources—instead of opening registry.json by hand. Optional filters: analysis_path_prefix narrows by analysis key; statuses limits to given status values (same strings as in each record). After reconcile_record/reconcile_all, call again if you need the latest snapshot.

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_path_prefixNoIf non-empty, only include records whose analysis path key starts with this prefix (e.g. knowerage/analysis/auth/)
statusesNoIf set, only include records whose status is one of these values; omit for all statuses

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the transparency burden. It describes the output shape (same as registry.json, sorted keys, statuses) and clarifies it's a snapshot. However, it lacks an explicit statement that the operation is read-only and side-effect-free, which would be ideal.

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 paragraph but efficiently uses sentences to convey purpose, usage, and filters. It is front-loaded with the core purpose. While slightly long, it remains concise without wasted words.

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?

No output schema exists, so the description must describe the return. It covers the structure and key fields (records object, sorted keys, status). Input parameters are fully described. The description is sufficient for an agent to use the tool correctly, though more details on output fields would improve completeness.

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

Parameters4/5

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

Schema coverage is 100% so baseline is 3. The description adds value by explaining that analysis_path_prefix narrows by analysis key and that statuses limits to given values using the same strings as in records, going beyond the schema's enum list.

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 explicitly states it returns the full analysis coverage registry in a structured JSON response. It details the content (source files, analysis markdown, line ranges, freshness) and distinguishes from siblings by specifying its comprehensive inventory nature.

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

Usage Guidelines5/5

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

It clearly advises when to use: when needing an inventory, planning doc work, finding gaps, or mapping paths. It also suggests not opening registry.json by hand and recommends calling after reconcile for latest snapshot, providing explicit context.

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

knowerage_list_staleB

List registry records filtered by staleness status

ParametersJSON Schema
NameRequiredDescriptionDefault
statusesNoFilter by these statuses; omit to list all non-fresh

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 carries full burden. It states the filter behavior and default (list all non-fresh when parameter omitted) but does not disclose whether the tool modifies data, requires permissions, has rate limits, or other behavioral traits. Minimal transparency beyond schema.

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 effectively communicates the tool's purpose.

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

Completeness2/5

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

Given no output schema and no annotations, the description should explain return values and define staleness statuses. It does not cover the output format or the meaning of 'staleness statuses' (e.g., 'stale_doc', 'missing_src'). Incomplete for a filtering 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 input schema has one parameter with description, providing 100% coverage. The description adds context by summarizing the filter as 'by staleness status', and the parameter description explains default behavior when omitted. This adds value beyond the schema alone.

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

Purpose4/5

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

The description clearly states the verb 'List' and resource 'registry records' with a filter by 'staleness status'. It distinguishes from sibling tool 'knowerage_list_registry' which likely lists all records. However, it does not define what 'staleness status' means, slightly reducing specificity.

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

Usage Guidelines3/5

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

The description implies use when needing records by staleness status, but does not explicitly state when to use this tool versus alternatives like 'knowerage_list_registry'. No exclusions or prerequisites are mentioned.

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

knowerage_parse_doc_metadataB

Parse YAML frontmatter from an analysis markdown file

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_pathYesRelative path to the analysis file

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose behaviors such as error handling, return values, or side effects. Minimal behavioral info beyond the basic action.

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?

Single sentence is concise, but could be expanded to include more context without becoming verbose. Front-loads the key action.

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

Completeness2/5

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

No output schema and no annotations; the description fails to mention return value, error cases, or file requirements. Given low complexity, still incomplete for an agent to reliably use.

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

Parameters3/5

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

Schema has 100% coverage for the single parameter 'analysis_path', with a description that matches the tool's purpose. The description adds no additional semantic meaning.

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 verb 'Parse' and the resource 'YAML frontmatter from an analysis markdown file', distinguishing it from sibling tools that create, update, or list files.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'knowerage_create_or_update_doc' or 'knowerage_get_file_status'. Does not specify prerequisites or context.

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

knowerage_reconcile_allA

Rescan all analysis markdown files matching the glob and rebuild registry entries. Use after git pull, bulk edits, or when the registry may be empty or out of date; prefer reconcile_record when only one file changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_globNoGlob pattern for analysis files (default: knowerage/analysis/**/*.md)

TDQS

A4.2/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 full burden. It states the tool rescans files and rebuilds registry entries, but does not disclose potential side effects (e.g., overwriting existing entries, performance impact, idempotency). The description is adequate for the core behavior but lacks depth.

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 sentences with zero wasted words. The main action is front-loaded, and the alternative is mentioned concisely. Structure is optimal for quick parsing.

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 tool with one optional parameter and no output schema, the description covers the purpose, usage guidelines, and parameter context. It does not mention a return value or confirmation, but that is acceptable given the lack of output schema. Slight room for improvement.

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% for the single parameter, with a detailed schema description. The tool description adds context that the glob is for 'analysis markdown files' and provides the default value, which is useful but not critical. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool rescans analysis markdown files matching a glob and rebuilds registry entries. It uses specific verb-resource combination and distinguishes from the sibling 'knowerage_reconcile_record' by noting when to prefer the alternative. 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 Guidelines5/5

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

Explicitly provides usage context: 'Use after git pull, bulk edits, or when the registry may be empty or out of date.' Also gives exclusion: 'prefer reconcile_record when only one file changed.' This is exemplary guidance for an agent.

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

knowerage_reconcile_recordA

MANDATORY after every create_or_update_doc (or manual edit) to one analysis file: reconciles that analysis into knowerage/registry.json (hashes, covered_ranges, freshness). Call immediately after writing analysis content so coverage is recorded; skipping this leaves the registry wrong or stale.

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_pathYesRelative path to the analysis file

TDQS

A4.4/5.0
Behavior4/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 discloses that the tool updates the registry (destructive write) and affects hashes, coverage, and freshness. While it could detail side effects like overwriting existing data, it adequately informs the agent about the tool's behavior.

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

Conciseness5/5

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

Two sentences with no filler: the first states purpose and requirement, the second provides usage guidance and consequences. Key word 'MANDATORY' is front-loaded for immediate attention.

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?

Given one required parameter, no output schema, and no annotations, the description sufficiently covers when to invoke, what it does, and why it is important. It does not describe return values, which is acceptable without output schema.

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 parameter 'analysis_path' described as 'Relative path to the analysis file'. The tool description does not add significant meaning beyond confirming it targets a single analysis file. Baseline score 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 verb 'reconciles' and the resource 'analysis file into knowerage/registry.json', and specifies the recorded elements (hashes, covered_ranges, freshness). It distinguishes from sibling tools like knowerage_reconcile_all by targeting a single analysis file.

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

Usage Guidelines5/5

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

Explicitly states it is 'MANDATORY after every create_or_update_doc (or manual edit)' and advises calling 'immediately after writing analysis content'. It also warns that skipping leaves the registry wrong or stale, providing clear context on when to use and consequences of misuse.

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

registry_export_reportB

Export the registry as a report file in json, yaml, txt, or html format

ParametersJSON Schema
NameRequiredDescriptionDefault
formatYesOutput format
output_pathYesRelative path for the output file

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description must convey behavioral traits. It only mentions 'export', which implies file creation but does not specify whether the filename will be overwritten, if there are size limits, or if any registry modifications occur. The description is too minimal for a mutation-like operation.

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

Conciseness5/5

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

The description is a single sentence that efficiently conveys the core purpose without redundancy. Every word adds value.

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 export tool with two parameters and no output schema, the description is adequate but not comprehensive. It lacks details about the content of the report file and potential side effects, which are important for an agent to invoke correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already describes the parameters. The description confirms the format enum and mentions output_path as a relative path, but adds no additional meaning beyond the schema's descriptions.

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: export the registry as a report file, and lists the supported formats (json, yaml, txt, html). This distinguishes it from sibling tools like 'knowerage_list_registry' which lists items, and 'knowerage_reconcile_all' which reconciles.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites, use cases, or scenarios where other tools would be more appropriate.

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. 2 tool updatesv0.1.1
    • Addedknowerage_coverage_overview
    • Addedknowerage_list_registry
  2. 9 tool updatesv0.1.0
    • First observedknowerage_create_or_update_doc
    • First observedknowerage_generate_bundle
    • First observedknowerage_get_file_status
    • First observedknowerage_get_tree
    • First observedknowerage_list_stale
    • First observedknowerage_parse_doc_metadata
    • First observedknowerage_reconcile_all
    • First observedknowerage_reconcile_record
    • First observedregistry_export_report

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a distinct operation: coverage overview per batch, per-source status, registry listing with filters, doc creation/update, reconciliation, bundle generation, tree view, metadata parsing, stale listing, and export. Even overlapping tools like list_registry and list_stale are clearly differentiated by filters and purpose.

Naming Consistency3/5

All tools use the 'knowerage_' prefix except for 'registry_export_report', which breaks the pattern. Within the prefixed group, naming follows a consistent verb_noun style (e.g., get_file_status, create_or_update_doc, reconcile_record). The one outlier lowers the score.

Tool Count5/5

With 11 tools, the server covers the core operations of a documentation coverage system (CRUD-like, reconciliation, reporting, exploration) without being excessive. Each tool serves a clear purpose and none feel redundant.

Completeness4/5

The tool surface covers creation/update, reconciliation (single and bulk), listing, coverage overview, bundle generation, metadata parsing, and export. Missing a direct delete tool for docs, but the create_or_update tool may handle updates. Overall, agents can perform most tasks without dead ends.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

  • F
    license
    Not graded
    quality
    B
    maintenance
    Local MCP server that indexes documentation from URLs/files into a vector database, enabling coding agents to search and use up-to-date library and API documentation.
    -

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/MTimma/knowerage'

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