openanalyst-mcp-server
Реальный сеанс DeepSeek Harness — агент прикрепил CSV, составил профиль и построил эти графики как узлы диалога (снимок живого интерфейса в headless-Chrome; см. запись проверки):
Статус: M1 + M2 + M3 завершены. Плагин dsh проверен вживую внутри
dsh web 0.1.0-rc.8— полная цепочка attach → profile → query → chart выполнялась в реальном сеансе, и оба графика отобразились как узлы диалога (запись проверки). MCP-сервер проходит протокольные тесты плюс stdio-smoke. См. Известные ограничения.
Что это делает
data_attach → register a CSV / Parquet / JSON / XLSX file as a queryable table
data_attach_db → attach PostgreSQL / MySQL / SQLite read-only and list its tables
data_profile → types, missing values, exact distinct counts, outliers, quality issues, chart ideas
data_query → one read-only SQL statement, results as lossless JSON
data_chart → bar / line / scatter / histogram / area / heatmap / boxplot — with color
series, stacked/grouped layout, facet small multiples; line & scatter pan/zoom
data_report → a self-contained HTML report (profile + charts as inline SVG); prints to PDF
data_sources → what is currently attachedОдни и те же пять инструментов поставляются на двух хостах из одного движка:
Хост | Пакет | Доставка графиков |
Плагин DeepSeek Harness |
| живой узел диалога (холст Vega) |
MCP-сервер (Claude Code / Codex / Cursor / любой MCP-клиент) |
| SVG-файл + полная спецификация Vega-Lite в |
Каждый инструмент также доступен из Code Mode как await tools.data_*(args), поэтому агент может выстроить весь анализ внутри одной программы, не тратя на каждый шаг отдельный круговой запрос.
Workbench — панель в шапке сеанса со списком источников данных этого сеанса, галерея графиков с прокруткой по клику и сгенерированные отчёты:
Другие виды графиков в диалоге (та же тема, экспортированы из живого сеанса):
Related MCP server: chdb-mcp
Установка
DeepSeek Harness:
dsh plugin --profile web add openanalystClaude Code (или любой MCP-клиент, через stdio):
claude mcp add openanalyst -- npx -y openanalyst-mcp-serverАрхитектура
Три решения определяют устройство кодовой базы.
Движок ничего не знает о harness. @openanalyst/core принимает пути и SQL и возвращает JSON без потерь. Он не импортирует ни одного типа dsh, MCP или CLI. Именно это позволяет позже поставлять тот же анализ в Claude Code, Codex и Cursor через MCP-адаптер без второй реализации — это самый важный фактор того, доберётся ли плагин до аудитории за пределами одного хоста.
Статистику считает DuckDB. SUMMARIZE возвращает min/max/avg/std/квартили/approx_unique/null_percentage для каждой колонки за один проход и читает CSV, Parquet и JSON напрямую с выводом типов по всему файлу. Вручную написаны только выбросы IQR, обнаружение дублирующихся строк и решение о том, что стоит помечать.
Графики — это спецификации Vega-Lite, переносимые в событиях сеанса. Типы карточек инструментов harness — это закрытый набор — generic, terminal, diff, search, web — без элемента «график», поэтому результат инструмента может лишь свести график к тексту. Настоящий график должен приходить из узла диалога, который регистрирует клиентская часть.
Это ограничение, как выяснилось, определило и формат графиков. Узел диалога должен перестраивать своё представление как чистую функцию долговечных событий — без часов, без случайности, без живого состояния, — а движок предпочитает контрольные точки целых значений дельтам. Спецификация Vega-Lite со встроенными данными — это ровно то, что нужно: одно простое значение JSON, которое воспроизводится побайтово. Vega-Lite выбрана, потому что она удовлетворяет правилу воспроизводимости, а не потому, что это популярная библиотека графиков.
@openanalyst/core engine, profiling, DB connectors, chart specs (host-agnostic)
├── @openanalyst/report Vega-Lite -> SVG (pure JS) + self-contained HTML reports
├── openanalyst dsh host half: 7 tools + chart event
│ └── ./client dsh browser half: conversation node + Vega canvas
└── openanalyst-mcp-server stdio MCP server: same 7 tools, charts as SVG filesРазработка
pnpm install
pnpm -r run build
pnpm -r run test74 теста: 46 по ядру (SQL-политика, преобразование в JSON, профилирование с точным подсчётом уникальных значений, графики и живые тесты коннекторов PostgreSQL/MySQL, которые автоматически пропускаются без Docker-фикстур), 5 по сборщику отчётов, 14, прогоняющих реальные инструменты плагина dsh end-to-end против DuckDB (включая изоляцию по агентам), и 9 протокольных MCP-тестов на in-memory транспорте SDK (плюс скриптовый stdio-smoke). Проверка вживую на запущенном dsh web прописана в сценарии scripts/mock-llm-scripted.mjs + scripts/verify-live.patch.yml — см. docs/VERIFICATION.md.
Известные ограничения
Они реальны, и их стоит прочитать, прежде чем строить что-то на этой основе.
Пресеты PTC 模式 (Code Mode) отклоняют прямые вызовы инструментов — модель должна оборачивать их в программу
run_code. При пресете Standard инструменты вызываются напрямую. Поведение проверено, задокументировано в docs/VERIFICATION.md.Движки dsh на агента ограничены, а не отслеживаются по жизненному циклу. Каждый сеанс агента dsh получает собственный движок (без коллизий алиасов), но harness не уведомляет плагины об удалении агента, поэтому плагин удерживает не более 32 движков и вытесняет наименее недавно использованный — такой сеанс прозрачно переподключается при следующем вызове.
Клиентский бандл — ~860 кБ. Vega встроена, потому что harness отдаёт ровно один файл на плагин и не имеет маршрута для соседних чанков, поэтому сеанс без графиков всё равно за неё платит.
data_attachпринимает любой путь, который доступен на чтение процессу хоста. Ограждения рабочей области (workspace fencing) пока нет; наследуется всё, что разрешает песочница harness.XLSX зависит от
read_xlsxу DuckDB, для которого при первом использовании может потребоваться загрузка расширения. CSV, Parquet и JSON покрыты тестами; XLSX — нет.
Заметки о npm-пакетах dsh
Две вещи здесь стоили времени, и их стоит зафиксировать для всех, кто собирает harness-плагин:
latestуказывает на сломанную ветку.npm view @deepseek-ai/dsh-tools versionсообщает0.0.1-rc.1, но текущая ветка —0.1.0-rc.8. Некоторые пакеты0.0.1-rc.1вообще не устанавливаются —@deepseek-ai/dsh-client-runtime@0.0.1-rc.1зависит от@deepseek-ai/dsh-compact, а@deepseek-ai/dsh-session@0.0.1-rc.1— от@deepseek-ai/dsh-type-meta; ни один из них не опубликован. Пиньте0.1.0-rc.8.Политика pnpm
minimumReleaseAgeблокирует rc-ветку, пока она свежая. В этом репозитории она отключена вpnpm-workspace.yaml, с пометкой вернуть её, когда у dsh появится стабильный релиз.
Дорожная карта
M1 | Ядро + плагин dsh, графики в диалоге — готово, проверено вживую |
M2 | MCP-сервер: та же возможность в Claude Code / Codex / Cursor — готово ← вы здесь |
M3 | Экспорт HTML-отчётов (печать в PDF), PostgreSQL / MySQL / SQLite, изоляция по агентам — готово |
M4 | Панель Workbench: источники данных, галерея графиков с прокруткой по клику, архив отчётов — готово, проверено вживую |
Лицензия
MIT
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
- AlicenseAqualityCmaintenanceAn open-source MCP server that connects to various data sources (SQL databases, CSV, Parquet files), allowing AI models to execute SQL queries and generate data visualizations for analytics and business intelligence.1275MIT
- AlicenseAqualityBmaintenanceAn MCP server for chDB, the in-process SQL OLAP engine powered by ClickHouse. Lets agents query Parquet, CSV, JSON, and pandas DataFrames with one tool — no separate server, no Docker.7Apache 2.0
- AlicenseBqualityAmaintenanceA research-informed MCP server that enables natural language question answering over local dataframes (CSV, Parquet, or Pandas) with safe, read-only execution and typed analysis plans.3MIT
- FlicenseNot gradedqualityCmaintenanceAn MCP server that answers natural-language questions over CSV, Excel, and SQL data by providing deterministic tools for loading, profiling, querying, cleaning, statistical analysis, visualization, and reporting. It enables LLMs to plan and interpret while all computation is done exactly through MCP tools.
Related MCP Connectors
Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.
GibsonAI MCP server: manage your databases with natural language
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
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/Chenmo0414/openanalyst'
If you have feedback or need assistance with the MCP directory API, please join our Discord server