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

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

Запуск одной командой через 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

F
license - not found
-
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dyyz1993/knowledge-base-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server