openanalyst-mcp-server
実際のDeepSeek Harnessセッション — エージェントがCSVを添付し、プロファイルし、 これらのチャートを会話ノードとして描画した(ヘッドレスChromeによるライブUIのキャプチャ。 検証記録を参照):
ステータス: M1 + M2 + M3 完了。 dshプラグインは
dsh web 0.1.0-rc.8内でライブ検証済み — 添付 → プロファイル → クエリ → チャートの全チェーンが実際のセッションで実行され、 両方のチャートが会話ノードとして描画された(検証記録)。 MCPサーバーはプロトコルレベルのテストとstdioスモークテストに合格している。 既知の制限を参照。
機能
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同じ5つのツールが、1つのエンジンから2つのホストで提供される:
ホスト | パッケージ | チャートの配信 |
DeepSeek Harnessプラグイン |
| ライブ会話ノード(Vegaキャンバス) |
MCPサーバー(Claude Code / Codex / Cursor / 任意のMCPクライアント) |
| SVGファイル + |
すべてのツールはCode Modeからawait tools.data_*(args)としても呼び出せるため、
エージェントはステップごとにラウンドトリップを消費する代わりに、分析全体を1つのプログラム内で連結できる。
ワークベンチ — セッションヘッダーパネル。このセッションのデータソース、 クリックでスクロールできるチャートギャラリー、生成されたレポートを表示する:
会話内のその他のチャート種類(同じテーマ、ライブセッションからエクスポート):
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アーキテクチャ
コードベースを形作る3つの決定。
エンジンはハーネスについて何も知らない。 @openanalyst/coreはパスとSQLを受け取り、ロスレスのJSONを返す。dsh、MCP、CLIの型を一切インポートしない。これにより、同じ分析を後でMCPアダプターを通じてClaude Code、Codex、Cursorに配信できる — 実装を二重に持つ必要がない。これはプラグインが単一ホストを超えたユーザーに届くかどうかを決める最大の要因である。
統計処理はDuckDBが行う。 SUMMARIZEは全カラムのmin/max/avg/std/四分位数/approx_unique/null_percentageを1パスで返し、CSV、Parquet、JSONを完全なファイル型推論で直接読み取る。IQR外れ値、重複行検出、フラグを立てる価値があるかの判断だけが手書きされている。
チャートはセッションイベントに載せられたVega-Lite仕様である。 ハーネスのツールカード種類は閉じた集合 — generic、terminal、diff、search、web — でチャートメンバーはないため、ツール結果はチャートをテキストに劣化させることしかできない。実際のチャートは会話ノードから来る必要があり、クライアント側がそれを登録する。
この制約がチャート形式も選ぶことになった。会話ノードはそのビューを永続イベントの純関数として再構築しなければならない — 時計も、乱数も、ライブ状態もない — そしてエンジンはデルタよりも全体値のチェックポイントを好む。データをインライン化したVega-Lite仕様はまさにそれだ:バイト単位でリプレイされる1つのプレーンな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変換、正確な個別カウント付きプロファイリング、チャート、Dockerフィクスチャがない場合は自動スキップするライブPostgreSQL/MySQLコネクタテスト)、レポートビルダー上で5、DuckDBに対する実際のdshプラグインツールをエンドツーエンドで駆動する14(エージェントごとの分離を含む)、SDKのインメモリトランスポート上のプロトコルレベルMCPテスト9(スクリプト化されたstdioスモークテストを含む)。実行中の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エージェントセッションは独自のエンジンを取得する(エイリアス衝突なし)が、ハーネスはエージェント破棄時にプラグインに通知しないため、プラグインは最大32エンジンを保持し、最も最近使用されていないものを追い出す — そのセッションは次の呼び出しで透過的に再アタッチされる。
クライアントバンドルは約860 kB。 Vegaがインライン化されているのは、ハーネスがプラグインごとに正確に1ファイルを提供し、兄弟チャンクのルートがないためで、チャートなしのセッションでもそのコストを支払うことになる。
data_attachはホストプロセスが読み取れる任意のパスを受け取る。 まだワークスペースフェンシングはない。ハーネスサンドボックスが許可するものをそのまま継承する。XLSXはDuckDBの
read_xlsxに依存しており、初回使用時に拡張機能のダウンロードが必要になる場合がある。CSV、Parquet、JSONはテストでカバーされているが、XLSXはされていない。
dsh npmパッケージに関するメモ
ここで時間がかかった2つの点があり、ハーネスプラグインを構築する他の人のために記録する価値がある:
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 | ワークベンチパネル: データソース、クリックでスクロールできるチャートギャラリー、レポートアーカイブ — 完了、ライブ検証済み |
ライセンス
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