io.github.onetrueclaude-creator/mcp-knowledge-gaps
Exports a CSV of top-priority gap concepts suitable for import into Anki or other spaced-repetition tools.
Scans a Logseq graph for concepts mentioned in multiple notes but lacking their own dedicated note, identifying knowledge gaps.
Scans an Obsidian vault for concepts mentioned in multiple notes but lacking their own dedicated note, identifying knowledge gaps.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@io.github.onetrueclaude-creator/mcp-knowledge-gapsfind gaps in my Obsidian vault"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-knowledge-gaps
Find what your knowledge base mentions but doesn't actually explain.
Find concepts mentioned but never defined in your markdown knowledge base (Obsidian vault, Logseq graph, any folder of .md files). Uses fuzzy canonicalization to avoid false positives, ranks gaps by frequency × region-diversity × novelty, generates prioritized research questions, and samples from the long tail via sortition to break confirmation bias in your research queue.
Install
pip install mcp-knowledge-gaps
# or
uvx mcp-knowledge-gapsRelated MCP server: exocortex
Usage
Claude Code
claude mcp add mcp-knowledge-gaps -- mcp-knowledge-gapsClaude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"knowledge_gaps": {
"command": "uvx",
"args": ["mcp-knowledge-gaps"]
}
}
}MCP Tools
Tool | Tier | Description |
| Free | Scan a markdown vault and return concepts mentioned in multiple notes but without their own dedicated note. Applies fuzzy canonicalization and noise filtering. |
| Free | Return gaps ranked by priority: frequency × diversity × novelty (higher = fill this gap first). |
| Pro | Generate prioritized research questions for the top N gaps. Each question comes with a priority score and factor breakdown. |
| Pro | Sortition sampling — pick a random gap from the LOW-priority long tail. Breaks confirmation bias by surfacing topics you'd never pick yourself. |
| Pro | Export a CSV of top-priority gap concepts, suitable for Anki or other spaced-repetition tools. Writes to output_csv and returns the row count. |
Pro tier
Unlocks research question generation with RL-weighted ranking, sortition sampling of long-tail gaps, and CSV review queue export.
License activation — any one of these works:
# 1. Environment variable
export KNOWLEDGE_GAPS_LICENSE="eyJhbGc..."
# 2. CLI flag
mcp-knowledge-gaps --license-key "eyJhbGc..."
# 3. Config file
echo "eyJhbGc..." > ~/.mcp-knowledge-gaps/license.jwtLicenses are verified fully offline — no phone-home, no activation server. Get a license at https://github.com/onetrueclaude-creator/mcp-knowledge-gaps#pro-tier.
Requirements
Python 3.10+
License
MIT
Available Tools
5 toolsexport_review_queueB
[Pro] Export a CSV of top-priority gap concepts for Anki or other spaced-repetition tools. Writes to output_csv and returns the row count.
| Name | Required | Description | Default |
|---|---|---|---|
| vault_path | Yes | ||
| output_csv | Yes | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false, consistent with the description stating it writes to output_csv. The description adds that it returns the row count, but does not disclose potential side effects beyond writing the CSV file.
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 two concise sentences, front-loaded with the key purpose and output. 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?
With 3 parameters and no schema descriptions, the description is incomplete. While output schema exists (mitigating need to describe return format), the omission of parameter details leaves the agent underinformed.
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 0%, and the description does not explain any of the three parameters (vault_path, output_csv, limit). The agent cannot infer their meaning or constraints from the description 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 tool exports a CSV of top-priority gap concepts, with specific verb 'export' and resource 'CSV of gap concepts'. It differentiates from sibling tools like list_gaps_by_priority by focusing on export, not listing.
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 the tool is for 'Anki or other spaced-repetition tools' implying a use case, but does not contrast with siblings like find_gaps or list_gaps_by_priority. No guidance on 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.
find_gapsARead-only
Scan a markdown vault and return concepts mentioned in multiple notes but without their own dedicated note. Applies fuzzy canonicalization and noise filtering.
| Name | Required | Description | Default |
|---|---|---|---|
| vault_path | Yes | ||
| min_references | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, which is consistent. The description adds value by noting 'Applies fuzzy canonicalization and noise filtering', revealing processing behavior beyond a bare scan. No side effects or limitations are mentioned, but the read-only intent is clear.
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: first states purpose and scope, second adds algorithmic details. No redundancy, front-loaded with key action. Every sentence serves a 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?
The description explains the core task and processing but omits parameter details. An output schema exists (not shown), so return value clarity is less critical. For a tool with 3 parameters and a discovery function, the description is adequate but not thorough.
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 0%, so the description must compensate. It only implicitly references 'vault_path' via 'Scan a markdown vault' but does not explain 'min_references' or 'limit'. The meaning of these parameters is left to the agent to infer, which is insufficient.
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 scans a markdown vault to find concepts mentioned in multiple notes without dedicated notes. This distinguishes it from siblings like 'list_gaps_by_priority' (which lists existing gaps) and 'export_review_queue' (exporting). The verb 'scan' and 'return concepts' clarifies its discovery role, though explicit differentiation is missing.
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 identifying undocumented concepts but provides no when-to-use or when-not-to-use guidance relative to sibling tools like 'list_gaps_by_priority' or 'generate_research_questions'. No explicit context or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_research_questionsARead-only
[Pro] Generate prioritized research questions for the top N gaps. Each question comes with a priority score and factor breakdown.
| Name | Required | Description | Default |
|---|---|---|---|
| vault_path | Yes | ||
| n | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, so description's 'generate' is consistent as a read operation. Adds detail about output (priority score, factor breakdown), but could mention it doesn't modify state.
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, no wasted words, front-loaded with 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?
With output schema present, description adequately covers inputs and output characteristics. Could mention prerequisites (e.g., gaps exist) but not critical for read-only 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 has 0% description coverage. Description explains 'n' as top N gaps, but 'vault_path' is only inferred from its title. Partial compensation for low coverage.
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 verb 'generate' and resource 'prioritized research questions for the top N gaps', distinguishing it from sibling tools like find_gaps or list_gaps_by_priority.
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?
Implies usage when gaps are available (top N), but does not explicitly specify when not to use or compare to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_gaps_by_priorityBRead-only
Return gaps ranked by priority: frequency × diversity × novelty (higher = fill first).
| Name | Required | Description | Default |
|---|---|---|---|
| vault_path | Yes | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description adds value by describing the ranking logic. However, it does not disclose other behavioral traits like pagination, error handling, or input validation. Given the read-only nature, the description is adequate but not comprehensive.
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 12-word sentence that efficiently conveys the core functionality and ranking formula. Every word earns its place with no 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?
Despite having an output schema, the description lacks parameter explanations and usage context. The tool's simplicity is undermined by the missing semantics for 'vault_path', making it incomplete for confident agent invocation.
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 has 2 parameters with 0% description coverage, and the description does not mention either parameter. 'vault_path' and 'limit' are left completely unexplained, forcing the agent to infer their meaning from names alone. The description fails to add any semantic value beyond the schema.
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 gaps ranked by a specific priority formula (frequency × diversity × novelty), identifying a unique resource and action. This distinguishes it from sibling tools like 'find_gaps' which likely just list gaps without ranking.
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 provides no guidance on when to use this tool over siblings like 'find_gaps' or 'export_review_queue', nor does it specify prerequisites or exclusions. The agent must infer usage from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
surprise_research_topicARead-only
[Pro] Sortition sampling — pick n random gaps from the LOW-priority long tail. Breaks confirmation bias by surfacing topics you'd never pick yourself.
| Name | Required | Description | Default |
|---|---|---|---|
| vault_path | Yes | ||
| n | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, which is consistent with the description's 'pick' action being non-destructive. The description adds behavioral context by explaining the sortition sampling method and the purpose of countering bias, going beyond the annotation alone.
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 extremely concise: two sentences with no wasted words. The [Pro] prefix efficiently denotes premium tier, and the content is front-loaded with the core 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?
Given the tool's simplicity and the presence of an output schema, the description covers the essential aspects: what it does, why to use it, and the key parameter (n). It lacks only a brief note on vault_path, but overall is sufficient for agent understanding.
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 0%, so the description must explain parameters. It mentions 'n random gaps' clarifying the 'n' parameter's role as the count, but does not explain 'vault_path' or its format. Partial compensation for the missing schema 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 picks random gaps from the low-priority long tail, using the specific verb 'pick' and resource 'gaps'. It distinguishes itself from siblings like 'list_gaps_by_priority' and 'generate_research_questions' by emphasizing random sampling of low-priority items.
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 provides context for use by noting it breaks confirmation bias and surfaces topics one wouldn't pick themselves. This implies a scenario where the agent wants to explore unexpected areas. However, it does not explicitly state when not to use it or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose: scanning vaults, listing gaps, exporting, generating questions, and random sampling. No overlapping functionality.
All tool names follow the verb_noun pattern in snake_case, making them predictable and easy to understand.
With 5 tools, the set is well-scoped for knowledge gap analysis, covering detection, prioritization, generation, and export without excess.
The toolset covers core workflows (scan, list, generate, export, serendipity), but lacks a tool for manual gap management or integration with note-taking.
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
Search and reason over your Obsidian-style Markdown vault, right from ChatGPT.
Web search, URL content extraction to Markdown, site mapping, and recursive web crawler.
Token-efficient MCP memory for Markdown vaults. Tiered search, GraphRAG, AI memories.
Search your Obsidian vault to quickly find notes by title or keyword, summarize related content, a…
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables AI-powered knowledge base management with automated wiki-linking, content generation from titles, web research summarization, and knowledge graph integrity maintenance for Markdown files.193MIT
- AlicenseNot gradedqualityCmaintenanceProvides retrieval and graph tools for agents to search, backlink, and navigate a markdown-based knowledge vault, enabling hybrid search and serendipitous discovery.MIT
- AlicenseAqualityDmaintenanceScans markdown vaults to detect contradictory claims (quantitative and negation) between notes with high concept overlap, and provides tools for analysis and reconciliation.4MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to explore and analyze a markdown vault as a traversable knowledge graph, with tools for searching, traversing, and finding implicit semantic connections between notes.
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/onetrueclaude-creator/mcp-knowledge-gaps'
If you have feedback or need assistance with the MCP directory API, please join our Discord server