MCP Knowledge Base Server
Click on "Deploy 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., "@MCP Knowledge Base Server Search the knowledge base for the rollback procedure if a deploy goes wrong"
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 Base Server
An MCP (Model Context Protocol) server that gives AI assistants — Claude Desktop, Cursor, or any MCP client — searchable, structured access to a company's internal knowledge base of Markdown documents.
Ask your assistant "how do I deploy to production?" or "how many vacation days do I get?" and it will search the knowledge base, read the relevant articles, and answer with citations — instead of hallucinating your internal processes.
Features
6 tools — keyword search with snippets, full-document fetch, filtered listing, tag browsing, hot reload, and stats
2 resource types — browse the whole index or any document directly (
kb://index,kb://documents/{doc_id})1 prompt template —
answer_from_knowledge_basegrounds answers in search results and forces citationsZero-infrastructure — the knowledge base is just a folder of
.mdfiles with optional frontmatter; works great backed by a Git repoTwo transports — stdio for local clients, HTTP for shared/remote setups
Dependency-light — FastMCP + a small built-in TF-IDF-style index; no database, no embeddings service required
Related MCP server: search-docs
Architecture
┌─────────────────┐ stdio / HTTP (JSON-RPC) ┌──────────────────────────┐
│ MCP client │ ───────────────────────────▶ │ FastMCP server │
│ (Claude, …) │ ◀─────────────────────────── │ ├─ tools (search, get…) │
└─────────────────┘ │ ├─ resources (kb://…) │
│ └─ prompts (answer…) │
│ │ │
│ KnowledgeBaseIndex │
│ (tokenize → TF-IDF) │
└──────────┬─────────────┘
│ scans
┌──────────▼─────────────┐
│ knowledge_base/ │
│ engineering/*.md │
│ hr/*.md product/*.md │
└────────────────────────┘Quickstart
git clone <your-repo-url> mcp-knowledge-base-server
cd mcp-knowledge-base-server
pip install .Point the server at your own docs (or use the included sample corpus):
export KB_DIR=/path/to/your/markdown/docsRun the demo
pip install fastmcp # only dependency the demo needs
python examples/demo_client.pyThe demo spawns the server over stdio and exercises every capability — search, document fetch, listing, resources, and the grounded-answer prompt — printing the exact JSON-RPC payloads a real client would see.
Connect Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"knowledge-base": {
"command": "python",
"args": ["-m", "mcp_knowledge_base.server"],
"env": {
"PYTHONPATH": "/absolute/path/to/mcp-knowledge-base-server/src",
"KB_DIR": "/absolute/path/to/mcp-knowledge-base-server/knowledge_base"
}
}
}
}Restart Claude Desktop, then ask: "Search our knowledge base — what's the rollback procedure if a deploy goes wrong?"
Run over HTTP (shared/remote setups)
KB_DIR=/path/to/docs mcp-knowledge-base --transport http --port 8000
# → streamable HTTP endpoint at http://127.0.0.1:8000/mcpDocument format
Any folder of .md files works. Optional frontmatter enriches results:
---
title: Deploying to Production
tags: [deploy, production, runbook]
department: engineering
updated: 2025-11-02
---
# Deploying to Production
…The document doc_id is its path relative to KB_DIR without the extension
(e.g. engineering/deploy-guide). Title falls back to the first # heading,
then the filename.
API reference
Tools
Tool | Description |
| Ranked keyword search; returns doc_id, title, tags, snippet, score |
| Full Markdown content + metadata of one article |
| List all articles, optionally filtered |
| All tags with document counts |
| Re-scan |
| Document count, tag count, index age |
Resources
URI | Description |
| Human-readable index of every document |
| Full content of one document |
Prompts
Prompt | Description |
| Searches the KB, then instructs the model to answer only from the excerpts and cite doc_ids |
Environment variables
Variable | Default | Description |
|
| Root folder of Markdown documents |
|
| Server name shown to MCP clients |
Project structure
├── knowledge_base/ # sample corpus (replace with your own)
│ ├── engineering/*.md
│ ├── hr/*.md
│ └── product/*.md
├── src/mcp_knowledge_base/
│ ├── server.py # FastMCP server: tools, resources, prompts
│ └── index.py # document loading + TF-IDF-style search
├── examples/
│ └── demo_client.py # end-to-end demo over stdio
└── pyproject.tomlExtending it
Better search: swap
KnowledgeBaseIndexfor embeddings + a vector DB (the tool interface stays identical).Other sources: index Confluence/Notion exports — anything that ends up as Markdown works unchanged.
Freshness: run
reload_knowledge_baseon a schedule, or watchKB_DIRwith a filesystem watcher.
License
MIT — see LICENSE.
Available Tools
6 toolsget_documentA
Fetch the full Markdown content of one knowledge-base article.
Inputs: doc_id (required). Returns: object
list_documentsA
List every article in the knowledge base, optionally filtered.
Inputs: tag, department. Returns: result
list_tagsA
List all tags used across the knowledge base, with document counts.
Inputs: no named parameters. Returns: object
reload_knowledge_baseA
Re-scan the knowledge-base directory to pick up new or edited articles.
Returns: Number of documents now indexed.
Inputs: no named parameters. Returns: object
search_knowledge_baseA
Search the company knowledge base with natural language or keywords.
Use this FIRST whenever a question might be answered by internal documentation (processes, runbooks, policies, architecture, onboarding…).
Inputs: query (required), tag, limit. Returns: result
statsB
Basic knowledge-base statistics (document count, tags, index age).
Inputs: no named parameters. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose: searching, fetching full documents, listing documents, listing tags, reloading the index, and showing stats. There is no overlap that would cause an agent to select the wrong tool.
All tool names follow a consistent verb_noun pattern (search_, get_, list_, reload_, etc.). The pattern is predictable and easy to infer for additional tools.
Six tools is well within the ideal range for a knowledge base server. Each tool serves a distinct function, and the count feels neither too sparse nor bloated.
The tool set covers all core operations: search, read, list, and maintenance. Minor gaps exist (e.g., no tool to add or delete documents via the API, but that may be intentionally managed filesystem-side). Reload and stats provide necessary lifecycle support.
Maintenance
Related MCP Connectors
Search and reason over your Obsidian-style Markdown vault, right from ChatGPT.
Convert PDFs, Office docs, websites and audio into AI-ready Markdown, then search and ask your docs.
Markdown notes in folders, with files, that your AI assistant can read, write and organise.
Markdown notes in folders, with files, that your AI assistant can read, write and organise.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI models to seamlessly access and query local markdown technical documentation files, providing automatic documentation context without explicit prompting.9 npm5ISC
- AlicenseAqualityBmaintenanceEnables AI agents to search local Markdown documents using natural language, with automatic indexing and section-level retrieval.1026 npm1MIT
- AlicenseNot gradedqualityDmaintenanceGives AI agents full-text search over any Markdown/MDX documentation folder.6 npmMIT
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with direct access to local Markdown documentation libraries, enabling them to list, read, and search through docs on demand.MIT