Skip to main content
Glama

doc-lib-mcp

by shifusen329

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 позволяет добавлять теги ко всем частям из определенного источника за одну операцию. Тегирование объединяет новые теги с существующими, сохраняя предыдущие теги.

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

Для сервера требуются следующие переменные среды (их можно задать в файле .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

Разработка

Строительство и издательское дело

Чтобы подготовить пакет к распространению:

  1. Синхронизируем зависимости и обновляем файл блокировки:
uv sync
  1. Сборка дистрибутивов пакетов:
uv build

Это создаст исходный код и дистрибутивы wheel в каталоге dist/ .

  1. Опубликовать в 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-адрес, к которому вы можете перейти в своем браузере, чтобы начать отладку.

-
security - not tested
F
license - not found
-
quality - not tested

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Сервер Model Context Protocol для приема, разбиения на фрагменты и семантического поиска файлов документации с поддержкой Markdown, Python, OpenAPI, HTML-файлов и URL-адресов.

  1. Компоненты
    1. Ресурсы
    2. Подсказки
    3. Инструменты
  2. Конфигурация
    1. Конфигурация Оллама
    2. Конфигурация базы данных
    3. Конфигурация реранкера
  3. Быстрый старт
    1. Установить
  4. Разработка
    1. Строительство и издательское дело
    2. Отладка

Related MCP Servers

  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that provides tools for code modification and generation via Large Language Models, allowing users to create, modify, rewrite, and delete files using structured XML instructions.
    Last updated -
    12
    Python
    MIT License
    • Linux
    • Apple
  • -
    security
    A
    license
    -
    quality
    A server that provides document processing capabilities using the Model Context Protocol, allowing conversion of documents to markdown, extraction of tables, and processing of document images.
    Last updated -
    6
    Python
    MIT License
    • Linux
    • Apple
  • -
    security
    F
    license
    -
    quality
    A simple Model Context Protocol server that enables searching and retrieving relevant documentation snippets from Langchain, Llama Index, and OpenAI official documentation.
    Last updated -
    Python
    • Apple
    • Linux
  • -
    security
    A
    license
    -
    quality
    A Model Context Protocol server that synchronizes Markdown files with Notion pages without using LLM tokens, enabling direct interaction with Notion databases and pages through API calls.
    Last updated -
    38
    Python
    MIT License

View all related MCP servers

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