by jgravelle (community) Claude Desktop, Claude Code, OpenCode, Python 3.8+, Windows, macOS, Linux, CSV, Excel, Parquet, JSONL
Token-эффективный MCP-сервер для работы с табличными данными. Индексация CSV/Excel, запросы к строкам, агрегация — экономия 99%+ токенов по сравнению с чтением сырых файлов.
MCP-сервер для анализа и редактирования электронных таблиц. Компактный, token-эффективный набор инструментов для LLM-агентов.
MCP-сервер для доступа к актуальной документации библиотек прямо в контексте LLM. Вместо устаревших обучающих данных — …
Официальный MCP от команды Chrome DevTools: дает AI-агентам полный доступ к инструментам разработчика браузера. Автоматизация через …
Официальный MCP-сервер от Microsoft для управления браузером через Playwright. Использует accessibility tree вместо скриншотов — быстрее, …
# Требуется 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-сервер для кодовых агентов и аналитиков, который отвечает на вопросы о файлах CSV, Excel, Parquet и JSONL без вставки строк в контекстное окно.
Проиндексируйте набор данных один раз, а затем получайте профили столбцов, отфильтрованные строки, агрегации на стороне сервера и объединения между наборами данных — так файл с миллионом строк будет стоить тысячи токенов вместо миллионов.
Установка · Быстрый старт · Бенчмарки · Коммерческое лицензирование
Бесплатно для личного использования. Для коммерческого использования требуется платная лицензия — условия ниже.
Проблема. Стандартный способ, которым агент исследует электронную таблицу, — вставить её в промпт. 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, когда вы знаете, что ищете, но не знаете, как это называется.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.
describe_column не будет помечен как offloadable. jDataMunch не подтверждает актуальность индекса, если не может её доказать, поэтому дешёвая проверка актуальности возвращает unknown, и аннотация закрывается по умолчанию. Это сделано намеренно — см. раздел об аннотации.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 — открытую спецификацию интерфейса поиска — с одинаковым форматом ответов и учётом токенов.