openanalyst-mcp-server
Eine echte DeepSeek-Harness-Sitzung — der Agent hat eine CSV angehängt, ein Profil erstellt und diese Diagramme als Gesprächsknoten gezeichnet (Headless-Chrome-Aufnahme der Live-UI; siehe den Verifizierungsnachweis):
Status: M1 + M2 + M3 abgeschlossen. Das dsh-Plugin ist live-verifiziert in
dsh web 0.1.0-rc.8— die vollständige Kette Anhängen → Profil → Abfrage → Diagramm lief in einer echten Sitzung, und beide Diagramme wurden als Gesprächsknoten gerendert (Verifizierungsnachweis). Der MCP-Server besteht Protokoll-Tests plus einen stdio-Smoke-Test. Siehe Bekannte Einschränkungen.
Was es tut
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 attachedDieselben fünf Tools laufen auf zwei Hosts über eine Engine:
Host | Paket | Diagramm-Auslieferung |
DeepSeek-Harness-Plugin |
| Live-Gesprächsknoten (Vega-Canvas) |
MCP-Server (Claude Code / Codex / Cursor / jeder MCP-Client) |
| SVG-Datei + vollständige Vega-Lite-Spezifikation in |
Jedes Tool ist außerdem im Code-Modus als await tools.data_*(args) erreichbar,
sodass der Agent die gesamte Analyse in einem einzigen Programm verketten kann, statt
pro Schritt einen Roundtrip zu verbrauchen.
Die Workbench — ein Panel in der Sitzungs-Kopfzeile, das die Datenquellen dieser Sitzung auflistet, eine Diagramm-Galerie mit Klick-zum-Scrollen sowie generierte Berichte:
Weitere Diagrammarten im Gespräch (gleiches Theme, aus einer Live-Sitzung exportiert):
Related MCP server: chdb-mcp
Installation
DeepSeek Harness:
dsh plugin --profile web add openanalystClaude Code (oder jeder MCP-Client, über stdio):
claude mcp add openanalyst -- npx -y openanalyst-mcp-serverArchitektur
Drei Entscheidungen prägen die Codebasis.
Die Engine weiß nichts über die Harness. @openanalyst/core nimmt Pfade
und SQL entgegen und liefert verlustfreies JSON zurück. Es importiert keinen dsh-, MCP- oder CLI-Typ.
Genau das ermöglicht es, dieselbe Analyse später über einen MCP-Adapter an Claude Code, Codex und Cursor
auszuliefern, ohne eine zweite Implementierung — der mit Abstand größte Faktor dafür,
ob ein Plugin ein Publikum über einen einzelnen Host hinaus erreicht.
DuckDB übernimmt die Statistik. SUMMARIZE liefert min/max/avg/std/Quantile/
approx_unique/null_percentage für jede Spalte in einem Durchgang und liest CSV,
Parquet und JSON direkt mit vollständiger Typinferenz über die gesamte Datei. Nur IQR-Ausreißer,
Duplikaterkennung und die Beurteilung, was eine Kennzeichnung wert ist, sind handgeschrieben.
Diagramme sind Vega-Lite-Spezifikationen, die auf Sitzungsereignissen transportiert werden. Die Tool-Kartenarten
der Harness sind eine geschlossene Menge — generic, terminal, diff, search, web — ohne
Diagramm-Mitglied, sodass ein Tool-Ergebnis ein Diagramm höchstens zu Text degradieren kann. Ein echtes
Diagramm muss von einem Gesprächsknoten kommen, den die Client-Hälfte registriert.
Diese Einschränkung hat auch das Diagrammformat bestimmt. Ein Gesprächsknoten muss seine Ansicht als reine Funktion dauerhafter Ereignisse neu aufbauen — keine Uhr, kein Zufall, kein Live-Zustand — und die Engine bevorzugt Ganzwert-Checkpoints gegenüber Deltas. Eine Vega-Lite-Spezifikation mit eingebetteten Daten ist genau das: ein einziger einfacher JSON-Wert, der bytegenau wiedergegeben wird. Vega-Lite wurde gewählt, weil es die Wiedergabe-Regel erfüllt, nicht weil es eine beliebte Diagrammbibliothek ist.
@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 filesEntwicklung
pnpm install
pnpm -r run build
pnpm -r run test74 Tests: 46 über den Kern (SQL-Richtlinie, JSON-Konvertierung, Profilerstellung mit exakten
Distinct-Zählungen, Diagramme und Live-PostgreSQL/MySQL-Connector-Tests, die
ohne die Docker-Fixtures automatisch übersprungen werden), 5 über den Berichts-Builder, 14, die
die echten dsh-Plugin-Tools Ende-zu-Ende gegen DuckDB treiben (einschließlich
Pro-Agent-Isolation), und 9 Protokoll-Tests auf MCP-Ebene über den In-Memory-Transport des SDKs
(plus ein skriptierter stdio-Smoke-Test). Die Live-Verifizierung gegen ein laufendes dsh web ist in
scripts/mock-llm-scripted.mjs + scripts/verify-live.patch.yml skriptiert — siehe
docs/VERIFICATION.md.
Bekannte Einschränkungen
Diese sind real und lesenswert, bevor man darauf aufbaut.
PTC-Modus (Code-Modus) lehnt direkte Tool-Aufrufe ab — das Modell muss sie dort in ein
run_code-Programm einbetten. Unter dem Standard-Preset werden die Tools direkt aufgerufen. Verifiziertes Verhalten, dokumentiert in docs/VERIFICATION.md.dsh-Pro-Agent-Engines sind begrenzt, nicht lebenszyklus-verfolgt. Jede dsh-Agent- Sitzung erhält ihre eigene Engine (keine Alias-Kollisionen), aber die Harness benachrichtigt Plugins nicht über die Freigabe von Agenten, sodass das Plugin höchstens 32 Engines hält und die am wenigsten zuletzt verwendete verdrängt — diese Sitzung hängt sich bei ihrem nächsten Aufruf transparent wieder an.
Das Client-Bundle ist ~860 kB. Vega ist eingebettet, weil die Harness genau eine Datei pro Plugin ausliefert und keine Route für Geschwister-Chunks hat, sodass eine diagrammfreie Sitzung trotzdem dafür zahlt.
data_attachakzeptiert jeden Pfad, den der Host-Prozess lesen kann. Es gibt noch keine Workspace-Abgrenzung; es erbt, was die Harness-Sandbox erlaubt.XLSX hängt von DuckDBs
read_xlsxab, was beim ersten Gebrauch einen Erweiterungs-Download erfordern kann. CSV, Parquet und JSON sind durch Tests abgedeckt; XLSX nicht.
Anmerkungen zu den dsh-npm-Paketen
Zwei Dinge haben hier Zeit gekostet und sind für alle anderen, die ein Harness-Plugin bauen, festzuhalten:
latestzeigt auf eine defekte Linie.npm view @deepseek-ai/dsh-tools versionmeldet0.0.1-rc.1, aber die aktuelle Linie ist0.1.0-rc.8. Mehrere0.0.1-rc.1-Pakete lassen sich überhaupt nicht installieren —@deepseek-ai/dsh-client-runtime@0.0.1-rc.1hängt von@deepseek-ai/dsh-compactab und@deepseek-ai/dsh-session@0.0.1-rc.1hängt von@deepseek-ai/dsh-type-metaab; keines davon ist veröffentlicht. Pinne0.1.0-rc.8.pnpm-Richtlinie
minimumReleaseAgeblockiert die rc-Linie, solange sie frisch ist. Dieses Repo hebt sie inpnpm-workspace.yamlauf, mit einem Hinweis, sie wiederherzustellen, sobald dsh eine stabile Veröffentlichung hat.
Roadmap
M1 | Kern + dsh-Plugin, Diagramme im Gespräch — erledigt, live-verifiziert |
M2 | MCP-Server: gleiche Fähigkeit in Claude Code / Codex / Cursor — erledigt ← du bist hier |
M3 | HTML-Berichtsexport (druckt zu PDF), PostgreSQL / MySQL / SQLite, Pro-Agent-Isolation — erledigt |
M4 | Workbench-Panel: Datenquellen, Diagramm-Galerie mit Klick-zum-Scrollen, Berichtsarchiv — erledigt, live-verifiziert |
Lizenz
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