Skip to main content
Glama
dyyz1993

Knowledge Base MCP

by dyyz1993

Knowledge Base MCP

MCP-сервер базы знаний для нескольких проектов, поддерживающий трехуровневый поиск (текстовое сопоставление / TF-IDF / семантические векторы) с веб-интерфейсом для управления.

Функциональные возможности

  • 8 инструментов MCP — kb_write / kb_read / kb_search / kb_search_semantic / kb_list / kb_delete / kb_update / kb_outline

  • Трехуровневая архитектура поиска — P0 текстовое сопоставление + P1 TF-IDF + P2 многоязычные семантические векторы с взвешенным ранжированием

  • Многоязычный семантический поиск — на базе paraphrase-multilingual-MiniLM-L12-v2, поддержка кросс-языкового поиска для 50+ языков

  • Двойной режим передачи — Stdio (локальный MCP-клиент) + HTTP (StreamableHTTP / SSE / REST API)

  • Веб-интерфейс — Vite 6 + React 18 + Zustand + Tailwind + Ant Design

Related MCP server: RAG MCP Server

Быстрый старт

Запуск одной командой через npx (рекомендуется)

Не нужно клонировать репозиторий, просто запустите:

# Stdio 模式
npx @dyyz1993/kb-mcp --stdio

# HTTP 模式
npx @dyyz1993/kb-mcp --http --port 19877

Глобальная установка (опционально)

npm install -g @dyyz1993/kb-mcp
kb-mcp --stdio

Сборка из исходного кода

git clone https://github.com/dyyz1993/knowledge-base-mcp.git
cd knowledge-base-mcp
bun install

При первом использовании семантического поиска необходимо предварительно загрузить модель эмбеддингов:

bun run -e '
import { pipeline, env } from "@huggingface/transformers"
import { join } from "node:path"
import { homedir } from "node:os"
env.localModelPath = join(homedir(), ".cache/huggingface/local-models")
env.allowLocalModels = true
await pipeline("feature-extraction", "Xenova/paraphrase-multilingual-MiniLM-L12-v2", { dtype: "fp32" })
console.log("Model downloaded")
'

Если модель не загружена, семантический поиск (P2) будет недоступен, но текстовое сопоставление (P0) и TF-IDF (P1) продолжат работать в обычном режиме.

Настройка OpenCode

Режим Stdio (рекомендуется для локального использования)

Отредактируйте ~/.config/opencode/opencode.json и добавьте в mcp.servers следующее:

{
  "mcp": {
    "servers": {
      "knowledge-base": {
        "type": "local",
        "command": ["npx", "@dyyz1993/kb-mcp", "--stdio"]
      }
    }
  }
}

Запускать вручную не нужно, OpenCode автоматически управляет жизненным циклом процесса.

Режим StreamableHTTP (удаленный сервер)

Сначала запустите службу:

npx @dyyz1993/kb-mcp --http --port 19877

Конфигурация:

{
  "mcp": {
    "servers": {
      "knowledge-base": {
        "type": "streamable-http",
        "url": "http://your-server:19877/mcp"
      }
    }
  }
}

Режим SSE (старые клиенты)

{
  "mcp": {
    "servers": {
      "knowledge-base": {
        "type": "sse",
        "url": "http://your-server:19877/sse"
      }
    }
  }
}

Веб-интерфейс

# 先启动 HTTP 服务
npx @dyyz1993/kb-mcp --http --port 19877

# 启动 Web UI
cd web
bun install
bun run dev

Перейдите по адресу http://localhost:5180, API-запросы автоматически проксируются на :19877.

Инструменты MCP

Инструмент

Описание

kb_write

Сохранение документа знаний, поддержка метаданных (теги, ключевые слова, исходный проект и т.д.)

kb_read

Чтение содержимого документа, автоматическое усечение после 50 строк

kb_search

Многомерный поиск по тексту + ключевым словам + тегам

kb_search_semantic

Семантический векторный поиск, поддержка кросс-языкового поиска

kb_list

Просмотр списка документов с фильтрацией по тегам или проектам

kb_delete

Удаление документа с синхронным обновлением индекса

kb_update

Обновление текста документа, заголовка, тегов и ключевых слов

kb_outline

Получение структуры документа для указанного проекта

Параметры kb_write

{
  title: string              // 文档标题
  content: string            // 正文(Markdown)
  tags: string[]             // 标签:tutorial / document / analysis / guide / snippet / best-practice / reference / architecture / troubleshooting / decision
  keywords: string[]         // 关键词,用于检索
  intent: string             // 创建意图或使用场景
  project_description: string // 当前项目简要描述
  source_project?: string    // 来源项目路径(自动填充)
  source_worktree?: string   // 来源 worktree 路径(自动填充)
}

REST API

Следующие конечные точки доступны только в режиме HTTP.

Метод

Путь

Описание

GET

/health

Проверка работоспособности

GET

/api/docs

Список всех документов

GET

/api/doc/:id

Чтение указанного документа

POST

/api/search

Комплексный поиск (трехуровневое слияние)

POST

/api/search/semantic

Семантический поиск

GET

/api/outline?project=...

Получение структуры проекта

Архитектура поиска

查询 → ┌─ P0: 文本匹配(标题/关键词/意图) ──── 权重 0.2
       ├─ P1: TF-IDF(加权词频 + 余弦相似度) ── 权重 0.3
       └─ P2: 语义向量(384维 embedding + 余弦相似度) ── 权重 0.5
         ↓
       加权融合 → 排序返回 TopK

Уровень

Алгоритм

Особенности

Сценарий

P0

Сопоставление подстрок + взвешивание полей

Точно, быстро

Известные ключевые слова

P1

TF-IDF + косинусное сходство

Китайская биграммная токенизация, взвешенные поля

Нечеткое сопоставление

P2

multilingual-MiniLM + косинусное сходство

Кросс-языковое семантическое сопоставление (50+ языков)

Запросы на естественном языке

kb_search использует P0, kb_search_semantic использует P2, HTTP /api/search использует трехуровневое слияние.

Структура хранения

Все данные хранятся в ~/.knowledge/ (можно настроить через переменную окружения KB_DIR):

~/.knowledge/
├── index.json              # 文档索引
├── vectors.json            # 语义向量缓存
├── outlines/               # 项目大纲
│   └── {project-slug}.json
├── {id}-{title-slug}.md    # 文档文件(YAML frontmatter + Markdown 正文)
└── ...

Пример файла отдельного документа:

---
id: "abc123xyz"
title: "React Hooks 最佳实践"
tags: ["best-practice"]
keywords: ["react", "hooks", "useEffect"]
intent: "React 开发中 hooks 的常见模式和陷阱"
project_description: "前端组件库项目"
source_project: "/Users/x/project-frontend"
created_at: 1746012345678
---

## 使用 useEffect 的注意事项
...

Тестирование

bun test

Переменные окружения

Переменная

Значение по умолчанию

Описание

KB_DIR

~/.knowledge

Директория хранения базы знаний

PORT

19877

Порт режима HTTP (также доступен через параметр --port)

Лицензия

MIT

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    D
    maintenance
    A fund knowledge base server based on Model Context Protocol (MCP), providing query and retrieval functions of fund-related knowledge, and supporting multiple deployment modes and protocols.
    3
    2
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    A RAG knowledge base MCP server that adds vector search and reranking capabilities to opencode, supporting multimodal embeddings, multiple knowledge bases, and local storage.
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Vendor-neutral MCP server for knowledge retrieval across repositories, offering stable tools for searching, getting, and listing documents with hybrid lexical and optional semantic search.
    3
    MIT