KB-MCP Server
# KB-MCP Server
A **local-first Knowledge Base** with Model Context Protocol (MCP) support.
Give your AI a reliable memory. Run it locally. Stream answers in real time.
---
## What is This?
A Knowledge Base (KB) is a structured collection of facts, documents, and embeddings stored in machine-readable form, with interfaces to:
- **Add** knowledge
- **Query** knowledge (semantic + keyword search)
- **Update/Delete** knowledge
This MCP server exposes your KB to any MCP-compatible AI client (Claude, custom agents, etc.).
---
## Why Local-First?
| Benefit | Description |
|---------|-------------|
| **Privacy** | No cloud leaks — your data stays on your machine |
| **Zero latency** | No network round-trips |
| **Offline support** | Works without internet |
| **Full control** | You own the data and the logic |
| **No vendor lock-in** | Swap components freely |
---
## Quick Start
### Installation
```bash
npm install
npm run build
```
### Run the Server
```bash
npm start
```
Or for development:
```bash
npm run dev
```
### Configure with Claude Desktop
Add to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"knowledge-base": {
"command": "node",
"args": ["/path/to/kb-mcp-server/dist/index.js"],
"env": {
"KB_DATA_DIR": "/path/to/your/data"
}
}
}
}
```
---
## Available Tools
| Tool | Description |
|------|-------------|
| `ingest_document` | Add a document with title, content, and metadata |
| `query_knowledge` | Semantic search across all documents |
| `list_documents` | List documents with pagination |
| `get_document` | Get full document by ID |
| `update_document` | Update existing document |
| `delete_document` | Remove document from KB |
| `kb_stats` | Get knowledge base statistics |
---
## How It Works
```
1. User asks a question
↓
2. AI sends MCP query → KB-MCP Server
↓
3. KB retrieves relevant facts (semantic search)
↓
4. AI grounds the answer with real data
↓
5. Response streams to user
↓
6. (Optional) New insights stored back
```
**Result**: AI answers correctly. Knowledge compounds. No hallucinations.
---
## Architecture
```
┌─────────────────┐
│ AI Client │
│ (Claude, Agent) │
└────────┬────────┘
│ MCP Protocol
↓
┌─────────────────┐
│ KB-MCP Server │ ← stdio transport
│ ┌───────────┐ │
│ │ Tools │ │ ingest | query | list | delete
│ └─────┬─────┘ │
│ ↓ │
│ ┌───────────┐ │
│ │ Engine │ │ Embeddings + Similarity Search
│ └─────┬─────┘ │
│ ↓ │
│ ┌───────────┐ │
│ │ Store │ │ JSON file (swap with Chroma/pgvector)
│ └───────────┘ │
└─────────────────┘
```
---
## Configuration
| Environment Variable | Default | Description |
|---------------------|---------|-------------|
| `KB_DATA_DIR` | `./.kb-data` | Directory for storing knowledge base data |
---
## Production Enhancements
For production use, consider:
1. **Real embeddings**: Replace hash-based embeddings with OpenAI, Cohere, or local models (Ollama)
2. **Vector database**: Swap JSON store with Chroma, Qdrant, or pgvector
3. **Chunking**: Split large documents into chunks for better retrieval
4. **Hybrid search**: Combine semantic + BM25 keyword search
5. **Access control**: Add authentication for multi-user setups
---
## License
MIT — Use freely.
---
## Author
Matrix Agent
TDQS
Scored across 7 tools
Every tool has a clearly distinct purpose with no ambiguity. Each targets a specific action on documents or the knowledge base (e.g., ingest, get, update, delete, list, query, stats), and the descriptions reinforce non-overlapping functions.
All tool names follow a consistent verb_noun pattern (e.g., delete_document, get_document, ingest_document), with no deviations in style or convention, making them predictable and readable.
With 7 tools, the server is well-scoped for a knowledge base management system. Each tool earns its place, covering essential CRUD operations, querying, and statistics without being overly sparse or bloated.
The tool set provides complete CRUD/lifecycle coverage for the knowledge base domain, including ingest, get, update, delete, list, query, and stats. There are no obvious gaps, allowing agents to handle all core workflows without dead ends.