mcpField
D
Data Studio

Data Studio

本地服务
github.com/geek-fun数据库35 天前更新

关于 Data Studio

Data Studio 是通过 dockit 和 sqlkit 桌面应用连接数据库的 MCP 服务,供编码 Agent 查询和管理 SQL 与 NoSQL 数据。凭据留在本机应用中,并可按风险设置权限。

主要功能

  1. 01统一访问 SQL 与 NoSQL 数据库
  2. 02支持 70 多种 SQL 数据库
  3. 03浏览结构并执行查询
  4. 04分级控制读写与破坏性操作
  5. 05凭据保留在本机应用中

适用场景

  1. 01用自然语言检查数据库结构
  2. 02查询 PostgreSQL 或 MongoDB 数据
  3. 03限制 Agent 可执行的数据库操作

MCP 相关

作为 MCP 服务,它通过本机桥接连接 dockit 和 sqlkit,并向兼容客户端提供数据库工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"geek-fun-data-studio": {
"command": "npx",
"args": [
"-y",
"@geek-fun/data-studio-mcp"
]
}
}
}
启动命令npx -y @geek-fun/data-studio-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@geek-fun/data-studio-mcp0.1.10

工具

2

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

Data Studio Agent 徽标

Data Studio Agent

让你的 AI 编码 Agent 以安全的方式,通过自然语言访问所有数据库。

本地优先。企业级安全。开源。

Release Downloads npm License Stars CI MCP Toplist

README 配图 README 配图 README 配图 README 配图

用自然语言询问数据库——实时演示

📖 产品页面 · npm · dockit · sqlkit · 发布版本

English · 简体中文


此仓库包含 Data Studio MCP Server,这是一个 Model Context Protocol 服务,通过 dockit 和 sqlkit 桌面应用,让 AI 编码 Agent 直接访问你的数据库。

  • SQL(通过 sqlkit):70 多种数据库(PostgreSQL、MySQL、SQL Server、Oracle、SQLite、DuckDB、ClickHouse、Snowflake、BigQuery 等)
  • NoSQL(通过 dockit):Elasticsearch、OpenSearch、MongoDB、DynamoDB

功能

  • 支持任意 AI 编码 Agent。 Claude Code、Cursor、Windsurf、OpenCode、Codex、Cline、Pi、Qoder、GitHub Copilot,或任意 MCP 客户端。
  • 支持任意操作系统。 macOS、Windows、Linux。
  • 支持任意大模型。 使用你自己的提供商,不受绑定。
  • 一个 MCP 服务,一份配置。 通过 localhost 将请求路由到 SqlKit(SQL)和 DocKit(NoSQL)桥接服务。
  • 企业级安全。 详见下文。

快速开始

1. 前置条件

安装并启动 dockit 和/或 sqlkit,添加数据库连接,并确保已启用 Settings → MCP Bridge → Auto-start(默认已启用)。要使用完整的 SQL + NoSQL 工具集,请安装这两个应用。

2. 安装 MCP 服务
npm install -g @geek-fun/data-studio-mcp

也可以不安装直接运行(npx 会在首次运行时下载):

npx -y @geek-fun/data-studio-mcp
3. 将其添加到 AI 工具

OpenAI Codex,一条命令:

codex mcp add data-studio -- npx -y @geek-fun/data-studio-mcp

Claude Code,一条命令:

claude mcp add --transport stdio data-studio -- npx -y @geek-fun/data-studio-mcp

Cursor。 创建 .cursor/mcp.json(项目级)或 ~/.cursor/mcp.json(全局):

{
  "mcpServers": {
    "data-studio": {
      "command": "npx",
      "args": ["-y", "@geek-fun/data-studio-mcp"]
    }
  }
}

Windsurf。 创建 ~/.codeium/windsurf/mcp_config.json(仅限全局):

{
  "mcpServers": {
    "data-studio": {
      "command": "npx",
      "args": ["-y", "@geek-fun/data-studio-mcp"]
    }
  }
}

OpenCode。 添加到 opencode.json(项目级)或 ~/.config/opencode/opencode.json(全局):

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "data-studio": {
      "type": "local",
      "command": ["npx", "-y", "@geek-fun/data-studio-mcp"],
      "enabled": true
    }
  }
}

任何其他 MCP 客户端。 注册一个 stdio 服务,命令为 npx,参数为 -y @geek-fun/data-studio-mcp。

4. 调整权限(可选)

在 dockit/sqlkit 中打开 Settings → MCP Bridge,控制 Agent 可以执行的操作:

权限模式Agent 可以执行的操作
Read Only(默认)查看架构、运行 SELECT 查询。不能写入。
Data Read/Write执行 INSERT、UPDATE、索引操作。不能删除或删除对象。
Full Access执行所有操作,包括 DELETE、DROP、TRUNCATE。
5. 开始提问

使用日常语言。Agent 会为你查询数据库:

  • “列出我的 PostgreSQL 数据库中的所有表”
  • “显示 Elasticsearch 索引 orders* 中最近的 10 笔订单”
  • “找出 MongoDB 中所有年龄超过 30 岁的用户”
  • “运行此查询并解释结果”

Agent 会读取架构、运行查询并探索数据,然后向你展示执行过的每条查询。

企业级安全性

大模型可以广泛访问你的数据,但永远看不到你的凭据。策略模型会根据风险级别限制每项功能。

  • 凭据绝不会离开应用。 大模型只能看到不透明的 connection_id。实际凭据会在 dockit/sqlkit 内部解析,绝不会跨越 MCP 边界。密码和密钥都留在你的设备上的应用中。
  • 基于 ID 的资源访问。 Agent 严格通过连接 ID 访问数据库。凭据不会出现在提示词或工具参数中,因此模型无法获取或窃取连接密钥。
  • 三级权限模型。 Read Only / Data Read-Write / Full Access 模式会根据风险级别限制每项功能,并支持按连接覆盖设置。你可以将任意连接设为只读,或将特定操作加入允许列表。
  • 明确的用户确认。 破坏性操作(DELETE、DROP、TRUNCATE)会在策略中标记为 Ask。执行任何破坏性操作前,客户端都会提示用户明确确认。
  • 按操作级别分类语句。 执行前会解析 SQL,并按语句类型(Read / Write / Delete / DDL)分类。仅写入工具会拒绝 DELETE 语句;删除工具会拒绝 DDL。
  • 仅限本地的桥接。 桥接仅绑定到 127.0.0.1。其他设备无法访问,无需托管服务,也无需管理 API 密钥。

工具

所有工具都遵循 data_studio__{backend}__{action} 命名规范。用户确认列显示哪些操作会在运行前于 AI 客户端中弹出明确的确认提示。

工具后端风险需要权限用户确认
data_studio__list_connections服务🟢 安全只读否
data_studio__get_status服务🟢 安全只读否
data_studio__sqlkit__list_databasessqlkit🟢 安全只读否
data_studio__sqlkit__list_schemassqlkit🟢 安全只读否
data_studio__sqlkit__list_tablessqlkit🟢 安全只读否
data_studio__sqlkit__get_schemasqlkit🟢 安全只读否
data_studio__sqlkit__describe_tablesqlkit🟢 安全只读否
data_studio__sqlkit__explain_querysqlkit🟢 安全只读否
data_studio__sqlkit__list_indexessqlkit🟢 安全只读否
data_studio__sqlkit__list_foreign_keyssqlkit🟢 安全只读否
data_studio__sqlkit__list_viewssqlkit🟢 安全只读否
data_studio__sqlkit__list_proceduressqlkit🟢 安全只读否
data_studio__sqlkit__list_functionssqlkit🟢 安全只读否
data_studio__sqlkit__list_triggerssqlkit🟢 安全只读否
data_studio__sqlkit__get_table_infosqlkit🟢 安全只读否
data_studio__sqlkit__get_foreign_keyssqlkit🟢 安全只读否
data_studio__sqlkit__list_sessionssqlkit🟢 安全只读否
data_studio__sqlkit__get_slow_queriessqlkit🟢 安全只读否
data_studio__sqlkit__list_connectionssqlkit🟢 安全只读否
data_studio__sqlkit__execute_querysqlkit🟢 安全只读否
data_studio__sqlkit__get_object_ddlsqlkit🟢 安全只读否
data_studio__sqlkit__execute_writesqlkit🟡 较高数据读写否
data_studio__sqlkit__kill_sessionsqlkit🟡 较高数据读写否
data_studio__sqlkit__grant_privilegesqlkit🟡 较高数据读写否
data_studio__sqlkit__revoke_privilegesqlkit🟡 较高数据读写否
data_studio__sqlkit__execute_deletesqlkit🔴 破坏性完全访问权限是
data_studio__sqlkit__execute_ddlsqlkit🔴 破坏性完全访问权限是
data_studio__es__searchdockit · Elasticsearch🟢 安全只读否
data_studio__es__get_documentdockit · Elasticsearch🟢 安全只读否
data_studio__es__cat_indicesdockit · Elasticsearch🟢 安全只读否
data_studio__es__get_mappingdockit · Elasticsearch🟢 安全只读否
data_studio__es__cat_aliasesdockit · Elasticsearch🟢 安全只读否
data_studio__es__get_aliasdockit · Elasticsearch🟢 安全只读否
data_studio__es__countdockit · Elasticsearch🟢 安全只读否
data_studio__es__cluster_healthdockit · Elasticsearch🟢 安全只读否
data_studio__es__cat_nodesdockit · Elasticsearch🟢 安全只读否
data_studio__es__cat_shardsdockit · Elasticsearch🟢 安全只读否
data_studio__es__list_snapshotsdockit · Elasticsearch🟢 安全只读否
data_studio__es__index_documentdockit · Elasticsearch🟡 较高数据读写否
data_studio__es__update_documentdockit · Elasticsearch🟡 较高数据读写否
data_studio__es__create_indexdockit · Elasticsearch🟡 较高数据读写否
data_studio__es__put_mappingdockit · Elasticsearch🟡 较高数据读写否
data_studio__es__put_aliasdockit · Elasticsearch🟡 较高数据读写否
data_studio__es__update_aliasesdockit · Elasticsearch🟡 较高数据读写否
data_studio__es__bulkdockit · Elasticsearch🟡 较高数据读写否
data_studio__es__reindexdockit · Elasticsearch🟡 较高数据读写否
data_studio__es__restore_snapshotdockit · Elasticsearch🟡 较高数据读写否
data_studio__es__delete_documentdockit · Elasticsearch🔴 破坏性完全访问权限是
data_studio__es__delete_by_querydockit · Elasticsearch🔴 破坏性完全访问权限是
data_studio__es__delete_indexdockit · Elasticsearch🔴 破坏性完全访问权限是
data_studio__es__delete_aliasdockit · Elasticsearch🔴 破坏性完全访问权限是
data_studio__mongo__list_databasesdockit · MongoDB🟢 安全只读否
data_studio__mongo__list_collectionsdockit · MongoDB🟢 安全只读否
data_studio__mongo__finddockit · MongoDB🟢 安全只读否
data_studio__mongo__collection_statsdockit · MongoDB🟢 安全只读否
data_studio__mongo__database_statsdockit · MongoDB🟢 安全只读否
data_studio__mongo__server_statusdockit · MongoDB🟢 安全只读否
data_studio__mongo__repl_set_statusdockit · MongoDB🟢 安全只读否
data_studio__mongo__shard_statusdockit · MongoDB🟢 安全只读否
data_studio__mongo__count_documentsdockit · MongoDB🟢 安全只读否
data_studio__mongo__list_indexesdockit · MongoDB🟢 安全只读否
data_studio__mongo__sample_documentsdockit · MongoDB🟢 安全只读否
data_studio__mongo__distinctdockit · MongoDB🟢 安全只读否
data_studio__mongo__get_slow_queriesdockit · MongoDB🟢 安全只读否
data_studio__mongo__list_usersdockit · MongoDB🟢 安全只读否
data_studio__mongo__aggregatedockit · MongoDB🟡 较高数据读写否
data_studio__mongo__insert_onedockit · MongoDB🟡 较高数据读写否
data_studio__mongo__update_manydockit · MongoDB🟡 较高数据读写否
data_studio__mongo__create_databasedockit · MongoDB🟡 较高数据读写否
data_studio__mongo__create_collectiondockit · MongoDB🟡 较高数据读写否
data_studio__mongo__update_documentdockit · MongoDB🟡 较高数据读写否
data_studio__mongo__rename_collectiondockit · MongoDB🟡 较高数据读写否
data_studio__mongo__clone_collectiondockit · MongoDB🟡 较高数据读写否
data_studio__mongo__create_indexdockit · MongoDB🟡 较高数据读写否
data_studio__mongo__drop_indexdockit · MongoDB🟡 较高数据读写否
data_studio__mongo__insert_manydockit · MongoDB🟡 较高数据读写否
data_studio__mongo__find_one_and_updatedockit · MongoDB🟡 较高数据读写否
data_studio__mongo__bulk_writedockit · MongoDB🟡 较高数据读写否
data_studio__mongo__delete_manydockit · MongoDB🔴 破坏性完全访问权限是
data_studio__mongo__drop_databasedockit · MongoDB🔴 破坏性完全访问权限是
data_studio__mongo__drop_collectiondockit · MongoDB🔴 破坏性完全访问权限是
data_studio__mongo__delete_documentdockit · MongoDB🔴 破坏性完全访问权限是
data_studio__mongo__truncate_collectiondockit · MongoDB🔴 破坏性完全访问权限是
data_studio__dynamo__execute_querydockit · DynamoDB🟢 安全只读否
data_studio__dynamo__describe_tabledockit · DynamoDB🟢 安全只读否
data_studio__dynamo__list_tablesdockit · DynamoDB🟢 安全只读否
data_studio__dynamo__query_tabledockit · DynamoDB🟢 安全只读否
data_studio__dynamo__scan_tabledockit · DynamoDB🟢 安全只读否
data_studio__dynamo__batch_get_itemsdockit · DynamoDB🟢 安全只读否
data_studio__dynamo__describe_continuous_backupsdockit · DynamoDB🟢 安全只读否
data_studio__dynamo__describe_ttldockit · DynamoDB🟢 安全只读否
data_studio__dynamo__get_table_metricsdockit · DynamoDB🟢 安全只读否
data_studio__dynamo__list_backupsdockit · DynamoDB🟢 安全只读否
data_studio__dynamo__describe_backupdockit · DynamoDB🟢 安全只读否
data_studio__dynamo__describe_limitsdockit · DynamoDB🟢 安全只读否
data_studio__dynamo__list_tagsdockit · DynamoDB🟢 安全只读否
data_studio__dynamo__execute_writedockit · DynamoDB🟡 较高数据读写否
data_studio__dynamo__create_itemdockit · DynamoDB🟡 较高数据读写否
data_studio__dynamo__batch_write_itemsdockit · DynamoDB🟡 较高数据读写否
data_studio__dynamo__update_itemdockit · DynamoDB🟡 较高数据读写否
data_studio__dynamo__transact_write_itemsdockit · DynamoDB🟡 较高数据读写否
data_studio__dynamo__create_gsidockit · DynamoDB🟡 较高数据读写否
data_studio__dynamo__update_gsidockit · DynamoDB🟡 较高数据读写否
data_studio__dynamo__create_tabledockit · DynamoDB🟡 较高数据读写否
data_studio__dynamo__update_table_configdockit · DynamoDB🟡 较高数据读写否
data_studio__dynamo__update_ttldockit · DynamoDB🟡 较高数据读写否
data_studio__dynamo__update_pitrdockit · DynamoDB🟡 较高数据读写否
data_studio__dynamo__update_streamsdockit · DynamoDB🟡 较高数据读写否
data_studio__dynamo__restore_tabledockit · DynamoDB🟡 较高数据读写否
data_studio__dynamo__create_backupdockit · DynamoDB🟡 较高数据读写否
data_studio__dynamo__tag_resourcedockit · DynamoDB🟡 较高数据读写否
data_studio__dynamo__execute_deletedockit · DynamoDB🔴 破坏性完全访问权限是
data_studio__dynamo__delete_itemdockit · DynamoDB🔴 破坏性完全访问权限是
data_studio__dynamo__delete_gsidockit · DynamoDB🔴 破坏性完全访问权限是
data_studio__dynamo__delete_tabledockit · DynamoDB🔴 破坏性完全访问权限是
data_studio__dynamo__truncate_tabledockit · DynamoDB🔴 破坏性完全访问权限是
共 116 个工具。 只读操作会在 只读 模式下自动运行。较高风险操作(写入、索引/架构更改)需要 数据读写 权限。破坏性操作(DELETE、DROP、TRUNCATE)需要 完全访问权限,并且始终会显示明确的用户确认提示。

工作原理

code agent (Claude Code / Cursor / OpenCode ...)
    |
    | MCP stdio protocol
    v
@geek-fun/data-studio-mcp   ← npm package (pure TypeScript)
    |
    | HTTP (localhost)
    +----------------+----------------+
    v                v                |
dockit:9120    sqlkit:9121            |
(NoSQL bridge)  (SQL bridge)          |
    |                |                |
    v                v                |
Elasticsearch    PostgreSQL           |
MongoDB          MySQL                |
DynamoDB         SQL Server           |
OpenSearch       SQLite               |

MCP 服务是一个轻量级路由层。所有数据库驱动程序、SSH 隧道和连接管理都由桌面应用处理,这些应用会公开一个本地 HTTP 桥接端点(仅限 127.0.0.1)。MCP 服务会通过各应用的端口文件自动发现正在运行的后端。


面向开发者

此代码库还包含 data-studio-agent Rust 框架,这是一个共享的 AI Agent 循环(提供商适配器、流式传输、工具调用、上下文压缩),为 dockit 和 sqlkit 中的内置助手提供支持。

安装、架构和集成指南请参阅 crates/data-studio-agent/README.md。

许可证

Apache 2.0。请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。