statlab-mcp
statlab-mcp — MCP-сервер для статистического анализа
Независимый проект, не связан с официальными плагинами ни одного производителя (историческое примечание в README: отношения к DeepSeek Harness не имеет). Даёт AI-агентам (Claude Code / Cursor / DeepSeek Harness / Codex и др.) настоящие статистические возможности: LLM «считает статистику в уме» и выдумывает числа; в этом проекте все статистические результаты получены из реальных вычислений: (numpy / scipy / statsmodels / scikit-learn / pmdarima), а AI отвечает только за вызов инструментов и интерпретацию. В 25 инструментах первого слоя любое участие LLM в вычислениях запрещено.
Зачем это нужно
После установки вы говорите AI «проанализируй эти данные о продажах», и AI больше не делает голословных утверждений, а вызывает 25 настоящих статистических инструментов: вычисляет описательную статистику, проверяет корреляции, проводит проверку гипотез, строит регрессии, кластеризует, прогнозирует временные ряды, рисует графики с китайскими подписями — каждое число из проверенных статистических библиотек, воспроизводимо и подотчётно. В поле summary — вывод одной фразой на китайском, в result — полные структурированные данные, например:
{"status": "ok", "result": {"p_value": 0.0241, "mean_diff": 5.5, "effect_size": 0.65},
"summary": "Welch t 检验:均值差 5.5(95% CI [0.74, 10.26]),p=0.0241 <0.05 拒绝 H0……相关≠因果"}Related MCP server: shewhart-mcp
Для кого подходит
Кому | Как использовать | Что даёт |
Тем, кто с помощью AI пишет кода и анализирует (аналитики данных, продакт-менеджеры) | Пусть Claude Code / Cursor и др. вызывают по мере необходимости | Выводы опираются на реальные вычисления, не нужно бояться, что AI выдумывает цифры |
Разработчикам AI-агентов | Подключайте его как статистический бэкенд в своего агента/workflow | 25 детерминированных инструментов + единый протокол, легко интегрировать и тестировать |
Тем, кто знает статистику, но не хочет писать код вручную | Задаёт вопросы на естественном языке, AI вызывает инструменты за них | Автоматический выбор критериев/регрессий/временных рядов с пошаговым объяснением |
Тем, кому нужно отчётность с возможностью отследить цифры | Совместно со схемой auto_analysis (дерево решений + шаблоны + промпты) | Каждая цифра в отчёте подписывается инструментом-источником, защита от галлюцинаций |
Тем, кто хочет быстро построить графики по данным | Группа инструментов типа plot_* | Графики с китайскими подписями и статистическими метками прямо на графике |
Какие задачи решает
Ваш вопрос | Возможность |
«Что за данные и не „грязные“ ли они» | describe / data_type_check / missing_check: осмотр, паспорта данных, табель пропусков |
«Есть ли связь между двумя колонками, реальная или случайная?» | correlation_matrix (с поправкой на множественные сравнения fdr-bh) + тепловая карта |
«Есть ли разница между группой A и B» | normality_test → hypothesis_test (t-критерий Уэлча) → effect_swell — тройка шагов |
«Насколько реальна разница в продажах между тремя магазинами» | anova_auto: автоматические Levene → Welch → Tukey/Games-Howell post-hoc |
«Что влияет на доход? Можно ли прогнозировать?» | linear_recid (R² / VIF / диагностика остатков) + feature_importance |
«Купит ли новый клиент (да / нет)» | regiotic regression: OR + AUC + confusion matrix + warning of separability |
«На сколько групп можно разделить клиентов?» | cluster_analysis (центроиды возвращат цельные единицы + проверка силуэтного k±1) |
«Какой объём продаж в следующем месяце?» | trend_analysisure → ARIMA_sales (SARIMA с автоподбором порядка) |
«Какое число дат в этой серии выглядит аномально?» | anomaly_detector (STL разложение IQR / скользящий z-скрипт), только докладывает, данные не удаляет |
«Не хочу смотреть таблицы, хочу графики и отчёт» | пять plot_* инструментов + шаблон отчёта auto_analysis |
Возможности и сильные стороны
Определённость прежде всего: все случайные процессы зафиксированы seed (42); при повторном запуске одного и того же файла результаты порегистрично одинаковые (это основа для отслеживания, в тестах есть специальные проверки).
Конструкция против галлюцинаций: 25 инструментов первого уровня — ноль LLM; текст выводов генерируется шаблонами кода из чисел; p<0.001 везде отображается «<0.001»; кажный вывод всегда сопровождается ограничениями (корреляция ≠ причинность, что уже correction applied, sample size).
Методики зафиксированы можно пересчитать: q1/q3 = linear interpolation (совпадает с Excel QUARTILE.INC), skewness/в Europe (kurtosis принимается по Формуле scipy Fisher, std=1 — Excel STDEV.S) — в документации, тесты независимо сверяются с альтернативными формулами и стандартными библиотеками (223 тест, список тестов см. в docs/).
Полный путь на китайском: китайские названия колонок, автоподборка кодировки GBK, графики с китайскими шрифтами (при отсутствии шрифта — дефолт на английский с пометкой), сообщения об ошибках на китайском с предложениями по решения.
Жёсткая безопасность и защита: только локальные файлы; отказ путей UNC/NUL; никаких сетевых загрузок; тройная защита >50 МБ / 2 млн строк / 500 МБ памяти; защита от zip-бомб и дыр по датам в xlsx; аварийный выход обрезан по лимиту (чтобы злоумышленных входных данных не «подвесили» процесс).
Единый опыт вызова: все инструменты однотипные (проверка параметров → ошибка на русском либо result+summary), справиться и агент, и человек; описание MCP-инструментов = полный docstring (таблица parameters/структура возврата/примеры) — у агента список инструментов уже является инструкцией по применению.
Инженерная завершённость: 12 проектных документов (по каждому инструменту параметры/границы/JSON Schema/методы проверки) + конфигурации подключения клиентов + покрытие 82–96 % + полный прогон ruff + smoke-тест протокола stdio.
Быстрый старт
# 1. 安装(Python 3.13+,仅 pip)
git clone https://github.com/good-boy4069/statlab-mcp.git
cd statlab-mcp
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt --timeout 60
# 2. 验证能跑(应输出 ALL-STDIO-OK)
$env:PYTHONUTF8="1"
.\.venv\Scripts\python.exe tests\smoke_stdio.pyПодключение Claude Code (в корне проекта .mcp.json):
{
"mcpServers": {
"statlab-mcp": {
"command": "C:\\path\\to\\statlab-mcp\\.venv\\Scripts\\python.exe",
"args": ["-m", "statlab_mcp.server"],
"cwd": "C:\\path\\to\\statlab-mcp",
"env": {"PYTHONUTF8": "1"}
}
}
}Обязательны три момента:
-m statlab_mcp.server(ты не путьserver.py),cwdдолжен указывать на корень проекта,PYTHONUTF8=1. Для остальных клиентов (Cursor / VSCode / Codex / Shame / Harmes) см.docs/clients.md.
Первый вызов (можно полностью из командной строки, без клиента):
.\.venv\Scripts\python.exe -c "import sys; sys.path.insert(0,'.'); from statlab_mcp.tools.data_exploration_describe_statistics import describe_statistics; import json; print(json.dumps(describe_statistics('samples/clean.csv'), ensure_ascii=False, indent=1))"Три железных правила для данных: ① принимаем только csv / xlsx / tsv / json, можно любой абсолютный путь без каких-либо проблем (автоматом обрабатывается китайский / GBK / пустые значения / невалидные даты); ② реальные данные храни вне каталога проекта; ③ при каждом анализе сначала смотри китайскую «человеческую» формулировку в summary, а потом — структурированные цифры в result.
Все 25 инструментов
Группа | Инструменты |
Обзор | describe_statistics, correlation_matrix, missing_report, outlier_detected, data_type_check |
Статистический вывод | hypothesis_test, anova_test, chi_square_test, normality_test, confidence_interval, effect_size |
Моделирование | linear_regression, logistic_regression, cluster_analysis, pca_analysis, feature_importance |
Временные ряды | time_series_forecast, 季节_decompose? Keep |
Визуализация | plot_scatter, plot_histogram, plot_heatmap, plot_forecast, plot_box |
Оркестровка | auto_analysis (поставка: документ по деревьеру + шаблоны отчётов + промпт для агента; это не MCP-инструмент) |
Wait seasonal decompose: original "seasonal_decompose" transparent. Keep.
Основные ценности и единый протокол
За результаты — полный разбор: результаты детерминированы, воспроизводимы, тестируемы, один и тот же вход и повторный запуск дают один результат (глобальный java seed=42).
Единая структура: в случае успеха
{status:"ok", result:{...}, summary:"一句话中文结论"}; при ошибке{status:"error", message:"中文原因有效提示"}.Изображения как вложение: инструменты, возвращающие графику, добавляют в верхний уровень JSON
__image__(абсолютный путь к файлу; base64 запрещено).
Подготовка окружения (Windows)
Требуется Python 3.13 и старше, отдельный virtualenv (только pip; uv / poetry / conda запрещены):
python -m venv .venv .\.venv\Scripts\Activate.ps1 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt --timeout 60requirements.txt— единственный авторитетный источник зависимостей (pyproject.toml содержит только метаданные).Перед запуском обязательно установить UTF-8 (иначе Python отправит Chinese JSON через uCodepage GBK и MCP-подключение упадёт):
$env:PYTHONUTF8="1"В верхней точки файла-входа также подключён защитный
sys.stdout.reconfigure(encoding="utf-8").Все данные читаются через обёртку
read_table(): пробуетсяutf-8-sig→ если csv/tsv read не получился, автоматически switching к gbk → и тогда русское сообщение типа «не удалось распознать кодировку файла, сохраните как UTF-8»; значения форматов белого списка: csv, xlsx, tsv, json; из xlsx читается только первый лист.
Как агент видит графики
DeepSeek Harness — использует инструмент
read_image, чтобы прочитать абсолютный путь из__image__.Claude Code — использует инструмент
Readпо этому же пути.Все изображения лежат в
reports/plots/YYYYmmdd/(архив по датам, чтобы не накапливались), имя файла —工具名_<主列名或all>_YYYYmmdd_HHMMSS_fff.png; китайские шрифты (Microsoft YaHei/SimHei), если их нет — дефолт на английский и пометка + dpi=300; директорию можно чистить в любой момент (на вычисления не влияет).
Патент безопасности
Выполняется анализ только явно переданных локальных файловых файлов; отказ путей UNC/NNS и NIC paths; никакой передачи в сеть.
Заявление о доверии к пути: инструмент не проверяет источник файла (читает напрямую тому же пути), поэтому не принимайте пути из непроверенных источников; реальные данные кладите вне каталога проекта.
Защита больших данных: >50Mb — отказ; 5–50Mb сначала оцениваем количество строк и память; при превышении → отказ; zip-бомб и attack через большие даты тоже защищены.
Тестирование и сдача
& .\.venv\Scripts\python.exe -m pytest tests\ -qТестовые данные генерируются
tests/make_fixtures.pyseed way, создающим случай deterministically, and stored; ключевые числа проверяются про реальными независимыми расчётами (statistics.mean / таблицы ожидаемых значений), без кругового обоснования.Процедура сдачи (с 2026-08-26 in mode «drop»): round all-greens + verify on two datasets with stdout archived in record — request + PROGRESS registration; requester retains right to spot-check.
The base: thr tests, coverage instrumentation methods 82–96%, full pass by ruff, stdio-smoke protocol “ALL-STDIO-OK”.
Технические заметки (mcp 2.x)
Зафиксирована зависимость mcp 2.1.0: mcp.server.fastmcp.FastMCP вытеснён сервером mcp.server.mcpserver.MCPServer (совместим с add\_tool/tool decoration, list_tools/call_tool/l.connect/run_stdio_async является async).
Навигация по документации
docs/clients.md— конфигурация подключения для разных клиентов (Claude Code / Cursor / VSCode / Codex / Hermes / DSH)docs/SPEC.md— протокол и порядок математики (структура ответа / числовой протокол / протокол изображений / поведение)docs/design/— дизайн интерфейса каждого инструмента (таблицы параметров, таблица границ поведения, JSON Schema / методы проверки; руководство для агентов второго типа разработчиков)docs/example_report.md— пример отчёта по варианту auto_analysis(“защита от выдумывания” как образц) .
Структура каталога
statlab_mcp/ # server.py(只注册工具+to_jsonable)+ tools/<组>_<工具>.py
docs/ # SPEC.md(协议与统计口径)、design/(各工具接口设计文档)、clients.md(接入配置)
samples/ # 入库样例数据 + 生成脚本
tests/ # pytest + fixtures 生成脚本
data/ # 使用者亲手造的测试数据(gitignore,不入库)
reports/plots/ # 图片输出(gitignore,按日期归档可随时清理)Lisense
MIT (Copyright © 2026 周翔宇)
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides powerful data analysis capabilities for AI systems with functions for data import/export, SQL querying, statistical analysis, and data processing.11
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to perform statistical process control calculations using validated, deterministic tools such as control charts, capability analysis, and tolerance intervals.3MIT
- FlicenseAqualityDmaintenanceProvides comprehensive data analysis utilities including statistical functions, probability distributions, and data processing tools through natural language.81
- AlicenseNot gradedqualityBmaintenanceA statistical analysis MCP server offering 30 tools for descriptive statistics, hypothesis tests, regression, and time series, all returning Markdown reports with automatic interpretations to enable AI agents to perform comprehensive data analysis.MIT
Related MCP Connectors
The statistical analyst in your AI chat — validated, citable, re-runnable analysis of your data.
Precision math engine for AI agents. 203 exact methods. Zero hallucination.
Deterministic reasoning stack for AI agents: simulate, decide & compute, plus cross-domain tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/good-boy4069/statlab-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server