DataSearcher MCP
Enables executing SQL queries and performing data analysis directly on ClickHouse databases, including automatic SQL dialect translation.
Provides an embedded analytical engine for ML tasks (clustering, forecasting) and federated queries across multiple databases, with automatic SQL translation.
Enables executing SQL queries and performing data analysis directly on MySQL databases, including automatic SQL dialect translation.
Provides LLM-based classification (classify_rows) and semantic search (semantic_search) using locally hosted Ollama models.
Enables executing SQL queries and performing data analysis directly on PostgreSQL databases, including automatic SQL dialect translation.
Enables executing SQL queries and performing data analysis directly on SQLite databases.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@DataSearcher MCPshow top 5 regions by revenue"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
DataSearcher MCP
Подключи базу данных к Claude или Cursor — и спрашивай на русском: «какие товары продаются хуже всего», «найди аномалии в продажах», «прогноз на 3 месяца». 46 инструментов: SQL, статистика, ML, графики, дашборды + enterprise: read-only guard, PII masking, аудит-логи, Knowledge Base, dbt, DataHub, semantic search.
Что это такое?
DataSearcher MCP — это мост между вашей базой данных и ИИ-ассистентом (Claude Desktop, Cursor, VS Code).
Обычно, чтобы проанализировать данные из БД, нужно писать SQL-запросы вручную или открывать BI-систему. С этим MCP-сервером вы просто разговариваете с ИИ на обычном русском языке, а он сам:
пишет и выполняет SQL к вашей базе (read-only, с защитой от изменений)
строит графики и дашборды
находит аномалии, корреляции, инсайты
прогнозирует тренды (ML)
генерирует HTML-отчёты и XLSX-экспорты
маскирует PII (email, телефон, ИНН) в результатах
логирует все запросы для аудита
Пример диалога
Вы: Подключись к моей PostgreSQL и покажи топ-5 регионов по выручке
ИИ: [вызывает sql_query → SQL выполняется прямо в вашей PostgreSQL]
Вот топ-5 регионов по выручке:
| Регион | Выручка | Заказов |
|--------------|-------------|---------|
| Москва | 1 358 468 ₽ | 55 |
| Новосибирск | 1 036 564 ₽ | 45 |
...
Вы: Найди аномалии в суммах заказов
ИИ: [вызывает detect_anomalies → z-score + IQR]
Обнаружено 3 выброса в колонке amount:
- Заказ #1047: 49 870 ₽ (z-score = 4.2)
- Заказ #2891: 48 200 ₽ (z-score = 3.8)
...
Вы: Построй дашборд и сохрани как HTML
ИИ: [вызывает create_public_dashboard → генерирует HTML с графиками и фильтрами]
Дашборд создан! Откройте файл:
/tmp/datasearcher_mcp_dashboards/abc123/dashboard.htmlПочему это круто?
Без DataSearcher MCP | С DataSearcher MCP |
Пишешь SQL вручную | ИИ сам пишет и выполняет SQL |
Открываешь BI-систему для графиков | Графики и дашборды прямо в чате |
Excel для сводных таблиц |
|
Python + Jupyter для ML | Прогнозы и кластеризация через чат |
Каждая БД — свой диалект SQL | Пишешь на DuckDB SQL — сервер переводит |
Нет защиты от случайного DROP | Read-only guard блокирует DML/DDL |
PII в открытом виде | Авто-маскирование email/телефон/ИНН |
Нет аудита кто что запросил | Полный лог запросов и ошибок |
Related MCP server: GraphJin
Чем отличается от других MCP-серверов?
1. SQL выполняется в вашей базе, а не во встроенной
Когда вы спрашиваете «покажи продажи по регионам», SQL выполняется напрямую в вашей PostgreSQL/MySQL/ClickHouse — с индексами, оптимизатором, кешем. DuckDB подключается только для ML-задач (кластеризация, прогнозы), выгружая только нужные колонки.
2. Пишешь на одном SQL — работает в любой БД
Написали DATE_TRUNC('month', date_col) (DuckDB-синтаксис)? Сервер автоматически переведёт под диалект source DB через sqlglot.
3. Кросс-БД JOIN через federated-режим
Прицепите PostgreSQL и MySQL к DuckDB одновременно и сделайте JOIN между ними — без выгрузки данных.
4. Enterprise-безопасность
Read-only guard — блокирует INSERT/UPDATE/DELETE/DROP/TRUNCATE
PII auto-detection + masking — автоматически находит email, телефон, ИНН, СНИЛС, паспорт и маскирует в результатах
Schema ACL — фильтрация raw/staging таблиц,
allowed_schemas/blocked_tablesRate limiting — ограничение SQL/ML запросов в минуту
HTTP Bearer auth — для удалённого доступа
Query timeout — защита от тяжёлых запросов
5. Knowledge Base + метаданные
SQLite-хранилище бизнес-описаний: что значит каждая таблица и колонка, кто владелец данных, какие метрики как считаются. Наполняется из:
Схемы БД (автоматически)
dbt manifest (описания, тесты, теги)
DataHub (lineage, глоссарий)
Ручной правки через
update_metadata
6. Семантический поиск + Example Store
semantic_search— поиск по текстовым данным через LLM embeddingsExample Store — база пар «NL-запрос → SQL» для few-shot обучения
search_knowledge— поиск по метаданным и примерам
7. REST API как источник данных
Подключайте не только БД, но и REST API — данные выгружаются в DuckDB и доступны всем 46 инструментам анализа.
8. BI link builder
Генерация URL для Superset, Grafana, Yandex Datalens, Tableau, Power BI с предзаполненными фильтрами.
Быстрый старт
Шаг 1. Установка
git clone https://github.com/MarkIvor/mcp-datasearcher.git
cd mcp-datasearcher
pip install -e ".[all]"Шаг 2. Настройка подключений
cp connections.example.yaml connections.yamlconnections:
- name: my_db
db_type: postgresql # postgresql | mysql | clickhouse | sqlite | api
host: localhost
port: 5432
database: mydb
username: ${DB_USER}
password: ${DB_PASSWORD}
mode: auto # auto | remote | dump | federated
# ── Семантический слой ──
allowed_schemas: [mart, analytics]
blocked_tables: [raw_*, stg_*, tmp_*]
# REST API тоже можно:
- name: crm_api
db_type: api
base_url: https://api.company.com/v1
auth_header: "Authorization: Bearer ${CRM_TOKEN}"
endpoints:
- path: /customers
table_name: customers
mode: dump
# dbt (опционально):
# dbt:
# manifest_path: ./target/manifest.json
# DataHub (опционально):
# datahub:
# server_url: http://datahub.company.com:8080
# token: ${DATAHUB_TOKEN}Шаг 3. Подключение к Claude Desktop
{
"mcpServers": {
"datasearcher": {
"command": "datasearcher-mcp",
"args": ["--config", "/path/to/connections.yaml"]
}
}
}Cursor (.cursor/mcp.json):
{"mcpServers": {"datasearcher": {"command": "datasearcher-mcp", "args": ["--config", "/path/to/connections.yaml"]}}}Docker:
cp connections.example.yaml connections.yaml
docker compose up -d # → http://localhost:8000/mcpHTTP:
datasearcher-mcp --transport http --host 0.0.0.0 --port 8000 --auth-token secret12346 инструментов
SQL и подключения
Инструмент | Что делает |
| SQL-запрос (read-only, markdown/json/csv, авто-трансляция диалектов) |
| План выполнения SQL (EXPLAIN) |
| Структура таблицы (remote или DuckDB) |
| Подключить новую БД в рантайме |
| Обновить схему после изменений в БД |
| Проверить доступность подключения |
| Загрузить CSV/Excel/Parquet |
Аналитика данных
Инструмент | Что делает |
| Умное саммари таблицы |
| Статистика по колонкам |
| Аудит качества (пропуски, дубликаты) |
| Топ-5 инсайтов автоматически |
| Выборка строк |
| Дубликаты (точные и fuzzy) |
| Выбросы (z-score, IQR) |
| Паттерны в тексте (email, ИНН, телефон) |
| SQL с форматами markdown/json/csv |
Статистика и связи
Инструмент | Что делает |
| Корреляции (Пирсон/Спирмен) |
| Форма распределения |
| Кросс-табуляция + Хи-квадрат |
| Сводная таблица (Excel PIVOT) |
| t-тест, Mann-Whitney, KS, Хи-квадрат |
| Сегментация, RFM-анализ |
| Сравнение двух таблиц |
| Тренды, сезонность, скользящее среднее |
ML и прогнозы
Инструмент | Что делает |
| Прогноз тренда (регрессия) |
| Кластеризация K-Means/DBSCAN |
| Важность признаков (Random Forest) |
| Классификация строк через LLM |
| Семантический поиск через embeddings |
| Генерация SQL из описания на русском |
Визуализация и отчёты
Инструмент | Что делает |
| График → PNG + JSON |
| Дашборд 4-6 графиков |
| Standalone HTML с фильтрами |
| Нарратив с графиками |
| Экспорт в CSV |
| Экспорт в XLSX с форматированием |
| URL для Superset/Grafana/Datalens |
Управление данными
Инструмент | Что делает |
| Нормализация, one-hot, извлечение дат |
| JOIN (с авто-определением ключей по FK) |
| Обновить метаописание в Knowledge Base |
| Список расчётных метрик с формулами |
| Скан PII в таблице |
| Логи запросов/ошибок/аудита |
| Добавить эталон «NL→SQL» в Example Store |
| Поиск по базе знаний и примерам |
| Импорт метаданных из dbt manifest |
| Синхронизация с DataHub |
Ресурсы (5)
schema://tables— таблицы с типами, бизнес-описаниями, PII-меткамиschema://diagram— Mermaid ER-диаграммаknowledge://tables— метаданные, владельцы, метрикиconnection://list— подключения и режимыreasoning://last— Chain of Thought (история запросов)
Промпты (2)
analyze_table— системный промпт аналитикаweekly_report— шаблон еженедельного отчёта
Enterprise-фичи
Read-only guard
Все SQL-запросы проверяются: INSERT/UPDATE/DELETE/DROP/TRUNCATE/ALTER — заблокированы. Разрешены только SELECT/WITH/EXPLAIN/SHOW/DESCRIBE.
# Настройка
DATASEARCHER_MCP_READ_ONLY=true # false = отключить guardPII auto-detection + masking
При загрузке схемы сервер сканирует текстовые колонки и автоматически определяет: email, телефон (РФ), ИНН, СНИЛС, паспорт, банковскую карту, IP-адрес.
В результатах SQL-запросов PII маскируется: a***@company.com, +7(912)***-**-89, 7710******.
DATASEARCHER_MCP_PII_MASKING=trueKnowledge Base (SQLite)
Бизнес-метаданные в SQLite: описания таблиц, колонок, владельцы, теги, расчётные метрики. Наполняется из 4 источников (fallback-цепочка):
Схема БД — автоматически (DESCRIBE, information_schema, FK)
dbt manifest —
load_dbtинструмент (описания, тесты, теги, слои)DataHub —
sync_datahubинструмент (lineage, глоссарий, владельцы)Ручная правка —
update_metadataинструмент
Логирование и аудит
Каждый SQL-запрос, ML-вызов, ошибка — логируется в SQLite (append-only):
query_log: timestamp, tool, SQL, таблица, длительность, статус
error_log: тип ошибки, сообщение, SQL, stack trace
audit_log: действия (attach, refresh, load_file, update_metadata)
DATASEARCHER_MCP_LOG_ENABLED=trueRate limiting
Per-tool throttling: SQL — 60/мин, ML — 10/мин (настраивается).
Schema ACL
Фильтрация таблиц по бизнес-слою:
allowed_schemas: [mart, analytics] # только эти схемы
blocked_tables: [raw_*, stg_*, tmp_*] # glob-паттерны исключенийREST API connector
Подключение данных из REST API как обычных таблиц:
- name: crm_api
db_type: api
base_url: https://api.company.com/v1
auth_header: "Authorization: Bearer ${CRM_TOKEN}"
endpoints:
- path: /customers
table_name: customers
pagination: offset # offset | cursor | none
mode: dump # выгрузить в DuckDBРежимы работы подключений
Режим | Как работает | Когда использовать |
| SQL → source DB, ML → DuckDB (лениво) | Универсальный |
| Всё SQL в source DB, без DuckDB | БД быстрая, ML не нужен |
| Таблицы выгружаются в DuckDB при старте | Файлы, маленькие БД |
| Source DB прицепляется к DuckDB | Кросс-БД JOIN |
Поддерживаемые БД
БД | db_type | Remote SQL | Federated |
PostgreSQL |
| ✅ | ✅ |
MySQL / MariaDB |
| ✅ | ✅ |
ClickHouse |
| ✅ | — |
SQLite |
| ✅ | ✅ |
REST API |
| — | — |
CSV | файл | — | — |
Excel (.xlsx) | файл | — | — |
Parquet | файл | — | — |
LLM для классификации и поиска
| Как работает | Когда использовать |
| LLM-клиент ( | Ollama, vLLM, OpenAI |
| Модель хоста через MCP sampling | Claude Desktop |
| Инструкция для хоста | Без LLM |
Работает на бюджетных LLM — достаточно 7B-14B.
Переменные окружения
Префикс DATASEARCHER_MCP_:
Переменная | По умолчанию | Описание |
|
| Файл подключений |
|
| Read-only guard (блок DML/DDL) |
|
| Авто-маскирование PII |
|
| Логирование запросов/ошибок |
|
| Rate limiting |
|
| SQL-запросов в минуту |
|
| ML-запросов в минуту |
|
| Таймаут SQL (сек) |
|
| Трансляция SQL между диалектами |
| `` | Bearer token для HTTP auth |
|
| DuckDB при старте |
|
| Режим по умолчанию |
|
| Example Store (few-shot) |
| — | URL LLM API (OpenAI-compatible) |
| — | Модель LLM |
Архитектура
datasearcher-mcp/
src/datasearcher_mcp/
__main__.py # CLI: --transport, --config, --auth-token
config.py # 30+ настроек (pydantic-settings)
engine.py # движок: remote/dump/auto/federated, ACL, KB, PII
server.py # FastMCP: 46 tools + 5 resources + 2 prompts
session.py # DuckDB-сессия (ленивая)
sql_guard.py # read-only enforcement (блок DML/DDL)
error_handler.py # человекочитаемые SQL-ошибки
logging_db.py # SQLite append-only логи (query/error/audit)
pii_detector.py # авто-детекция + маскирование PII
rate_limiter.py # per-tool throttling
knowledge_base.py # SQLite KB (описания, владельцы, метрики)
dbt_loader.py # парсинг dbt manifest.json
datahub_client.py # DataHub GraphQL клиент
example_store.py # NL→SQL пары + semantic search
bi_linker.py # URL builder для BI-инструментов
llm_client.py # LLM-клиент (OpenAI-compatible)
embeddings.py # semantic search через embeddings
connectors/
base.py, sqlalchemy_base.py
postgres.py, mysql.py, clickhouse.py, sqlite_conn.py
api.py # REST API коннектор
tools/ # 30 аналитических инструментов
render/ # matplotlib PNG + парсинг маркеров
prompts/ # системный промпт аналитикаКлючевые решения
Решение | Почему так |
DuckDB выключен по умолчанию | Source DB умнее (индексы, оптимизатор) |
sqlglot для трансляции SQL | Один SQL — работает в любой БД |
Federated через DuckDB extensions | Кросс-БД JOIN без ETL |
Read-only guard | Защита production-данных от случайных изменений |
PII auto-detection | Compliance без ручной разметки |
SQLite для KB и логов | Zero-dependency, embedded, не требует сервера |
Example Store | Few-shot обучение из прошлых запросов |
Технологии
Слой | Технология |
MCP | mcp[cli] 1.28 (FastMCP, stdio/SSE/HTTP) |
SQL | Source DB (push-down) или DuckDB (lazy/federated) |
Трансляция SQL | sqlglot |
ML | scikit-learn, scipy, numpy |
Графики | matplotlib (PNG) |
KB / логи | SQLite (embedded) |
Embeddings | OpenAI-compatible /v1/embeddings |
Драйверы БД | psycopg2, pymysql, clickhouse-connect, aiosqlite |
Файлы | CSV/Parquet (DuckDB), Excel (openpyxl) |
Дашборды | HTML + DuckDB-WASM + Chart.js |
Auth | Bearer token (Starlette) |
Лицензия
MIT
This server cannot be installed
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
- Alicense-qualityCmaintenanceEnables natural language querying of databases with multi-turn conversations, auto-generated charts, and proactive monitoring via scheduled queries and alerts.Last updated1MIT
- Alicense-qualityBmaintenanceEnables AI assistants to query databases using natural language, with automatic schema discovery and SQL compilation.Last updated1,1593,130Apache 2.0
- Alicense-qualityCmaintenanceEnables AI agents to securely interact with multiple databases (MySQL, PostgreSQL) via natural language queries, with cross-database querying and enterprise-grade security.Last updated19MIT

Presso MCP Serverofficial
Alicense-qualityDmaintenanceConnects e-commerce and marketing data sources like Shopify, GA4, Google Ads, and Meta Ads to AI assistants, enabling natural language queries about store performance, ad campaigns, and customer behavior.Last updated322MIT
Related MCP Connectors
The grounded data layer for any LLM: governed SQL, metrics, lineage and catalog over your data.
Connect your team's living knowledge base — docs, data, issues, CRM — to Claude and ChatGPT.
Generate realistic, FK-consistent synthetic test data for your databases from your AI assistant.
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/MarkIvor/mcp-datasearcher'
If you have feedback or need assistance with the MCP directory API, please join our Discord server