openanalyst-mcp-server
Una sesión real de DeepSeek Harness: el agente adjuntó un CSV, lo perfiló y generó estos gráficos como nodos de conversación (captura con headless-Chrome de la interfaz en vivo; ver el registro de verificación):
Estado: M1 + M2 + M3 completados. El plugin de dsh está verificado en vivo dentro de
dsh web 0.1.0-rc.8— la cadena completa adjuntar → perfilar → consultar → generar gráfico se ejecutó en una sesión real y ambos gráficos se renderizaron como nodos de conversación (registro de verificación). El servidor MCP pasa pruebas de nivel de protocolo y una prueba de humo stdio. Consulta las limitaciones conocidas.
Qué hace
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 attachedLas mismas cinco herramientas llegan a dos plataformas desde un único motor:
Plataforma | Paquete | Entrega de gráficos |
plugin de DeepSeek Harness |
| nodo de conversación en vivo (lienzo Vega) |
servidor MCP (Claude Code / Codex / Cursor / cualquier cliente MCP) |
| archivo SVG + especificación completa de Vega-Lite en |
Cada herramienta también es accesible desde Code Mode como await tools.data_*(args), de modo que el agente puede encadenar todo el análisis dentro de un único programa en lugar de gastar un viaje de ida y vuelta por paso.
El workbench — un panel en la cabecera de la sesión que enumera las fuentes de datos de esta sesión, una galería de gráficos con clic para desplazarse e informes generados:
Más tipos de gráficos dentro de la conversación (mismo tema, exportados desde una sesión real):
Related MCP server: chdb-mcp
Instalación
DeepSeek Harness:
dsh plugin --profile web add openanalystClaude Code (o cualquier cliente MCP, vía stdio):
claude mcp add openanalyst -- npx -y openanalyst-mcp-serverArquitectura
El motor no sabe nada del harness. @openanalyst/core recibe rutas y SQL y devuelve JSON sin pérdidas. No importa ningún tipo de dsh, MCP ni CLI. Esa es la razón por la que el mismo análisis puede publicarse en Claude Code, Codex y Cursor a través de un adaptador MCP sin hacer una segunda implementación: el factor más determinante para que un plugin llegue a una audiencia más allá de un solo host.
DuckDB se encarga de la estadística. SUMMARIZE devuelve min/max/avg/std/quartiles/approx_unique/null_percentage para cada columna en una sola pasada, y lee CSV, Parquet y JSON directamente con inferencia de tipos de archivo completo. Solo los valores atípicos por IQR, la detección de filas duplicadas y la decisión de qué merece la pena alertar se escriben a mano.
Los gráficos son especificaciones Vega-Lite transportadas en los eventos de la sesión. Los tipos de tarjeta de herramienta del harness son un conjunto cerrado — generic, terminal, diff, search y web — sin un miembro de gráfico, por lo que un resultado de herramienta solo puede degradar un gráfico a texto. Un gráfico real tiene que venir de un nodo de conversación, que registra la mitad del cliente.
Esa restricción también eligió el formato de gráfico. Un nodo de conversación debe reconstruir su vista como función pura de eventos durables — sin reloj, sin aleatoriedad, sin estado en vivo — y el motor prefiere puntos de control de valor completo a los delta. Una especificación Vega-Lite con sus datos integrados en línea es exactamente eso: un valor JSON plano que se reproduce byte a byte. Vega-Lite se eligió porque cumple la regla de reproducción, no porque sea una biblioteca de gráficos popular.
@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 filesDesarrollo
pnpm install
pnpm -r run build
pnpm -r run test74 pruebas: 46 sobre el núcleo (política SQL, conversión JSON, perfiles con recuentos de distintos exactos, gráficos y pruebas de conectores PostgreSQL con facilidades que se omiten automáticamente si no existen los fixtures de Docker), 5 sobre el generador de informes, 14 que manejan las herramientas reales del plugin de dsh de extremo a extremo contra DuckDB (incluido el aislamiento por agente), y 9 pruebas de protocolo MCP sobre el transporte en memoria del SDK (más una prueba de humo stdio escrita con scripts). La verificación en vivo contra una dsh web en ejecución está en scripts/mock-llm-scripted.mjs + scripts/verify-live.patch.yml — ver docs/VERIFICATION.md.
Limitaciones conocidas
Son reales y ramente la pena leerlas antes de escribir sobre esta.
Los modos preestablecidos de PTC 模式 (Code Mode) rechazan las llamadas directas a herramientas — el modelo debe envolverlas en un programa
run_codeahí mismo. En el modo preestablecido Standard, las herramientas se llaman directamente. Comportamiento verificado, documentado en docs/VERIFICATION.md.Los motores dsh por agente son limitados, no se rastrea el ciclo de vida. Cada sesión de agente dsh obtiene su propio motor (sin choques de alias), pero el harness no notifica a los plugins cuando se descarta el agente, por lo que el plugin mantiene en ejecución 32 motores y expulsa el menos recientemente utilizado: esa sesión se vuelve a conectar de forma transparente en la siguiente llamada.
El bundle del cliente pesa aproximadamente 860 kB. Vega está incrustado porque el harness sirve una sola archivo por plugin y no tiene ruta para chunks hermanos, por lo que una sesión sin _gráficos aún lo paga.
data_attachacepta cualquier otro procesador que el proceso anfitrión pueda leer. No hay vallado de sobre el espacio de trabajo; hereda lo que permite la sandbox del harness.XLSX depende de
read_xlsxde DuckDB, que puede necesitar descargar una extensión en el primer uso. CSV, Parquet y JSON están cubiertos por pruebas; XLSX no.
Notas sobre los paquetes npm de dsh
Dos cosas costaron tiempo y convienene registrarlas para quien cree por las que cree un plugin para harness:
latestapunta a una línea rota.npm view @deepseek-ai/dsh-tools versionreporta0.0.1-rc.1, ocasión que la línea actual es0.1.0-rc.8. Varios paquetes de la línea0.0.1-rc.1no se pueden instalar en absoluto —@deepseek-ai/dsh-client-runtime@0.0.1-rc.1depende de@deepseek-ai/dsh-compacty@deepseek-ai/dsh-session@0.0.1-rc.1depende de@deepseek-ai/dsh-type-meta; ninguno de esos está publicado. Fija0.1.0-rc.8.La política de
minimumReleaseAgede pnpm bloquea la línea rc while it is new. Esta repo la anula enpnpm-workspace.yaml, con una nota para restaurarla cuando dsh tenga una versión estable.
Hoja de ruta
M1 | Core + plugin dsh, gráficos en la conversación — hecho, verificado en vivo |
M2 | Servidor MCP: la misma capacidad en Claude Code / Codex / Cursor — hecho ← estás aquí |
M3 | Exportación de informe HTML (imprime a PDF), PostgreSQL / MySQL / SQLite, aislamiento por agente — hecho |
M4 | Panel de trabajo: fuentes de datos, galería de gráficos con clic para desplazarse, archivo de informes — hecho, verificado en vivo |
Licencia
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