QwikVault MCP
Allows AI agents to read and write structured wiki articles as Obsidian-compatible Markdown files, providing a persistent knowledge library within the project repository.
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., "@QwikVault MCPRead the deployment article in the wiki"
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.
🧠 Smart Long Context — Wiki-Obsidian ( QwikVault MCP )
A structured wiki writer for AI — not a memory system that controls how AI thinks.
![]()
Table of Contents
Related MCP server: MCP Brain Server
📌 What This MCP Actually Does
QwikVault MCP is an AI-powered wiki reading and writing tool built on the Obsidian architecture and a Q&A knowledge model.
Its single job: write and retrieve reliable, structured documentation so that AI has the best possible context when answering your requests.
It does not:
Intercept or redirect how AI reasons
Inject knowledge automatically or silently
Replace the AI's inference engine
Use vector embeddings to steer semantic outputs
Act as a memory proxy that "controls" what AI knows
It does:
Let AI (or you) write completed, verified knowledge into
.brain_wiki/as Obsidian-compatible Markdown filesProvide a structured navigation index (
Directory-tree.md) so AI can find the right article for each taskExpose a clean slash-command interface that AI uses to decide — on its own — which article to read
Keep all knowledge human-readable, Git-trackable, and fully auditable
One sentence summary: This MCP gives AI a well-organized library of verified project knowledge. The AI still decides what to read and how to use it.
📊 Benchmarks
Latest Benchmark Score: 100/100 🟢 PASSED
Updated at: Mon, 04 May 2026 03:18:06 GMT
Suite | Score | Weight | Duration | Status |
MMLongBench | 100 | 25% | 73ms | ✅ |
DocETL | 100 | 25% | 7ms | ✅ |
M3DocVQA | 100 | 25% | 3ms | ✅ |
GraphRanker | 100 | 25% | 5ms | ✅ |
🔴 The Problem It Solves
Every AI agent — Claude, Cursor, Gemini, GPT — loses all memory at session boundaries.
Loss Scenario | Impact |
Context window filled (~100K–200K tokens) | Agent forgets early architectural decisions |
IDE restart / session timeout | Agent starts from zero each time |
Multi-agent handoff | No shared state between agents |
Long-running projects (days/weeks) | Patterns rediscovered repeatedly, conventions drift |
Existing workarounds address symptoms but not the root cause:
Approach | Critical Limitation |
RAG (Chroma, Pinecone, Weaviate) | Infrastructure overhead; embeddings silently steer AI toward noisy corpus data |
mem0, Zep, Letta | External SaaS; opaque retrieval; AI cannot audit what it "remembers" |
| Static — cannot evolve; agents cannot write new knowledge back |
Conversation history | Unstructured; requires full re-read; no navigation layer |
The core gap: there is no reliable, human-curated, AI-readable knowledge layer that lives inside the project repo and stays under human control.
🎯 Core Philosophy - A Pen, Not a Brain
This MCP is a pen that writes structured knowledge, not a brain that controls how AI thinks.
What separates this from RAG and vector memory systems
RAG and vector systems operate by automatically pushing relevant chunks of data into AI's reasoning based on semantic similarity scores. The AI has no choice — it receives pre-selected context based on embedding distances it cannot inspect.
This MCP takes the opposite approach:
Humans (or AI agents) deliberately write finalized, verified knowledge into
.brain_wiki/articlesDirectory-tree.mdacts as a table of contents — a library catalog, not a retrieval engineThe AI reads the catalog first, then decides which article is relevant to its current task
The AI reads only what it chooses — no silent injection, no background steering
The removal of vector embeddings is not a technical regression. It is a deliberate design choice:
Vectors pump semantically "similar" but unverified data into AI reasoning automatically. This wiki requires AI to exercise judgment — to choose what it reads. That judgment gap is where hallucination prevention lives.
AI remains the reasoning engine. The wiki provides the domain grounding.
🔄 How It Works
User Request
│
▼
┌─────────────────────────────────────────────────────────────┐
│ AI Agent Session │
│ │
│ Step 1 — AI reads the library catalog │
│ /wiki read-map │
│ ↓ Loads Directory-tree.md │
│ ↓ Reviews article titles, purposes, "Read when:" hints │
│ ↓ AI decides which articles are relevant │
│ │
│ Step 2 — AI selects and reads relevant articles │
│ /wiki read <article-id> │
│ ↓ Loads curated T1 knowledge into context │
│ ↓ AI supplements its reasoning — not overridden │
│ │
│ Step 3 — AI executes the task │
│ ↓ Uses project-specific context it chose to load │
│ ↓ Architectural decisions respected │
│ │
│ Step 4 — (Optional) AI writes new verified knowledge │
│ /wiki write "Title" "Content..." --purpose "..." --tags │
│ ↓ Writes completed knowledge to .brain_wiki/ │
│ ↓ Directory-tree.md auto-regenerated │
└─────────────────────────────────────────────────────────────┘
│
▼
Persistent, verified knowledge in .brain_wiki/ (cross-session)Critical constraint: Wiki articles are read by AI as supplementary, human-verified context — not as mandatory training signal or forced reasoning paths. AI reads, considers, and decides how to use the information. Its inference capability is never bypassed.
📊 Knowledge Trust Hierarchy - T1 Context
When an AI agent handles a request, it should consult knowledge sources in priority order. This wiki occupies the top tier because it contains deliberately written, human-verified knowledge — not inferred, scraped, or automatically embedded data.
T1 ── .brain_wiki/ articles
└── Written by humans or AI after task completion
└── Verified, finalized — not WIP or speculation
└── AI reads these FIRST before other research
└── Consulted via /wiki read-map → /wiki read
T2 ── Web search / documentation
└── General knowledge; may be outdated
└── Used when T1 has no coverage
T3 ── LLM trained priors / inference
└── Fallback when T1+T2 insufficient
└── Must be flagged as "inferred, not verified"
T4 ── Real-time code scanning
└── Implementation-level detail
└── T1 provides intent; T4 provides current code realityT1 is trusted because it was written deliberately — not because the system decided it was "relevant" via embedding distance.
The wiki does not replace the agent's reasoning. It provides curated, versioned project intelligence that makes AI's answers more accurate and aligned with actual project decisions.
📋 The Claude.md Rules File
This MCP ships with a Claude.md file — a plain-text protocol that tells AI how to interact with the wiki.
What Claude.md does:
Instructs AI to read the wiki catalog first (
/wiki read-map) before working on tasksTells AI which articles to look for based on task type
Defines when to write new articles and what belongs in them
Sets quality standards for wiki content
What Claude.md does NOT do:
Force or hardcode AI reasoning paths
Override AI's judgment or inference capability
Inject content silently
Replace the AI's system prompt or base model behavior
Think of Claude.md as a librarian's guide: it tells AI "when working on auth tasks, the auth-related articles in the library are worth checking first." The AI still decides how to use what it finds.
Adapting the Rules File to Your AI
The file is named Claude.md by default. If you use a different AI:
AI Client | Recommended file name |
Claude (Anthropic) |
|
Cursor |
|
Gemini / Antigravity |
|
Generic agents |
|
Rename the file and reference it in your AI client's system prompt or rules configuration. The content is portable — no vendor-specific instructions are required.
📜 Wiki Agent Protocol
AI agents using this MCP follow a simple four-rule protocol for writing wiki articles.
Rule W-1: Read the catalog before writing
/wiki read-map
// → Loads Directory-tree.md (the library catalog)
// → AI identifies: does this article already exist?
// → Decision: create new article OR append to existingRule W-2: Create vs. Append
Situation | Action |
No existing article covers this topic |
|
Content extends an existing article |
|
Content is too small for a standalone article | Append to the most relevant existing article |
Rule W-3: Required metadata on every new article
Every new article must include:
--purpose— one sentence: what knowledge this article stores--tags— at least one canonical taxonomy tag--depends-on— IDs of prerequisite articles (if applicable)
Rule W-4: Only write durable, verified knowledge
Write only:
✅ Completed architectural decisions
✅ Implemented technical patterns and conventions
✅ Resolved integration issues with proven solutions
✅ Performance optimizations validated in production
✅ Q&A pairs that reflect confirmed project behavior
Never write:
❌ Technical debt notes or known bugs (creates misleading T1 context)
❌ WIP / in-progress context (becomes stale and misleading immediately)
❌ API keys, secrets, or credentials in any form
❌ Speculation or unverified assumptions
❌ Scratch notes or temporary task context
🚀 Quick Start
1. Initialize the wiki vault
npx qwikvault-mcp init --project .Run this in your project root before starting any AI chat session. This command creates the full project structure in one shot:
Path | Description |
| Navigation catalog — AI reads this first each session |
| Canonical tag definitions for normalized search |
| Instance lock placeholder (managed at runtime) |
| Append-only audit trail of all wiki operations |
| Pre-configured ignore rules for |
| Agent protocol rulebook — rename to match your AI client |
| Optional hook — records changed files for |
Without the
post-commithook, staleness detection in/wiki syncis incomplete.
Optionally generate IDE config files:
npx qwikvault-mcp init --project . --ide cursor
# or: --ide vscode | windsurf | claude | gemini | all2. Rename and configure the rules file for your AI
The included Claude.md file defines how AI should interact with the wiki. Rename it to match your AI client (see The Claude.md Rules File above) and reference it in your AI configuration.
3. Start the MCP server
npx qwikvault-mcp4. Configure your AI client
Refer to the configs/ directory for pre-configured templates for Claude Desktop, Cursor, Windsurf, Gemini, and more.
5. Open wiki in Obsidian (Optional)
Point Obsidian's vault to your project root. The .brain_wiki/ directory renders as a visual knowledge graph with full depends_on link resolution.
💻 Commands Reference
All interactions use the single cmd MCP tool with slash syntax.
Core Knowledge Operations
Command | Description |
| Create or overwrite an article with full metadata |
| Append content to an existing article |
| Override min-content/language policy checks intentionally |
| Load a complete article into context |
| Fuzzy search across titles, tags, purpose, and body preview |
| List all articles with title, tags, and purpose |
Navigation & Discovery
Command | Description |
| Load |
| Get top-5 most relevant articles for an upcoming task |
Multi-Agent Coordination
Command | Description |
| Agent reports task completion to wiki queue |
| View pending queue and session context usage |
Governance & Maintenance
Command | Description |
| Detect articles that have fallen behind code changes via |
| Health metrics: orphan articles, staleness scores, read frequency |
| Soft-delete an article (preserves history in Git) |
| Server uptime, RAM usage, and subsystem status |
🛠️ System Architecture
Design Principles
1. File-per-Article — No Database
Each article is one .md file in .brain_wiki/. No JSON database, no SQLite, no binary formats:
Fully human-readable and editable in any text editor
Meaningful Git diffs per article for PR review
Native Obsidian graph visualization via
depends_onlinksNo schema migrations required
2. No Vector Embeddings — By Design
Eliminating vectors is not a technical limitation — it is a deliberate architectural decision.
Vector systems inject semantically "similar" but unverified data into AI reasoning automatically. The AI receives pre-selected context it did not choose. This system requires AI to read the directory catalog and decide which article to load. That act of selection is where knowledge quality is preserved.
With 50–500 curated articles (typical project scale), deterministic trigram + taxonomy scoring is:
Locally fast — retrieval logic runs on local filesystem with no external service calls
Predictable — no semantic drift, no model dependency, no embedding staleness
Auditable — every search is traceable; no opaque similarity scores
An optional embedding layer is reserved for v2 via MCP_ENABLE_EMBEDDING=true for wikis exceeding 1,000 articles.
3. Single Slash-Command Router
One cmd MCP tool handles all operations via slash syntax. This prevents "tool explosion" — a failure mode where agents get confused selecting among dozens of specialized tools.
4. Command-Driven, No Background Workers
The server has no file watchers, no autonomous job loops, and no background timers beyond a short debounced write coalescer for Directory-tree.md regeneration. The server only computes when explicitly called.
"Smart behavior comes from the agent's reasoning, not from the server guessing what to do."
Post-commit Git hooks write to .context/pending-sync.txt, consumed synchronously on the next /wiki read-map call — providing event bridging without background processes.
5. POSIX-Atomic Writes
writeFileSync(tmp) → renameSync(tmp, final) guarantees crash safety. Readers see complete files or nothing — never partial writes.
6. Project-Scoped Instance Lock
The server uses a project-scoped lock (derived from MCP_WIKI_ROOT) to prevent duplicate server processes for the same project across multiple IDE clients. Use MCP_DISABLE_INSTANCE_LOCK=true only when running intentional multi-agent swarms.
For a complete decision log, see the Architecture Decision Record.
⚙️ Environment Variables
Variable | Default | Description |
|
| Absolute path to the directory containing |
|
| Enforce wiki write language: |
|
| Log verbosity: |
|
| Allow concurrent instances for multi-agent swarm configurations |
|
| Enforce |
|
| Max token budget for |
|
| (v2) Enable optional vector layer for wikis >1,000 articles |
📄 Article format
Every article in the wiki follows a strict YAML frontmatter structure for maximum AI readability and Obsidian compatibility:
---
id: auth-jwt-refresh-flow-abc123
title: Auth JWT Refresh Flow
purpose: Documents the token refresh strategy and edge cases for the auth module
tags: [auth, jwt, security]
depends_on: [api-rate-limiting-xyz, user-session-management-def]
language: en
created: 2026-04-21T10:00:00Z
updated: 2026-04-21T10:00:00Z
---
## Token Refresh Strategy
[Article body — verified, completed knowledge only]License
MIT © VoTrongHoang-Dyor
💖 Support me
If you resonate with first-principles engineering, robust system architecture, and sovereign digital solutions, your support accelerates the development of these ecosystems.
Available Tools
2 toolscmdA
Execute QwikVault MCP commands using slash syntax. All features are available through this single entry point. Commands: /wiki (write|read|smart-read|analyze|read-map|search|suggest|list|emit|sync|status|report|delete), /health, /help. Type /help to see full command reference.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Slash command to execute. Examples: "/wiki write 'Auth System' 'Content...' --tags auth,security", "/wiki smart-read 'Why choose JWT?'", "/wiki analyze", "/wiki read-map", "/wiki suggest 'implement JWT refresh'", "/wiki emit --diff 'Added button' --agent code", "/wiki sync", "/wiki search auth", "/wiki status", "/wiki report", "/health", "/help wiki" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It fails to mention side effects, authorization needs, rate limits, or return format beyond command syntax.
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 three concise sentences, front-loading the purpose and listing commands 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?
For a single-parameter tool with no output schema, the description covers basic input format but omits behavioral expectations like execution results or error handling, leaving gaps for a command executor.
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%, and the description adds command examples beyond the schema, but does not provide additional semantic meaning for the parameter itself.
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 executes QwikVault MCP commands via slash syntax and lists specific commands, distinguishing it from the sibling 'raw' tool as the unified entry point.
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 all QwikVault commands but provides no explicit guidance on when to use this tool versus alternatives like 'raw', nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rawA
Legacy tool passthrough. Use cmd() with slash commands instead. raw({ tool: "view_file", args: { path: "..." } })
| Name | Required | Description | Default |
|---|---|---|---|
| tool | Yes | Legacy tool name | |
| args | No |
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 only states it is a passthrough and gives an example, but lacks details on side effects, authorization, rate limits, or error behavior, leaving significant behavioral gaps.
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, consisting of one sentence and an example. Every element is purposeful: the purpose, migration hint, and usage example are front-loaded and efficient, with no 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?
As a legacy wrapper, the description covers basic usage and migration, but it omits what the tool returns (e.g., the result of the wrapped tool) and error handling. Given the tool's simplicity, this is adequate but could be more complete for someone unfamiliar with the pattern.
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 describes 'tool' as a string and 'args' as an object with additional properties. The description adds a concrete example ('raw({ tool: "view_file", args: { path: "..." } })'), which clarifies the expected structure and usage of the arguments, adding 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 it is a 'Legacy tool passthrough' and provides an example call. It distinguishes itself from the sibling tool 'cmd' by recommending its use instead, making the purpose and differentiation explicit.
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 explicitly advises using 'cmd()' instead, providing a clear alternative. However, it does not specify conditions under which 'raw' might still be necessary or any prerequisites, slightly limiting guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
The two tools overlap significantly: 'cmd' is the recommended interface for all operations, while 'raw' is a legacy passthrough that duplicates functionality. An agent may be confused about which tool to use, especially since both accept different argument formats.
Tool names are short and inconsistent: 'cmd' and 'raw' do not follow a predictable pattern like verb_noun. There is no clear naming convention across the set.
With only 2 tools for a server that features many wiki commands, health checks, and help, the number is very low. While all functionality is bundled into 'cmd', this creates a monolithic interface rather than a well-scoped tool set.
The 'cmd' tool appears to cover all intended operations (read, write, search, etc.), so the core surface is complete. However, the presence of a deprecated 'raw' tool indicates an incomplete transition, and there is no clear tool for help or health—these are subcommands of 'cmd'.
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
Your team's shared, verified knowledge for AI agents: ask what's true, record what you learn.
Hosted markdown project wikis your team's AI assistants read, search, and update over MCP.
Shared knowledge base for AI agents. Semantic search across agents, no setup required — just a URL.
Shared project context for AI agents and teams: docs, tasks, and messages that stay current.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides AI agents with queryable, version-controlled project rules and coding standards. Enables validation, rule-based guidance, and task summaries to keep AI work aligned with your project's conventions without repeating context.2MIT
- FlicenseNot gradedqualityNot gradedmaintenanceProvides AI agents with a learning-based knowledge management system that stores, retrieves, and automatically relates knowledge using embeddings, with Git-based version control and Obsidian compatibility.
- FlicenseAqualityNot gradedmaintenanceExposes an internal engineering knowledge base to AI assistants, allowing users to search and retrieve standards, runbooks, and architecture decisions. It supports RAG-enhanced search, document scraping, and specialized prompts for incident investigation and code reviews.5
- AlicenseNot gradedqualityCmaintenanceHosted shared knowledge base for AI agents. Store, search, and retrieve structured knowledge using semantic search. Agents contribute to a growing collective intelligence that compounds over time. No install — just a URL.1MIT
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/VoTrongHoang-Dyor/QwikVault-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server