doc-lib-mcp
doc-lib-mcp MCP-сервер
Сервер Model Context Protocol (MCP) для приема документов, разбиения на фрагменты, семантического поиска и управления заметками.
Компоненты
Ресурсы
Реализует простую систему хранения заметок с:
Пользовательская схема URI
note://для доступа к отдельным заметкамКаждый ресурс заметки имеет имя, описание и
text/plainтип MIME.
Подсказки
Предоставляет подсказку:
summary-notes : Создает сводки всех сохраненных заметок
Необязательный аргумент «стиль» для управления уровнем детализации (краткий/подробный)
Создает подсказку, объединяющую все текущие заметки с предпочтениями стиля
Инструменты
На сервере реализован широкий спектр инструментов:
add-note : Добавить новую заметку в хранилище заметок в памяти
Аргументы:
name(строка),content(строка)
ingest-string : принимает и разбивает на части строку markdown или обычный текст, предоставленный через сообщение
Аргументы:
content(строка, обязательно),source(строка, необязательно),tags(список строк, необязательно)
ingest-markdown : Принять и разбить на части файл markdown (.md)
Аргументы:
path(строка)
ingest-python : Прием и разбиение файла Python (.py) на части
Аргументы:
path(строка)
ingest-openapi : Прием и разбиение на части JSON-файла OpenAPI
Аргументы:
path(строка)
ingest-html : Прием и разбиение HTML-файла на части
Аргументы:
path(строка)
ingest-html-url : прием и разбиение HTML-контента из URL-адреса (при желании можно использовать Playwright для динамического контента)
Аргументы:
url(строка),dynamic(логический, необязательный)
smart_ingestion : извлекает весь технически значимый контент из файла с помощью Gemini, а затем разбивает его на части, используя надежную логику разметки.
Аргументы:
path(строка, обязательно): Путь к файлу для загрузки.prompt(строка, необязательно): Пользовательская подсказка для использования в Gemini.tags(список строк, необязательно): Необязательный список тегов для классификации.
Использует Gemini 2.0 Flash 001 для извлечения только кода, конфигурации, структуры разметки и технических определений (без резюме или комментариев).
Передает извлеченный контент в блокировщик на основе mistune 3.x, который сохраняет как блоки кода, так и разметку/повествовательный контент в виде отдельных фрагментов.
Каждый фрагмент встраивается и сохраняется для семантического поиска и извлечения.
search-chunks : Семантический поиск по принятому контенту
Аргументы:
query(строка): семантический поисковый запрос.top_k(целое число, необязательное, по умолчанию 3): количество возвращаемых верхних результатов.type(строка, необязательно): Фильтрация результатов по типу фрагмента (например,code,html,markdown).tag(строка, необязательно): Фильтрация результатов по тегу в метаданных фрагмента.
Возвращает наиболее релевантные фрагменты для заданного запроса, при необходимости отфильтрованные по типу и/или тегу.
delete-source : Удалить все фрагменты из указанного источника
Аргументы:
source(строка)
delete-chunk-by-id : Удалить один или несколько фрагментов по идентификатору
Аргументы:
id(целое число, необязательно),ids(список целых чисел, необязательно)Вы можете удалить один фрагмент, указав
id, или удалить несколько фрагментов одновременно, указавids.
update-chunk-type : обновить атрибут типа для фрагмента по идентификатору
Аргументы:
id(целое число, обязательно),type(строка, обязательно)
ingest-batch : пакетная загрузка и разбиение на части нескольких файлов документации (markdown, OpenAPI JSON, Python)
Аргументы:
paths(список строк)
list-sources : список всех уникальных источников (путей к файлам), которые были приняты и сохранены в памяти, с дополнительной фильтрацией по тегу или семантическому поиску.
Аргументы:
tag(строка, необязательно): Фильтрация источников по тегу в метаданных фрагмента.query(строка, необязательно): Семантический поисковый запрос для поиска релевантных источников.top_k(целое число, необязательное, по умолчанию 10): количество основных источников, возвращаемых при использовании запроса.
get-context : извлечение релевантных фрагментов контента (только контент) для использования в качестве контекста ИИ с фильтрацией по тегу, типу и семантическому сходству.
Аргументы:
query(строка, необязательно): семантический поисковый запрос.tag(строка, необязательно): Фильтрация результатов по определенному тегу в метаданных фрагмента.type(строка, необязательно): Фильтрация результатов по типу фрагмента (например, «код», «маркдаун»).top_k(целое число, необязательное, по умолчанию 5): количество наиболее релевантных фрагментов для извлечения.
update-chunk-metadata : обновить поле метаданных для фрагмента по идентификатору
Аргументы:
id(целое число),metadata(объект)
tag-chunks-by-source : Добавляет указанные теги к метаданным всех фрагментов, связанных с указанным источником (URL или путь к файлу). Объединяет с существующими тегами.
Аргументы:
source(строка),tags(список строк)
list-notes : Список всех сохраненных на данный момент заметок и их содержимого.
Разделение на части и извлечение кода
Файлы Markdown, Python, OpenAPI и HTML разбиваются на логические фрагменты для эффективного извлечения и поиска.
Инструмент разметки использует API AST и регулярные выражения mistune 3.x для надежного разделения контента на блоки кода и повествования, сохраняя все исходное форматирование.
Блоки кода и разметка/повествовательный контент сохраняются как отдельные фрагменты.
HTML chunker использует библиотеку
readability-lxmlдля извлечения основного контента в первую очередь, затем извлекает фрагменты кода блока из тегов<pre>как выделенные фрагменты "code". Встроенный контент<code>остается частью повествовательных фрагментов.
Семантический поиск
Инструмент
search-chunksвыполняет векторный семантический поиск по всему полученному контенту, возвращая наиболее релевантные фрагменты для заданного запроса.Поддерживает необязательные аргументы
typeиtagдля фильтрации результатов по типу фрагмента (например,code,html,markdown) и/или по тегу в метаданных фрагмента перед семантическим ранжированием.Это позволяет осуществлять узконаправленный поиск, например, «все фрагменты кода, помеченные тегом „langfuse“, имеющие отношение к „стоимости и использованию“».
Управление метаданными
Фрагменты включают поле
metadataдля категоризации и тегирования.Инструмент
update-chunk-metadataпозволяет обновлять метаданные для любого фрагмента по его идентификатору.Инструмент
tag-chunks-by-sourceпозволяет добавлять теги ко всем частям из определенного источника за одну операцию. Тегирование объединяет новые теги с существующими, сохраняя предыдущие теги.
Related MCP server: MPC Docs Server
Конфигурация
Для сервера требуются следующие переменные среды (их можно задать в файле .env):
Конфигурация Оллама
OLLAMA_HOST: Имя хоста для API Ollama (по умолчанию: localhost)
OLLAMA_PORT: Порт для API Ollama (по умолчанию: 11434)
RAG_AGENT: модель Ollama, используемая для ответов RAG (по умолчанию: llama3)
OLLAMA_MODEL: Модель Ollama, используемая для встраивания (по умолчанию: nomic-embed-text-v2-moe)
Конфигурация базы данных
ХОСТ: Хост базы данных PostgreSQL (по умолчанию: localhost)
DB_PORT: порт базы данных PostgreSQL (по умолчанию: 5432)
DB_NAME: Имя базы данных PostgreSQL (по умолчанию: doclibdb)
DB_USER: Пользователь базы данных PostgreSQL (по умолчанию: doclibdb_user)
DB_PASSWORD: пароль базы данных PostgreSQL (по умолчанию: doclibdb_password)
Конфигурация реранкера
RERANKER_MODEL_PATH: Путь к модели реранкера (по умолчанию: /srv/samba/fileshare2/AI/models/bge-reranker-v2-m3)
RERANKER_USE_FP16: Использовать ли FP16 для повторного ранжирования (по умолчанию: True)
Быстрый старт
Установить
Клод Десктоп
В MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json В Windows: %APPDATA%/Claude/claude_desktop_config.json
Разработка
Строительство и издательское дело
Чтобы подготовить пакет к распространению:
Синхронизируем зависимости и обновляем файл блокировки:
uv syncСборка дистрибутивов пакетов:
uv buildЭто создаст исходный код и дистрибутивы wheel в каталоге dist/ .
Опубликовать в PyPI:
uv publishПримечание: вам необходимо задать учетные данные PyPI с помощью переменных среды или флагов команд:
Токен:
--tokenилиUV_PUBLISH_TOKENИли имя пользователя/пароль:
--username/UV_PUBLISH_USERNAMEи--password/UV_PUBLISH_PASSWORD
Отладка
Поскольку серверы MCP работают через stdio, отладка может быть сложной. Для лучшего опыта отладки мы настоятельно рекомендуем использовать MCP Inspector .
Вы можете запустить MCP Inspector через npm с помощью этой команды:
npx @modelcontextprotocol/inspector uv --directory /home/administrator/python-share/doc-lib-mcp run doc-lib-mcpПосле запуска Инспектор отобразит URL-адрес, к которому вы можете перейти в своем браузере, чтобы начать отладку.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityFmaintenanceA Model Context Protocol (MCP) server that enables semantic search and retrieval of documentation using a vector database (Qdrant). This server allows you to add documentation from URLs or local files and then search through them using natural language queries.24135Apache 2.0
- Flicense-qualityDmaintenanceA simple Model Context Protocol server that enables searching and retrieving relevant documentation snippets from Langchain, Llama Index, and OpenAI official documentation.
- Alicense-qualityAmaintenanceSelf-hosted MCP server that indexes documentation from various sources and makes it searchable by AI assistants via the Model Context Protocol and REST API.2371Apache 2.0
- Alicense-qualityBmaintenanceA local-first semantic search server for documents, supporting PDFs, Office files, and text/markdown, enabling natural language search via the Model Context Protocol (MCP).1MIT
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Turn a GitHub repo or docs site into agent-ready context: pack it or search it, over MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/shifusen329/doc-lib-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server