Skip to content

feat(data-studio): add Data Studio plugin for database access via MCP - #142

Open
Blankll wants to merge 2 commits into
zai-org:mainfrom
geek-fun:feat/data-studio-plugin
Open

Blankll wants to merge 2 commits into
zai-org:mainfrom
geek-fun:feat/data-studio-plugin

Conversation

@Blankll

@Blankll Blankll commented Oct 30, 2026

Copy link
Copy Markdown

Plugin type (required) / 插件类型(必填)

  • Standard plugin / 普通插件(非 UI) — does not provide MCP Apps interactive pages / 不提供 MCP Apps 交互页面
  • UI Plugin / 是 UI 插件 — provides MCP Apps interactive pages / 提供 MCP Apps 交互页面
  • Not applicable / 不适用 — repository-only changes; no plugin content changed / 仅仓库级改动,不涉及插件内容

Affected plugin name(s) / 涉及的插件名称:data-studio

What / 改动内容

Adds Data Studio (external_plugins/data-studio/), a community plugin that lets ZCode agents securely query the user's databases in plain language. It bundles the open-source @geek-fun/data-studio-mcp server (pinned 0.1.12 via npx in .mcp.json, stdio) with a data-studio skill and bilingual disclosure READMEs.

  • Tools: the data_studio__* family (84–117 depending on backend state) — 70+ SQL databases through the user's local sqlkit desktop app (PostgreSQL, MySQL, SQL Server, Oracle, SQLite, DuckDB, ClickHouse, Snowflake, …), and Elasticsearch / OpenSearch / MongoDB / DynamoDB through dockit. Both desktop apps are separate, existing open-source projects; the MCP server only routes to their localhost-only bridges (127.0.0.1:9120/9121).
  • Skill: skills/data-studio/SKILL.md teaches agents the tool routing (data_studio__{app}__{backend}__{action}), the connection_id-first workflow, and the three-tier permission model; destructive operations always require explicit user confirmation in the client.
  • Security: credentials never cross the MCP boundary — the agent only ever sees opaque connection_ids; real credentials are resolved inside the desktop apps. READMEs disclose network access (localhost bridges + npm registry on first npx download), command execution (spawning the Node MCP server), and the absence of telemetry / file writes / external services.
  • Icon: assets/data-studio/icon.png (512×512, rendered from the project logo).

Verification

  • python3 scripts/validate.py — OK: 53 plugin(s) validated
  • python3 scripts/build_dist.py — data-studio artifact builds (see note in checklist)
  • Real-machine verification: installed from a local marketplace in ZCode Desktop; a new-session task ("用 Data Studio 列出我 dockit 中的所有 MongoDB 连接") auto-triggered the skill and returned the correct 3 MongoDB connections via data_studio__list_connections; MCP stdio handshake against running dockit (9120) and sqlkit (9121) passes with the pinned npm package.

Self-check / 自查清单

  • Plugin name is unique kebab-case; new external plugin directory is external_plugins/<name>/; existing fixes retain ownership / 插件名唯一且 kebab-case,外部新增插件位于 external_plugins/<name>/,已有插件修复保留原归属
  • Usage category is set independently of publisher ownership / 用途分类 category 已填写,与维护归属分开
  • Plugin type and affected names are declared above / 已在上方声明插件类型与涉及的插件名称
  • version bumped in BOTH plugin.json and marketplace.json (artifacts are immutable) / plugin.json 与 marketplace.json 两处版本号已同步升级(制品不可变)— 0.1.12, matching the pinned npm package
  • README.md (EN) and README_CN.md (中文) both updated and equivalent / 中英文 README 均已更新且语义一致
  • description_i18n has both en and zh-CN / description_i18n 包含 en 与 zh-CN
  • No secrets, machine-specific paths, or private dependencies / 不含密钥、机器专属路径或私有依赖
  • Model/API/network dependencies documented / 模型、API、网络依赖已写明 — localhost bridges (127.0.0.1:9120/9121), npm registry on first npx download; no model/API keys required
  • python3 scripts/validate.py and python3 scripts/build_dist.py pass locally / 本地校验与构建均通过 — validate.py fully green (53 plugins). build_zip from scripts/build_dist.py produces the deterministic data-studio artifact (sha256 b9f0cafd…, 5 files). A full-workspace pnpm build additionally requires the Rust 1.95 + Trunk wasm toolchain of the pre-existing Craft UI plugins; this standard plugin itself has no build step and no local MCP paths.

Community contribution from geek-fun. The plugin bundles the Data Studio MCP
server (@geek-fun/data-studio-mcp, pinned 0.1.12 via npx) exposing 84-117
data_studio__* tools: 70+ SQL databases through the sqlkit desktop app and
Elasticsearch/OpenSearch/MongoDB/DynamoDB through dockit. A data-studio skill
teaches agents the tool routing (data_studio__{app}__{backend}__{action}),
permission tiers, and the connection_id-first workflow; credentials never
leave the desktop apps. README discloses network access (localhost bridges
only), credentials handling, and the security model per CONTRIBUTING.
@panda920

Copy link
Copy Markdown
Collaborator

✅ Internal validation passed. A ZCode maintainer will review the change next; after acceptance, release checks run separately and this PR is closed automatically.

Previous icon.png had alpha=0 for every pixel (mask drawn with default black
fill on xc:none then collapsed by -alpha off before CopyOpacity), so GitHub
and the ZCode client rendered it as fully transparent. Rebuilt with an
explicit white-on-black mask; verified alpha range [0,1] with opaque center
and transparent rounded corners.
@panda920

panda920 commented Nov 1, 2026

Copy link
Copy Markdown
Collaborator

✅ Internal validation passed. A ZCode maintainer will review the change next; after acceptance, release checks run separately and this PR is closed automatically.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants