Local Library MCP

Local Library MCP

Local MCP server that provides verified answers about Jimmer and internal libraries using a SQLite FTS5 knowledge base.

Category
Visit Server

README

Local Library MCP

Локальный MCP-сервер и SQLite FTS5-база знаний по используемым библиотекам.

Цель

Агент работает с одним локальным MCP и получает подтверждённые ответы по Jimmer, внутренним backend/frontend-библиотекам, конфигурации и стандартам. Никакой удалённый MCP endpoint не требуется.

Основные принципы

  • индекс и исходные репозитории остаются на рабочем компьютере;
  • каждое найденное утверждение имеет источник: pack, путь, commit и строки;
  • перед публикацией pack проходит ingestion-audit и retrieval evaluation;
  • skill содержит только workflow использования MCP, а не копии документации;
  • internal packs содержат полный полезный контекст: код, документацию, конфигурацию, примеры и стандарты.

Стартовый scope

Первый pack: jimmer — официальная документация, examples, curated use cases и точный API index. После его quality gate добавляем внутренние packs по одному.

См. knowledge-packs.md и ingestion-audit.md, source-sync.md and product-flow.md, configuration-model.md and curated-project-context.md.

PyYAML is installed only for maintainer runs with --workspace; обычному developer с готовым pack он не нужен. Runtime MCP использует только стандартную библиотеку Python, поэтому не требует Rust, Cargo или Xcode Command Line Tools. Python 3.9+ подходит.

Первая установка и индексация (maintainer)

Этот сценарий запускает только человек, который выпускает общий knowledge pack. Все repositories, которые нужно проиндексировать, включая jimmer, jimmer-docs, jimmer-examples, application repositories и вложенные library modules, должны быть отдельными Git directories внутри одной workspace-папки.

На рабочем компьютере workspace уже определён:

PROJECTS=/path/to/projects
cd "$PROJECTS"
git clone git@github.com:asimmetria/uvz-local-library-mcp.git
cd uvz-local-library-mcp

./install.sh \
  --workspace "$PROJECTS" \
  --sync \
  --configuration-root "$PROJECTS/uvz-config"

Installer сначала использует $GIGACODE_HOME/.venv/bin/python, если он есть; на рабочем окружении это Python GigaCode. При нестандартной установке можно выбрать interpreter явно: PYTHON_BIN=/path/to/python3.13 ./install.sh .... При synthetic/non-writable $HOME installer ищет .gigacode в родительских папках проекта и хранит runtime в .mcp-runtime рядом с самим MCP-проектом. Пути можно переопределить через GIGACODE_HOME и MCP_RUNTIME_HOME. Если в корпоративном Python есть pip, но нет python3-venv, installer автоматически устанавливает зависимости в локальную .mcp-runtime через pip --target; права sudo и пакет python3-venv не нужны.

--workspace сам находит каждый Git repository под $PROJECTS и передаёт его в indexer один раз. Поэтому jimmer-docs отдельно указывать не нужно: если он лежит рядом с остальными projects, он уже войдёт в pack.

--configuration-root не добавляет repository повторно. Он лишь сообщает, что uvz-config — central configuration source: его вложенные папки становятся отдельными configuration_set для resolve_config.

--sync для чистых checkout-ов делает fetch, определяет основную ветку из origin/HEAD (с запасными вариантами master, затем main), переключается на неё и выполняет pull --ff-only. Repository с локальными commits/изменениями не изменяется; причина записывается в audit.

Чтобы не индексировать отдельные repositories, создай рядом с install.sh локальный index-exclude.txt: по одному точному имени Git-директории на строку, комментарии начинаются с #. Файл ignored Git и автоматически применяется при --workspace; итоговый audit содержит sources_excluded. Шаблон: index-exclude.example.txt. Для другого расположения используй --exclude-file /path/to/list.txt или переменную INDEX_EXCLUDE_FILE.

После успешной сборки можно выполнить необязательную проверку качества:

python3 verify_index.py --db knowledge.db --expect fetcher

Затем maintainer публикует готовый pack:

python3 package_pack.py --version 2026.07.22

Установка для разработчика

Для команды рекомендуется один закрытый Bitbucket-репозиторий-дистрибутив: тот же код MCP и опубликованный dist/knowledge-pack-<version>.zip в нём. Разработчик не клонирует projects и не запускает индексацию:

git clone <internal-bitbucket>/uvz-local-library-mcp.git
cd uvz-local-library-mcp
./install.sh

Без --workspace и --knowledge-pack installer сам выберет самый новый dist/knowledge-pack-*.zip. Он ставит локальный stdio MCP и generic skill. После перезапуска GigaCode агент использует готовую SQLite-базу.

Все bundled skills лежат в одном каталоге skills/. Навык skills/library-knowledge-workflow/ — часть обычной установки: install.sh автоматически создаёт для него симлинк $GIGACODE_HOME/skills/library-knowledge-workflow.

Необязательный skill для подготовки документации

skills/project-context-authoring/ содержит personal skill для владельцев библиотек: он создаёт project-context.yaml и docs/usage. Он намеренно не устанавливается автоматически обычным developer. Владелец подключает его вручную командой ./scripts/install-project-context-authoring.sh; она создаёт симлинк в $GIGACODE_HOME/skills/project-context-authoring. Его scripts list-gradle-projects.sh и run-project-context.sh запускают GigaCode по одному выбранному репозиторию, а не по всему workspace.

Maintainer добавляет новый pack в закрытый repository явно (git add -f dist/knowledge-pack-<version>.zip), поскольку dist/ намеренно ignored в публичном исходном repository. Если pack распространяется отдельно, его можно указать явно: ./install.sh --knowledge-pack /path/to/pack.zip.

Для YAML доступны два разных инструмента: search_config показывает исходные файлы, а resolve_config собирает leaf-values для application, configuration_set, optional module и Spring profile. Его ответ всегда содержит provenance. Базовый порядок объединения — central base → module base → central profile → module profile; его нужно один раз сверить с реальным spring.config.import конкретного приложения.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured