ndjordjevic/pinrag

ndjordjevic/pinrag

от ndjordjevic
PinRAG индексирует PDF, GitHub, YouTube, Discord и заметки в единый RAG-индекс. Задавайте вопросы из редактора — ответы с цитатами на источники. Полезен разработчикам и исследователям для работы с ...

PinRAG logo

PinRAG

PyPI License: MIT io.github.ndjordjevic/pinrag on MCP Marketplace pinrag MCP server

Overview

PinRAG is for when you want to learn about something and your materials are scattered—PDFs and ebooks, GitHub repos, YouTube videos, Discord discussions, and plain notes. You index those materials into one shared RAG index, then ask questions from Cursor, VS Code (GitHub Copilot), or any MCP-capable assistant and get answers with citations pointing back to pages, timestamps, files, or threads.

Under the hood it is Retrieval-Augmented Generation built with LangChain and exposed as an MCP (Model Context Protocol) server: add documents from the editor, query with natural language, list or remove what you indexed. Supported inputs include PDFs, local text files and directories, Discord exports, YouTube (transcript from URL, playlist, or ID), and GitHub repo URLs. For YouTube you can optionally add vision so on-screen code, diagrams, and UI text are merged with the transcript in the same chunks—see YouTube vision enrichment.

Features

  • Multi-format indexing — PDF (.pdf), local files or directories, plain text (.txt), Discord export (.txt), YouTube (video or playlist URL, or video ID), GitHub repo (URL), web documentation sites (URL)
  • Optional YouTube vision — Off by default. When enabled, runs a vision model (OpenAI, Anthropic, or OpenRouter native video) and merges structured on-screen context with the transcript so RAG chunks carry searchable code names, labels, and diagrams—not speech alone. OpenRouter mode avoids local ffmpeg/video download; openai/anthropic use scene keyframes and require pinrag[vision] + ffmpeg (see YouTube vision enrichment)
  • RAG with citations — Answers cite source context: PDF page, YouTube timestamp, document name for plain text and Discord, chunk index for GitHub repos, source URL for web documentation
  • Document tags — Tag documents at index time (e.g. AMIGA, PI_PICO) for filtered search
  • Metadata filteringquery_tool supports document_id, tag, document_type, PDF page_min/page_max, and response_style (thorough or concise)
  • MCP toolsadd_document_tool, query_tool, list_documents_tool, remove_document_tool, set_document_tag_tool, list_collections_tool; optional collection on tools overrides PINRAG_COLLECTION_NAME for that call
  • MCP resourcespinrag://documents (indexed documents) and pinrag://server-config (env vars and config); click in Cursor’s MCP panel to view
  • MCP promptuse_pinrag (parameter: request) for querying, indexing, listing, or removing documents
  • Configurable LLM — OpenRouter (default, free openrouter/free router), OpenAI, Anthropic, or Cerebras Inference (OpenAI-compatible API); set via PINRAG_LLM_PROVIDER and PINRAG_LLM_MODEL in MCP env or your shell
  • Local embeddings — Nomic (PINRAG_EMBEDDING_MODEL, default nomic-embed-text-v1.5); no API key; first run downloads model weights (~270 MB, cached)
  • Retrieval & chunking options — Structure-aware chunking (on by default); optional FlashRank re-ranking, multi-query expansion, and parent-child chunks for PDFs (see Configuration)
  • Observability — MCP tool notifications (ctx.log) plus optional LangSmith tracing
  • Built with — LangChain, Chroma; optional OpenRouter, OpenAI, Anthropic, FlashRank
Инструменты были проиндексированы:
add_document_tool

Добавляет файлы, директории, видео YouTube или репозитории GitHub в индекс. Автоматически определяет формат по пути и индексирует: - GitHub (URL, например https://github.com/owner/repo или github.com/owner/repo/tree/branch) - YouTube (URL или ID видео, например https://youtu.be/xyz) - PDF (.pdf) - Экспорт Discord (.txt с заголовком DiscordChatExporter Guild:/Channel:) Передайте один или несколько путей. Один путь: paths=["/path/to/file.pdf"]. Использует конфигурацию сервера для расположения и коллекции векторного хранилища. Возвращает как успешно добавленные, так и ошибочные записи, чтобы один некорректный путь не приводил к сбою всего пакета. Args: paths: Список путей к файлам, директориям, URL YouTube или URL GitHub для индексации. tags: Необязательный список тегов, по одному на путь (в том же порядке, что и пути). branch: Для URL GitHub: переопределение ветки (по умолчанию main). Игнорируется для других форматов. include_patterns: Для URL GitHub: glob-шаблоны для включения файлов (например [".md", "src/**/.py"]). exclude_patterns: Для URL GitHub: glob-шаблоны для исключения. Игнорируется для других форматов. ctx: MCP контекст запроса (внедряется сервером; не используется). Returns: Словарь, содержащий записи, добавленные в индекс, записи с ошибками и итоговые значения.

Параметры
  • branchstring | null

    Для URL GitHub: переопределяет ветку (по умолчанию: main). Игнорируется для других форматов.

  • exclude_patternsstring[] | null

    Для GitHub-URL: шаблоны glob для исключения. Для остальных форматов они игнорируются.

  • include_patternsstring[] | null

    Для GitHub URL: glob patterns для включаемых файлов (например, [".md", "src/**/.py"]). Для других форматов игнорируются.

  • pathsstring[]обязательный

    Пути для индексации: файл, директория, YouTube URL или GitHub URL (например, https://github.com/owner/repo). Один путь: ["/path/to/file.pdf"] или ["https://github.com/owner/repo"].

  • tagsstring[] | null

    Необязательный список тегов, по одному на каждый путь (в том же порядке, что и пути).

list_documents_tool

Выводит список всех проиндексированных документов в индексе PinRAG. Возвращает уникальные идентификаторы документов (имена PDF-файлов, ID видео, discord-alicia-1200-pcb, owner/repo/path для GitHub и т.д.), которые сейчас находятся в векторном хранилище, а также общее количество чанков. Использует конфигурацию сервера для расположения векторного хранилища и коллекции. Аргументы: tag: Опциональный тег для фильтрации: выводить только документы с этим тегом. ctx: Контекст запроса MCP (внедряется сервером; не используется). Возвращает: Словарь, содержащий documents, total_chunks, persist_directory, collection_name, document_details.

Параметры
  • tagstring

    Необязательный тег для фильтрации: показывать только документы с этим тегом.

query_tool

_style: "Answer style" — "Стиль ответа". ctx: "MCP request context" — "Контекст запроса MCP", в скобках "injected by the server; unused" — "внедряется сервером; не используется". Всё выглядит хорошо.Запрашивает проиндексированные документы и возвращает ответ с цитатами. Просматривает все проиндексированные документы (PDF, Discord и т.д.) и использует RAG для формирования ответа на основе извлечённого контекста с указанием источников. Аргументы: query: Вопрос на естественном языке. document_id: Идентификатор документа для фильтрации (необязательно, из list_documents). page_min: Начало диапазона страниц (включительно). Только для PDF. page_max: Конец диапазона страниц (включительно). Только для PDF. tag: Тег для фильтрации (необязательно, из list_documents). document_type: Тип для фильтрации: "pdf", "youtube", "discord", "github" или "plaintext" (необязательно). response_style: Стиль ответа; если не указан или пустая строка, используется PINRAG_RESPONSE_STYLE. ctx: Контекст запроса MCP (внедряется сервером; не используется). Возвращает: Словарь, содержащий ответ и источники (document_id, page).

Параметры
  • document_idstring

    Необязательный идентификатор документа для фильтрации извлечения (из list_documents).

  • document_typestring

    Необязательный тип фильтра: 'pdf', 'youtube', 'discord', 'github' или 'plaintext'.

  • page_maxinteger | null

    Необязательная конечная страница диапазона (включительно). Только для PDF.

  • page_mininteger | null

    Необязательное начало диапазона страниц (включительно). Только для PDF.

  • querystringобязательный

    Вопрос на естественном языке для запроса.

  • response_stylestring

    Стиль ответа: 'подробный' (детальный) или 'краткий'. Оставьте пустым, чтобы использовать PINRAG_RESPONSE_STYLE.

  • tagstring

    Необязательный тег, который фильтрует результаты (из list_documents).

remove_document_tool

Удаляет документ и все его фрагменты из индекса PinRAG. Удаляет все фрагменты и эмбеддинги для указанного документа. Используйте list_documents_tool чтобы получить document_ids (например: "mybook.pdf", "bwgLXEQdq20", "discord-alicia-1200-pcb", "owner/repo/path" для GitHub). Использует конфигурацию сервера для расположения векторного хранилища и коллекции. Аргументы: document_id: Идентификатор документа для удаления (из list_documents_tool). ctx: Контекст запроса MCP (внедряется сервером; не используется). Возвращает: Словарь, содержащий deleted_chunks, document_id, persist_directory, collection_name.

Параметры
  • document_idstringобязательный

    Идентификатор документа для удаления (из list_documents_tool).

Похожие MCP-сервера

shinpr/mcp-local-rag

shinpr/mcp-local-rag

MCP сервер для локального семантического поиска с бустом ключевых слов (например, коды ошибок, имена функций). Индексирует PDF, DOCX, TXT, MD без облака, работает offline. Удобен разработчикам: быстрый доступ к технической документации и коду через MCP или CLI. Запуск одной командой npx без Docke...

TypeScript388
dmayboroda/minima

dmayboroda/minima

Minima — open-source MCP сервер для локального RAG в контейнерах. Поддерживает изолированный Ollama, кастомные LLM и интеграцию с ChatGPT и Claude. Индексирует документы и отвечает на вопросы, обеспечивая полный контроль над данными. Полезен для конфиденциальных проектов и офлайн-сред.

Python1047
webpeel/webpeel

webpeel/webpeel

MCP сервер для AI-агентов, выполняющий веб-загрузку, поиск, краулинг, извлечение данных и скриншоты единым API. Содержит 55+ доменных экстракторов для Reddit, GitHub, YouTube и других. Идеален для ...

TypeScript11
bighippoman/intercept-mcp

bighippoman/intercept-mcp

intercept-mcp — MCP-сервер, дающий AI возможность читать веб-страницы: извлекает чистый markdown из любых URL, обрабатывает Twitter, YouTube, arXiv, PDF, GitHub и другие источники. Использует много...

TypeScript10
lyonzin/knowledge-rag

lyonzin/knowledge-rag

Knowledge RAG — MCP сервер для локальной базы знаний из ваших PDF, Markdown и кода. Гибридный поиск (BM25 + семантика) и реранжинг работают офлайн, без API-ключей и Docker. 13 MCP инструментов для ...

Python278
vectara/vectara-mcp

vectara/vectara-mcp

официальный

MCP-сервер для RAG с Vectara: семантический поиск, генерация и коррекция галлюцинаций. Помогает AI-агентам выдавать фактологически точные ответы с верификацией. Совместим с Claude Desktop.

Python29
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин