Knowerage
Knowerage is a local-first MCP server for tracking AI-generated analysis coverage and freshness for legacy codebases, enabling AI agents to create, manage, query, and export code analysis documentation.
Create or update analysis documents (
knowerage_create_or_update_doc): Write structured markdown files with YAML frontmatter specifying source file paths and covered line ranges.Parse document metadata (
knowerage_parse_doc_metadata): Extract and validate YAML frontmatter from existing analysis files.Reconcile individual records (
knowerage_reconcile_record): Sync a single analysis file intoregistry.json, computing SHA-256 hashes and updating coverage/freshness status.Reconcile all records (
knowerage_reconcile_all): Rescan all analysis files and rebuild the entire registry — useful after bulk edits or agit pull. (Can also be automated viaKNOWERAGE_AUTO_FULL_RECONCILE.)Get per-file coverage status (
knowerage_get_file_status): See which line ranges of a source file have been analyzed vs. are missing.List stale records (
knowerage_list_stale): Identify records that are stale, have missing sources, or are dangling (no matching source).List the full registry (
knowerage_list_registry): Retrieve a complete snapshot of all coverage records including paths, line ranges, hashes, and freshness status.Get a tree view (
knowerage_get_tree): Browse analysis records grouped by directory for a structured overview.Coverage overview (
knowerage_coverage_overview): Get project-wide and per-source coverage percentages, analyzed vs. missing ranges, and stale record counts.Export reports (
registry_export_report): Export the registry as JSON, YAML, plain text, or HTML.Generate bundles (
knowerage_generate_bundle): Package selected analysis files into NotebookLM-style chunked bundles (table of contents, combined content, manifest) for external use or sharing.
Knowerage — AI Analysis Coverage Management
Links: GitHub · Glama MCP listing · npm @mtimma/knowerage
Quick Start
Requirements: Node.js 18 or newer — npx 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/knowerageOr build from source
cargo build --release
./target/release/knowerage-mcpHow It Works
AI agent creates analysis
.mdfiles with YAML frontmatter declaring source file and covered line rangesRegistry (
knowerage/registry.json) tracks analysis records with SHA-256 hashes for freshnessMCP tools expose create, reconcile, query, and export operations
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 --> recFrontmatter for analysis .md files is specified separately in the contracts doc (metadata schema), not inside registry.json.
MCP Tools
Tool | Purpose |
| Create/update analysis document |
| Parse and validate frontmatter |
| Reconcile one analysis record |
| Full rescan/rebuild |
| Analyzed vs missing ranges |
| List stale/problematic records |
| Full registry snapshot (same shape as |
| Tree/grouped coverage |
| Export snapshot (JSON/YAML/TXT/HTML) |
| Chunked export of selected analyses ( |
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.rsDocumentation
User Onboarding — Setup, config, typical usage
INSTRUCTIONS.md — MCP agent instructions
Contracts — Schemas and API contracts (registry + frontmatter)
Example registry JSON — Sample
registry.jsoncontents
Security
All paths validated against workspace root
Path traversal (
..) rejectedAtomic 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 toolsknowerage_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.
| Name | Required | Description | Default |
|---|---|---|---|
| extensions | No | File extensions without leading dot (e.g. java, xml). Omit or pass [] to use defaults: java, xml, properties, gradle, kt, groovy, scala, kts. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| analysis_path | Yes | Relative path for the analysis markdown file | |
| content | Yes | Markdown body content for the analysis | |
| covered_lines | Yes | Array of [start, end] line ranges | |
| source_path | Yes | Relative path to the source file being analyzed |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| analysis_paths | Yes | Relative paths to analysis .md files (workspace-rooted; order preserved) | |
| output_dir | Yes | Relative directory under workspace where toc*.md, combined*.md, and manifest.json are written |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| source_path | Yes | Relative path to the source file |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| group_by | No | directory | |
| root | No | Root directory prefix to filter by |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| analysis_path_prefix | No | If non-empty, only include records whose analysis path key starts with this prefix (e.g. knowerage/analysis/auth/) | |
| statuses | No | If set, only include records whose status is one of these values; omit for all statuses |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| statuses | No | Filter by these statuses; omit to list all non-fresh |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| analysis_path | Yes | Relative path to the analysis file |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| analysis_glob | No | Glob pattern for analysis files (default: knowerage/analysis/**/*.md) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| analysis_path | Yes | Relative path to the analysis file |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| format | Yes | Output format | |
| output_path | Yes | Relative path for the output file |
TDQS
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.
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.
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.
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.
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.
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.
2 tool updates
v0.1.1- Added
knowerage_coverage_overview - Added
knowerage_list_registry
9 tool updates
v0.1.0- First observed
knowerage_create_or_update_doc - First observed
knowerage_generate_bundle - First observed
knowerage_get_file_status - First observed
knowerage_get_tree - First observed
knowerage_list_stale - First observed
knowerage_parse_doc_metadata - First observed
knowerage_reconcile_all - First observed
knowerage_reconcile_record - First observed
registry_export_report
TDQS
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.
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.
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.
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
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
MCP Server for an Agent Task Marketplace
DocBase MCP server for AI agents
MCP server for querying Forkast documentation
MCP server for agentverse documentation, generated by doc2mcp.
Related MCP Servers
- AlicenseBqualityNot gradedmaintenanceMCP server for collecting code from files and directories into a single markdown document.28MIT
- AlicenseNot gradedqualityAmaintenanceLocal-first MCP server for querying multi-repo engineering documentation artifacts from a SQLite corpus.10AGPL 3.0
- AlicenseNot gradedqualityAmaintenanceLocal-first MCP server that provides project context, verification gates, and structured tools for coding agents to discover knowledge, run diagnostics, and execute allowlisted commands within a repository.35MIT
- FlicenseNot gradedqualityBmaintenanceLocal 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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