Skip to main content
Glama
auto-knowledge-base

auto-knowledge-base

by guyeyouhun

Quick Start

# 1. Install
git clone https://github.com/guyeyouhun/auto-knowledge-base.git
cd auto-knowledge-base
npm install                   # installs deps + auto-downloads embedding model (~55MB)
npm run build
node dist/install.js          # creates .env template

# 2. Configure LLM (needed for rerank/synthesis)
# Edit .env:
LLM_BASE_URL=https://api.openai.com/v1
LLM_API_KEY=sk-...
LLM_MODEL=gpt-4o

# 3. Start
node dist/index.js            # runs as MCP server over stdio

No additional services. No embedding server, no vector database, no Python runtime. BM25 and vector search both run in-process with SQLite + ONNX.


Related MCP server: Open WebUI Knowledge Base MCP Server

Usage

# Store knowledge → staging
knowledge_learn(content: "Vite uses Rollup for production bundling", title: "Vite Build")

# Confirm → committed
knowledge_confirm(id: "550e8400-e29b-41d4-a716-446655440000")

# Search (BM25 + vector hybrid + LLM rerank)
knowledge_search(query: "vite rollup")

# Role-aware knowledge push
knowledge_relevant(role: "frontend", task: "configure build tooling")

# Export backup
knowledge_export

Core Architecture

Layer

Technology

Retrieval

FTS5 BM25 → cosine similarity → LLM rerank

Embedding

Process-internal ONNX via fastembed (BGESmallZH, 512-dim)

Storage

SQLite + WAL + FTS5 + relation graph + vector columns

Spaced repetition

FSRS-6 for retention optimization

Knowledge diffusion

Role-based BFS activation

Search pipeline

query → BM25 FTS5 → vector cosine rerank
  → if BM25 < limit: vector similarity scan → results
  → (optional) LLM rerank + synthesis

Every stage degrades gracefully. No single failure blocks the response.

Knowledge lifecycle

learn (staging) → confirm (confirmed) → FSRS decay → frozen
                                              ↓
                             refresh queue → content-digester re-digest

MCP Tools

Core (4)

Tool

Description

knowledge_search

BM25 + vector hybrid + LLM rerank

knowledge_learn

Store knowledge (staging), auto-dedup

knowledge_confirm

staging → confirmed

knowledge_relevant

Role-based diffusion + BFS activation

Configuration (2)

Tool

Description

knowledge_role_config

Role entry nodes, diffusion depth

knowledge_config

View LLM configuration

Operations (5)

Tool

Description

knowledge_maintenance

FSRS-6 decay sweep

knowledge_export / import

JSON backup / restore

knowledge_audit

Operation log

knowledge_status

Statistics (truth, temperature, relations, embeddings)

Feedback (3)

Tool

Description

knowledge_request_refresh

Request re-digestion (content-digester integration)

knowledge_report_gap

Report knowledge gaps, triggers auto-digest

knowledge_gaps

Query gap records by status/role


Configuration

Only the LLM needs to be configured (in .env):

LLM_BASE_URL=http://localhost:11434/v1
LLM_API_KEY=your-api-key
LLM_MODEL=gpt-4o

The embedding model (fastembed + BGESmallZH) is automatically downloaded during npm install to knowledge/models/. No embedding configuration needed.


Development

npm test                    # 157 tests, 21 files
npm run test:watch          # watch mode
npm run build               # tsc + copy schema

Design


Available Tools

6 tools
knowledge_configA

查看 LLM 配置信息(不暴露密钥)。

Inputs: no named parameters.

knowledge_learnC

导入知识到知识库。LLM 会自动提取结构化信息(标题、摘要、标签、关系)。

Inputs: content (required), type, title, project, +2 more.

knowledge_learn_stagedA

暂存待确认知识。存入 staging 区域,需要确认后才正式入库。

Inputs: content (required), source.

knowledge_relevantC

获取与当前任务相关的知识。基于任务描述和关键词返回最匹配的条目。

Inputs: task (required), keywords, project, currentFile, +1 more.

knowledge_statusA

知识库状态概览:条目数量、类型分布、LLM 连接状态。

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.3/5.0

    Scored across 6 tools

    Disambiguation3/5

    知识检索入口有 knowledge_search 和 knowledge_relevant 两个高度重叠的工具,都用于返回匹配条目,容易造成误选。knowledge_learn 和 knowledge_learn_staged 的边界相对清楚,但整体仍存在一些模糊地带。

    Naming Consistency4/5

    所有工具都有 knowledge_ 前缀且使用 snake_case,整体风格统一。不过 knowledge_relevant 缺少动词,status 和 config 是名词,与 search/learn 这类动词命名不完全一致。

    Tool Count5/5

    6 个工具对于一个知识库服务器来说是合理的规模,覆盖了检索、导入、暂存、状态和配置查看等核心能力,没有冗余臃肿。

    Completeness2/5

    知识导入和检索是完整的,但 knowledge_learn_staged 明确表示需要确认后才正式入库,却没有对应的确认或拒绝工具,形成工作流死角。同时缺少删除、更新等知识库生命周期管理能力。

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers