Об этом проекте
fumasignal-mcp — это сторонний, неофициальный сервер Model Context Protocol (MCP), предназначенный для того, чтобы AI-ассистенты могли искать и читать документацию, построенную с помощью Fumadocs. Сервер настраивается на URL развёрнутого сайта Fumadocs или на локальную директорию проекта Fumadocs и предоставляет набор только для чтения инструментов любому клиенту MCP.
Режимы работы
Сервер работает в двух режимах. В удалённом режиме указываетсяOrigin развёрнутого сайта Fumadocs (только схема и хост, путь к документации настраивается отдельно), что не требует локальной установки. В локальном режиме указывается корень проекта Fumadocs на диске, что подходит для автономной работы или проверки до развертывания. Проект распространяется как единый bинарный файл через npx, типовая команда: npx -y fumasignal-mcp --url https://your-docs.com. Весь доступ осуществляется только для чтения, документация не модифицируется.
Предоставляемые инструменты
Предоставлено семь инструментов. search_docs выполняет полнотекстовый поиск через Orama search API и требует query; также принимает tag для сайтов с несколькими документами. list_pages перечисляет известные страницы и может быть отфильтрован по префиксу URL. get_page получает полное Markdown-содержимое страницы. get_section извлекает один раздел по якорю заголовка. get_toc列出页面标题及其锚点。get_meta возвращает frontmatter или метаданные страницы в виде JSON. get_llms_txt загружает llms.txt, а при установленном флаге full — llms-full.txt. Ссылки на страницы можно указывать как путь URL, абсолютный URL того же хоста или slug под префиксом docs.
Конфигурация клиентов
README содержит сниппеты конфигурации для Claude Desktop, Claude Code, Cursor, VS Code с GitHub Copilot Chat и Continue.dev, использующих транспорт stdio и одну команду npx. Несколько сайтов документации могут обслуживаться регистрацией нескольких экземпляров под разными ключами. Для Continue.dev показаны как многоразовый JSON-файл, так и нативный формат YAML.
Флаги CLI и переменные окружения
Флаги включают: --url — origin сайта, --local — локальный корень проекта, --search-path — нестандартный путь к search API (по умолчанию /api/search, всегда разрешается от корня origin), --docs-prefix — префикс URL документации (по умолчанию /docs), --content-dir — локальная директория контента (по умолчанию content/docs), --auth-header — для аутентифицированных сайтов, --cache-ttl — время кэширования удалённых ответов (по умолчанию 300000 мс), а также --version и --help. Каждому флагу соответствует переменная окружения FUMASIGNAL_*, при этом явные флаги имеют приоритет. Есть дополнительная переменная FUMASIGNAL_LOG_LEVEL без эквивалента среди флагов. README рекомендует передавать секреты через переменные окружения, чтобы они не сохранялись в истории командной строки или списке процессов.
Как работает получение данных
В удалённом режиме search вызывает Orama API и обрабатывает как плоский массив, так и форму ответа hits/document; перечисление страниц загружает sitemap.xml и фильтрует по префиксу docs; получение страницы сначала пробует варианты .md, .mdx и /raw, иначе использует скрапинг рендеренного HTML с конвертацией article или main элемента в Markdown через Turndown; llms.txt загружается напрямую. Удалённые ответы кэшируются в памяти с TTL 5 минут по умолчанию. В локальном режиме сервер обходит Markdown и MDX файлы в директории content, парсит frontmatter через gray-matter, отображает index-файлы в корень docs и ранжирует результаты поиска с помощью взвешенного по заголовкам токенирования.
Совместимость и тестирование
Проект требует Node.js 20 или новее, протестирован с Orama search API по умолчанию и стандартной схемой sitemap. Работает с любым STDIO MCP-клиентом, включая Claude Desktop, Claude Code, Cursor, VS Code, Zed и Cline. Проект содержит более 280 юнит-тестов с fixtures, покрывающими пути поиска, sitemap и HTML.
Устранение неполадок и разработка
README описывает типичные проблемы: отсутствие sitemap влияет только на list_pages, 404 при поиске обычно означает нестандартный путь поиска или URL со путём, скрапинг HTML может давать шум на сайтах без эндпоинтов Markdown. Предоставлен скрипт MCP Inspector для проверки регистрации инструментов. Инструкция по разработке включает клонирование, установку, type checking через tsc, линтинг через eslint, тестирование через vitest, сборку через tsup и комбинированный check-скрипт. Вклад приветствуется, предлагается создавать issue для нетривиальных изменений. Проект выпущен под лицензией MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.