Skip to main content
Glama
README.md
# 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

A3.5/5.0

Scored across 7 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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.