Personal Knowledge-Base MCP 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., "@Personal Knowledge-Base MCP Serversearch my notes for anything about MCP server setup"
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.
Personal Knowledge-Base MCP Server & Web App
F6-Zeppelin Fellowship ā Project 3
A multi-tenant Model Context Protocol (MCP) server and web application enabling semantic search and AI answer synthesis over personal document corpora backed by Qdrant vector search, FastMCP, and OpenRouter.
š Overview
Static keyword search fails when notes, research papers, and technical documents use different wording for the same concepts. This project implements a protocol-level FastMCP server paired with a Qdrant Vector Database to enable context-aware semantic search over real-world documents.
The system supports dual modes of interaction:
MCP Client Integration: Native tools callable from MCP-compliant clients like Claude Desktop or Claude Code.
Multi-Tenant Web UI: A web dashboard providing isolated document management, uploading, vector search, and AI-synthesized RAG answers generated via OpenRouter API.
Related MCP server: qdrant-mcp
⨠Key Features
Protocol-Level Integration (
FastMCP): Exposes structured MCP tools (search_notes,get_document,list_sources) for native AI agent invocation.Multi-Tenant Isolation: Payload-level tenant isolation in Qdrant ensures document chunks and search results are strictly scoped per user.
Strict Relevance Cutoff: Rejects low-confidence vector matches below similarity thresholds to prevent low-relevance hallucination propagation.
Automated Ingestion Pipeline: Handles PDF, Markdown, and TXT parsing, dynamic chunking, and embedding generation.
LLM Answer Synthesis (RAG): Integrates OpenRouter API (
openrouter/free) to generate unified, context-grounded AI answers directly over retrieved vector chunks within the web dashboard.Quantitative Retrieval Benchmarking: Hand-labeled evaluation suite tracking Mean Reciprocal Rank (MRR) and Precision@K across test queries.
š ļø Architecture & Tech Stack
Layer | Technology | Purpose |
Protocol | FastMCP (Python) | Tool registry and JSON-RPC over STDIO / HTTP transport |
Backend API | FastAPI | User authentication (JWT), file upload, REST search endpoints |
Vector DB | Qdrant | HNSW similarity search with payload-based user isolation |
Embeddings | sentence-transformers / OpenAI | Dense vectorization of document chunks |
LLM / Synthesis | OpenRouter API ( | RAG answer generation over retrieved context chunks |
Frontend | React / Tailwind CSS | Web dashboard for uploading documents, search, and AI answer view |
š Evaluation & Metrics
Metric | Target | Result |
Precision@3 | ā„ 80% | TBD |
MRR (Mean Reciprocal Rank) | ā„ 0.85 | TBD |
Relevance Threshold | Cosine ā„ 0.72 | Enforced |
ā” Quick Start
1. Environment Setup
cd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .envEnsure your backend/.env file contains your OpenRouter key:
OPENROUTER_API_KEY=sk-or-v1-your-api-key-here2. Configure Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"personal-kb": {
"command": "python",
"args": ["-m", "app.mcp_server.server"],
"env": {
"QDRANT_URL": "http://localhost:6333",
"QDRANT_API_KEY": "your-api-key",
"OPENROUTER_API_KEY": "your-openrouter-key"
}
}
}
}š Repository Structure
KNOWLEDGE_BASE-MCP_SERVER/
āāā backend/
ā āāā app/
ā ā āāā api/ # FastAPI REST endpoints (Auth, Documents, Search)
ā ā āāā core/ # App configuration & JWT security settings
ā ā āāā db/ # Qdrant vector database initialization & schemas
ā ā āāā eval/ # Precision@K and MRR benchmark scripts
ā ā āāā mcp_server/ # FastMCP server definition & tool implementations
ā ā āāā services/ # Ingestion, embedding, similarity search, & LLM service (llm_service.py)
ā āāā tests/ # Backend API and retrieval test suite
ā āāā main.py # Application entry point
ā āāā requirements.txt # Python backend dependencies
ā āāā .env.example # Template for environment variables
āāā data/
ā āāā sample_docs/ # Document corpus for local testing
āāā docs/ # Architecture diagrams & project documentation
āāā frontend/ # React / Tailwind web application for multi-user management
ā āāā src/
ā āāā components/ # UI components (Uploaders, Search bar, Answer card)
ā āāā context/ # Auth & Session state providers
ā āāā pages/ # Document dashboard & Search playground
ā āāā services/ # API client bindings
āāā .gitignore # Ignored files (venvs, keys, vector storage)
āāā docker-compose.yml # Local Qdrant & FastAPI orchestration
āāā README.md # Project documentationThis server cannot be deployed
Maintenance
Related MCP Connectors
Personal knowledge base MCP server with semantic search, auto-categorization, metadata extraction
DocBase MCP server for AI agents
MCP server for searching Airweave collections with natural language queries.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceA high-performance MCP server for semantic search and codebase indexing using the Qdrant vector database. It features optimized embedding pipelines, AST-aware chunking, and git metadata enrichment for fast, privacy-focused local or remote search.382 npm22MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for document ingestion and semantic search on Qdrant. Enables ingesting local documents, generating embeddings with OpenAI, and performing vector search with metadata filters.Apache 2.0
- AlicenseAqualityDmaintenanceLocal-first RAG indexing and semantic search MCP server. Enables document retrieval and context-aware queries using local embedding models.36 npmMIT
- AlicenseAqualityBmaintenanceAn MCP server that enables searching and retrieving ACL NLP conference papers from a Qdrant vector database using semantic search and structured filters like year, venue, and field of study.4MIT