jdatamunch-mcp

by jgravelle (community) · Claude Desktop, Claude Code, OpenCode, Python 3.8+, Windows, macOS, Linux, CSV, Excel, Parquet, JSONL

MCP MCP Servers Open Source v1.31.8 · 20.08.2026 активный

Token-эффективный MCP-сервер для работы с табличными данными. Индексация CSV/Excel, запросы к строкам, агрегация — экономия 99%+ токенов по сравнению с чтением сырых файлов.

v1.31.8
20.08.2026 current

Установка
# Требуется Python 3.10+ и любой MCP-совместимый клиент
claude mcp add jdatamunch -- uvx jdatamunch-mcp
# вариант с поддержкой Excel (.xlsx/.xls) и Parquet (.parquet)
claude mcp add jdatamunch -- uvx --from "jdatamunch-mcp[excel,parquet]" jdatamunch-mcp
# альтернатива: постоянная установка вместо запуска через uvx
uv tool install jdatamunch-mcp
pipx install jdatamunch-mcp
pip install jdatamunch-mcp
показать оригинал переведено ИИ

jDataMunch MCP: Извлечение табличных данных для ИИ-агентов

jDataMunch — это MCP-сервер для кодовых агентов и аналитиков, который отвечает на вопросы о файлах CSV, Excel, Parquet и JSONL без вставки строк в контекстное окно.

Проиндексируйте набор данных один раз, а затем получайте профили столбцов, отфильтрованные строки, агрегации на стороне сервера и объединения между наборами данных — так файл с миллионом строк будет стоить тысячи токенов вместо миллионов.

Установка · Быстрый старт · Бенчмарки · Коммерческое лицензирование

Версия PyPI PyPI - Версия Python Лицензия MCP Локальное использование

Бесплатно для личного использования. Для коммерческого использования требуется платная лицензия — условия ниже.


Зачем нужен jDataMunch?

Проблема. Стандартный способ, которым агент исследует электронную таблицу, — вставить её в промпт. CSV-файл размером 255 МБ с миллионом строк обойдётся примерно в 111 миллионов токенов, и модели всё равно придётся анализировать миллион строк, чтобы ответить на вопрос "какие столбцы здесь есть?"

Механизм. jDataMunch один раз профилирует файл — столбцы, типы, кардинальность, процент пустых значений, распределения — и сохраняет это локально. Запросы затем выполняются непосредственно к данным, а не к их копии в промпте: фильтры, агрегации и объединения выполняются на стороне сервера и возвращают только результаты.

Результат. Вопросы по структуре данных отвечаются на основе профиля. Вопросы на уровне строк возвращают соответствующие строки. Исходный файл никогда не попадает в контекстное окно.


Доказательства

Измерено на реальном публичном наборе данных, а не оценено. Полный набор тестов и результаты по каждому запросу в benchmarks/.

Набор данных: Записи о преступлениях LAPD — 1,004,894 строк, 28 столбцов, 255 МБ Базовый уровень: 111,028,360 токенов для вставки исходного файла describe_dataset: ~3,849 токенов — сокращение в 25,333 раза Методология и набор тестов · Полные результаты

Задача Без jDataMunch С jDataMunch Сокращение
Понимание структуры набора данных Вставка 111M токенов describe_dataset → ~3,849 токенов ~25,000×
Схема + углублённый анализ одного столбца Вставка 111M токенов describe_dataset + describe_column → ~4,400 токенов ~25,000×
Фильтрация по соответствующим строкам Загрузка всех 1M строк get_rows с фильтрами → только соответствующие строки ~99%+
Подсчёт по категориям Возврат всех строк, агрегация в модели aggregate(group_by=[...]) → 21 строка ~99.9%

Что означают и не означают эти цифры. Сокращение измеряется относительно вставки полного файла, что делает наивный агент и что отражается в счёте за токены. Оно не измеряется относительно компетентного аналитика-человека, который никогда не вставит CSV на 255 МБ. Кратность масштабируется с размером файла: для таблицы из 200 строк экономия будет гораздо меньше, и честная оценка там ближе к "нет значимой разницы".

Типичные задержки из того же запуска: describe_column для одного столбца, 22–33 мс и ~600 токенов.


Установка

Требования: Python 3.10+, любой MCP-совместимый клиент.

Установка не требуется. jdatamunch-mcp — это MCP-сервер на основе stdio без подкоманд CLI, поэтому ничего не нужно добавлять в PATH — просто укажите клиенту uvx, и он загрузит и запустит сервер по требованию.

Настройка для Claude Code:

claude mcp add jdatamunch -- uvx jdatamunch-mcp

Больше ничего. Ещё нет uv?

Читаете Excel или Parquet? Для них требуются дополнительные зависимости, которые uvx принимает через аргумент --from:

claude mcp add jdatamunch -- uvx --from "jdatamunch-mcp[excel,parquet]" jdatamunch-mcp

Предпочитаете постоянную установку?

Команда Когда использовать
uv tool install jdatamunch-mcp Хотите разрешить зависимости один раз вместо каждого запуска
pipx install jdatamunch-mcp Уже стандартизировали использование pipx
pip install jdatamunch-mcp Внутри виртуального окружения, которым управляете вы сами. ⚠ Не поддерживается на дистрибутивах с PEP 668 (Ubuntu 24.04+, Debian 12+) — используйте один из двух вышеуказанных вариантов.

Дополнительные пакеты указываются в стандартной скобочной форме: uv tool install "jdatamunch-mcp[excel,parquet]". Регистрация сервера работает так же; замените jdatamunch-mcp на uvx jdatamunch-mcp в строке claude mcp add выше.

Перезапустите Claude Code, затем введите /mcp — jdatamunch должен отобразиться в списке. Это шаг проверки; запуск сервера напрямую просто ожидает ввода из stdin.

Полная настройка для каждого клиента, включая Claude Desktop, Cursor и Windsurf: QUICKSTART.md.


Быстрый старт

Предполагается: jDataMunch установлен и зарегистрирован в вашем клиенте, а также имеется CSV-файл.

Всё происходит внутри вашего агента — отдельной команды индексации нет. Попросите его проиндексировать:

Используя jdatamunch, проиндексируй ./data/sales.csv

Он вызовет index_local, который вернёт имя набора данных, количество строк и столбцов, а также обнаруженные типы. Затем:

Используя jdatamunch, опиши набор данных sales и скажи, в каких столбцах есть пропущенные значения.

Агент вызовет describe_dataset, который вернёт имена столбцов, предполагаемые типы, кардинальность, процент пропусков и примеры значений — без загрузки ни одной строки в контекст. _meta.tokens_saved показывает, сколько токенов было сэкономлено по сравнению с загрузкой файла.

Следующий шаг: describe_column для получения распределения по одному столбцу или aggregate для группировки и подсчёта на стороне сервера.


Что можно делать

  • Ориентироваться в незнакомом наборе данных. describe_dataset, describe_column, sample_rows, get_distribution, get_correlations.
  • Запрашивать данные без загрузки строк. get_rows с фильтрами, aggregate с group_by, run_sql и plan_query для предварительной оценки стоимости перед выполнением.
  • Работать с несколькими наборами данных. suggest_joins, suggest_keys, join_datasets.
  • Находить проблемы с качеством данных. get_dataset_health, data_health_radar, get_data_hotspots (процент пропусков, аномалии кардинальности, разброс выбросов), get_schema_drift, find_unused_columns.
  • Проверять изменения схемы перед применением. check_column_drop_safe и get_schema_impact перед удалением или переименованием столбцов.
  • Искать данные семантически. search_data и find_similar_columns, когда вы знаете, что ищете, но не знаете, как это называется.
  • Индексировать данные из GitHub. index_repo загружает CSV, Excel, Parquet и JSONL прямо из репозитория, инкрементально по SHA коммита, включая приватные репозитории.

Всего 39 инструментов. Полная справка: USER-MANUAL.md.


Как это работает

Всё работает локально. Набор данных профилируется на вашем компьютере, и индекс хранится на вашем компьютере; никакие внешние сервисы не участвуют в индексации или запросах.

data.csv ──► profiler ──► column stats + local index
                                    │
              MCP client ◄── query ─┘   (filters, aggregates, joins
                                         execute server-side)

Агрегации и фильтры выполняются над сохранёнными данными, а не симулируются в модели, поэтому количество строк почти не влияет на стоимость токенов ответа. Статистика на основе выборки сообщает о границах погрешности (примерно 2% стандартной ошибки), а не представляет оценку как точную.


Поддерживаемые форматы

Формат Расширения Установка дополнения
CSV / TSV .csv, .tsv встроено
JSON Lines .jsonl встроено
Excel .xlsx, .xls pip install "jdatamunch-mcp[excel]"
Parquet .parquet pip install "jdatamunch-mcp[parquet]"

Безопасность и конфиденциальность

Локальный приоритет. Ваши данные профилируются и индексируются на вашем компьютере и не загружаются.

Единственное сетевое поведение базового пакета по умолчанию — анонимный счётчик экономии: случайный идентификатор плюс агрегированные данные о количестве токенов. Нет данных, нет имён столбцов, нет путей к файлам, нет персональных данных. Полностью отключить:

JDATAMUNCH_SHARE_SAVINGS=0

index_repo обращается к GitHub только при вашем вызове, используя токен, который вы предоставили. Поставщики эмбеддингов вызываются только при их настройке. Нет планировщика и фоновой отчётности.

Подробности, включая зависимости каждого дополнительного пакета: SECURITY.md.


Ограничения

  • Экономия масштабируется с размером файла. Для небольшой таблицы разница незначительна; приведённые в бенчмарке цифры получены на файле размером 255 МБ.
  • Статистика на основе выборки является таковой. Данные о распределении и корреляции для очень больших файлов содержат указанную границу погрешности, а не являются точными.
  • Для Excel и Parquet требуются дополнительные пакеты, которые подтягивают дополнительные зависимости.

  • По умолчанию describe_column не будет помечен как offloadable. jDataMunch не подтверждает актуальность индекса, если не может её доказать, поэтому дешёвая проверка актуальности возвращает unknown, и аннотация закрывается по умолчанию. Это сделано намеренно — см. раздел об аннотации.
  • jDataMunch не анализирует код или текст. Символы кода относятся к jcodemunch-mcp, а разделы документации — к jdocmunch-mcp.

Аннотация для переносимой работы

JMUNCH_OFFLOADABLE=1 (для всего набора) или JDATAMUNCH_OFFLOADABLE=1 (только для этого сервера) заставляет describe_column включать рекомендательный блок _meta.offloadable, который отмечает, достаточно ли ответ прост и самодостаточен для передачи более дешёвой модели.

Это просто метка и ничего больше. jDataMunch никогда не вызывает другую модель, не перенаправляет запрос и не использует ваши API-ключи. По умолчанию отключено; вы решаете, что делать дальше.

Результат имеет три состояния с кодировкой причины: not_evaluated («мы не оценивали») — это не то же самое, что not_offloadable («эта работа не простая»). Аннотация закрывается по умолчанию — любая неопределённость, влияющая на ответ, дисквалифицирует, поскольку ложное offloadable отправит реальную работу модели, которая будет фантазировать на тему пробела. verify_with указывает вызов, который бы оценил ответ более дешёвой модели.

Одинаковый контракт полей для всех трёх серверов jMunch с фиксированным хешем контракта, который приводит к ошибке сборки при любом расхождении в одном из них.


Документация

Документ О чём рассказывает
QUICKSTART.md От нуля до индексирования за три шага
USER-MANUAL.md Полное руководство для аналитиков, операторов и не-разработчиков
SECURITY.md Обработка данных, сетевое поведение, отчётность об уязвимостях
benchmarks/METHODOLOGY.md Как запускается бенчмарк и что он измеряет
CONTRIBUTING.md Настройка разработки и требование CLA
CHANGELOG.md История релизов

Лицензирование и коммерческое использование

Выпущено под двойной лицензией jDataMunch-MCP (полные условия). Бесплатно для некоммерческого использования. Коммерческое использование требует платной лицензии, единовременной, продаваемой jMunch LLC.

Только jDataMunch: Builder, $39 (1 разработчик) · Studio, $149 (до 5) · Platform, $499 (внутреннее развёртывание на всю организацию)

Полный набор jMunch (код + документация + данные): Trio Builder, $99 · Trio Studio, $449 · Trio Platform, $2,499

Индивидуальным разработчикам и некоммерческим проектам лицензия не требуется. Организациям, развёртывающим jDataMunch для внутренних команд, — требуется.


Поддержка и статус проекта

Активно поддерживается. Вопросы и отчёты об ошибках: GitHub Issues. Вопросы по коммерческому лицензированию — через jcodemunch.com.

Часть набора jMunch наряду с jcodemunch-mcp (символы кода) и jdocmunch-mcp (разделы документации). Все три реализуют jMRI — открытую спецификацию интерфейса поиска — с одинаковым форматом ответов и учётом токенов.

Войдите, чтобы оставить комментарий