Knowledge Base MCP
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
Инструмент | Описание |
| Сохранение документа знаний, поддержка метаданных (теги, ключевые слова, исходный проект и т.д.) |
| Чтение содержимого документа, автоматическое усечение после 50 строк |
| Многомерный поиск по тексту + ключевым словам + тегам |
| Семантический векторный поиск, поддержка кросс-языкового поиска |
| Просмотр списка документов с фильтрацией по тегам или проектам |
| Удаление документа с синхронным обновлением индекса |
| Обновление текста документа, заголовка, тегов и ключевых слов |
| Получение структуры документа для указанного проекта |
Параметры 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 |
| Проверка работоспособности |
GET |
| Список всех документов |
GET |
| Чтение указанного документа |
POST |
| Комплексный поиск (трехуровневое слияние) |
POST |
| Семантический поиск |
GET |
| Получение структуры проекта |
Архитектура поиска
查询 → ┌─ 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Переменные окружения
Переменная | Значение по умолчанию | Описание |
|
| Директория хранения базы знаний |
|
| Порт режима HTTP (также доступен через параметр |
Лицензия
MIT
This server cannot be installed
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