Sign In

@geek-fun/data-studio-mcp

Package Overview
Dependencies
Maintainers
2
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@geek-fun/data-studio-mcp

Unified MCP server for SQL (PostgreSQL, MySQL, SQL Server, SQLite) and NoSQL (Elasticsearch, MongoDB, DynamoDB) — powered by dockit and sqlkit desktop apps

latest
Source
npmnpm
Version
0.1.11
Version published
Weekly downloads
838
24.89%
Maintainers
2
Weekly downloads
 
Created
Source
Data Studio Agent logo

@geek-fun/data-studio-mcp

Let your AI coding agent (Claude Code, Cursor, Windsurf, OpenCode, Codex) securely access all your databases, in plain language.

Local-first. Enterprise-grade security. Open source.

npm version Downloads License

📖 Product Page · npm · dockit · sqlkit · Releases

English · 简体中文

Let your AI coding agent (Claude Code, Cursor, Windsurf, OpenCode, Codex) securely access all your databases. Ask it to query, explore schemas, and write SQL or NoSQL queries. It works with:

  • SQL databases (via sqlkit): 70+ databases (PostgreSQL, MySQL, SQL Server, Oracle, SQLite, DuckDB, ClickHouse, Snowflake, BigQuery, and more)
  • NoSQL databases (via dockit): Elasticsearch, OpenSearch, MongoDB, DynamoDB

If you already have the desktop apps installed, setup takes two steps: install this package and add it to your AI tool. There is no server to host and no API keys to manage. Everything runs locally on your machine.

Prerequisites

  • Install dockit and/or sqlkit (free, open source)
  • Launch the app and add at least one database connection
  • Make sure Settings → MCP Bridge → Auto-start is enabled (it is by default)

Install both apps to get the full tool set, SQL and NoSQL. One app is enough to get started.

Installation

Global install (recommended):

npm install -g @geek-fun/data-studio-mcp

Or run without installing (each time):

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

The package downloads once, then runs locally. Your data never leaves your machine.

Add it to your AI tool

Claude Code

Add to your MCP config:

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

Cursor / Windsurf / OpenCode / other MCP clients

Add a new MCP server:

SettingValue
Typestdio
Commandnpx
Args-y @geek-fun/data-studio-mcp

Usage

Once connected, just ask in plain language. The agent calls the database tools for you:

  • "List all tables in my PostgreSQL database"
  • "Show me the last 10 orders from the Elasticsearch index orders*"
  • "Find all users older than 30 in MongoDB"
  • "Run this query and explain the results"

The agent can read schemas, run queries, and explore your data, then shows you every query it runs.

Enterprise-grade security

The LLM gets broad access to your data, but it never sees your credentials. The policy model gates every capability by risk level.

  • Credentials never leave the apps. The LLM only ever sees an opaque connection_id. Real credentials are resolved inside dockit/sqlkit and never cross the MCP boundary. Your passwords and keys stay on your machine, in your app.
  • ID-based resource access. Agents access databases strictly by connection ID. Credentials never appear in prompts or tool arguments, so there is no path for the model to obtain or exfiltrate connection secrets.
  • Three-tier permission model. Read Only / Data Read-Write / Full Access modes gate every capability by risk level, with per-connection overrides. You can mark any connection read-only or allowlist specific actions.
  • Explicit user confirmation. Destructive operations (DELETE, DROP, TRUNCATE) surface as Ask in the policy. The client prompts the user for explicit confirmation before anything destructive runs.
  • Action-level statement classification. SQL is parsed and classified by statement kind (Read / Write / Delete / DDL) before execution. Write-only tools reject DELETE statements; delete tools reject DDL.
  • Local-only bridge. The bridge binds to 127.0.0.1 exclusively. It is unreachable from other machines, with no server to host and no API keys to manage.

How it works

code agent (Claude Code / Cursor / OpenCode ...)
    |
    | MCP stdio protocol
    v
@geek-fun/data-studio-mcp   ← this 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               |

The MCP server is a thin routing layer. All database drivers, SSH tunnels, and connection management live in the desktop apps, which expose a local HTTP bridge (127.0.0.1 only). The MCP server auto-discovers running backends via each app's port file, so only the tools of running backends are exposed.

Tools

All tools follow the data_studio__{backend}__{action} convention. The User confirmation column shows which operations surface an explicit confirmation prompt in your AI client before they run.

ToolBackendRiskRequires permissionUser confirmation
data_studio__list_connectionsServer🟢 SafeRead OnlyNo
data_studio__get_statusServer🟢 SafeRead OnlyNo
data_studio__sqlkit__list_connectionssqlkit🟢 SafeRead OnlyNo
data_studio__sqlkit__execute_querysqlkit🟢 SafeRead OnlyNo
data_studio__sqlkit__list_databasessqlkit🟢 SafeRead OnlyNo
data_studio__sqlkit__list_schemassqlkit🟢 SafeRead OnlyNo
data_studio__sqlkit__list_tablessqlkit🟢 SafeRead OnlyNo
data_studio__sqlkit__get_schemasqlkit🟢 SafeRead OnlyNo
data_studio__sqlkit__describe_tablesqlkit🟢 SafeRead OnlyNo
data_studio__sqlkit__explain_querysqlkit🟢 SafeRead OnlyNo
data_studio__sqlkit__execute_writesqlkit🟡 ElevatedData Read-WriteNo
data_studio__sqlkit__execute_deletesqlkit🔴 DestructiveFull AccessYes
data_studio__sqlkit__execute_ddlsqlkit🔴 DestructiveFull AccessYes
data_studio__es__searchdockit · Elasticsearch🟢 SafeRead OnlyNo
data_studio__es__get_documentdockit · Elasticsearch🟢 SafeRead OnlyNo
data_studio__es__cat_indicesdockit · Elasticsearch🟢 SafeRead OnlyNo
data_studio__es__get_mappingdockit · Elasticsearch🟢 SafeRead OnlyNo
data_studio__es__cat_aliasesdockit · Elasticsearch🟢 SafeRead OnlyNo
data_studio__es__get_aliasdockit · Elasticsearch🟢 SafeRead OnlyNo
data_studio__es__index_documentdockit · Elasticsearch🟡 ElevatedData Read-WriteNo
data_studio__es__update_documentdockit · Elasticsearch🟡 ElevatedData Read-WriteNo
data_studio__es__create_indexdockit · Elasticsearch🟡 ElevatedData Read-WriteNo
data_studio__es__put_mappingdockit · Elasticsearch🟡 ElevatedData Read-WriteNo
data_studio__es__put_aliasdockit · Elasticsearch🟡 ElevatedData Read-WriteNo
data_studio__es__update_aliasesdockit · Elasticsearch🟡 ElevatedData Read-WriteNo
data_studio__es__delete_documentdockit · Elasticsearch🔴 DestructiveFull AccessYes
data_studio__es__delete_by_querydockit · Elasticsearch🔴 DestructiveFull AccessYes
data_studio__es__delete_indexdockit · Elasticsearch🔴 DestructiveFull AccessYes
data_studio__es__delete_aliasdockit · Elasticsearch🔴 DestructiveFull AccessYes
data_studio__mongo__list_databasesdockit · MongoDB🟢 SafeRead OnlyNo
data_studio__mongo__list_collectionsdockit · MongoDB🟢 SafeRead OnlyNo
data_studio__mongo__finddockit · MongoDB🟢 SafeRead OnlyNo
data_studio__mongo__collection_statsdockit · MongoDB🟢 SafeRead OnlyNo
data_studio__mongo__database_statsdockit · MongoDB🟢 SafeRead OnlyNo
data_studio__mongo__server_statusdockit · MongoDB🟢 SafeRead OnlyNo
data_studio__mongo__repl_set_statusdockit · MongoDB🟢 SafeRead OnlyNo
data_studio__mongo__shard_statusdockit · MongoDB🟢 SafeRead OnlyNo
data_studio__mongo__count_documentsdockit · MongoDB🟢 SafeRead OnlyNo
data_studio__mongo__list_indexesdockit · MongoDB🟢 SafeRead OnlyNo
data_studio__mongo__sample_documentsdockit · MongoDB🟢 SafeRead OnlyNo
data_studio__mongo__aggregatedockit · MongoDB🟡 ElevatedData Read-WriteNo
data_studio__mongo__insert_onedockit · MongoDB🟡 ElevatedData Read-WriteNo
data_studio__mongo__update_manydockit · MongoDB🟡 ElevatedData Read-WriteNo
data_studio__mongo__update_documentdockit · MongoDB🟡 ElevatedData Read-WriteNo
data_studio__mongo__create_databasedockit · MongoDB🟡 ElevatedData Read-WriteNo
data_studio__mongo__create_collectiondockit · MongoDB🟡 ElevatedData Read-WriteNo
data_studio__mongo__rename_collectiondockit · MongoDB🟡 ElevatedData Read-WriteNo
data_studio__mongo__clone_collectiondockit · MongoDB🟡 ElevatedData Read-WriteNo
data_studio__mongo__create_indexdockit · MongoDB🟡 ElevatedData Read-WriteNo
data_studio__mongo__drop_indexdockit · MongoDB🟡 ElevatedData Read-WriteNo
data_studio__mongo__delete_manydockit · MongoDB🔴 DestructiveFull AccessYes
data_studio__mongo__delete_documentdockit · MongoDB🔴 DestructiveFull AccessYes
data_studio__mongo__drop_collectiondockit · MongoDB🔴 DestructiveFull AccessYes
data_studio__mongo__drop_databasedockit · MongoDB🔴 DestructiveFull AccessYes
data_studio__mongo__truncate_collectiondockit · MongoDB🔴 DestructiveFull AccessYes
data_studio__dynamo__execute_querydockit · DynamoDB🟢 SafeRead OnlyNo
data_studio__dynamo__describe_tabledockit · DynamoDB🟢 SafeRead OnlyNo
data_studio__dynamo__list_tablesdockit · DynamoDB🟢 SafeRead OnlyNo
data_studio__dynamo__query_tabledockit · DynamoDB🟢 SafeRead OnlyNo
data_studio__dynamo__scan_tabledockit · DynamoDB🟢 SafeRead OnlyNo
data_studio__dynamo__describe_continuous_backupsdockit · DynamoDB🟢 SafeRead OnlyNo
data_studio__dynamo__describe_ttldockit · DynamoDB🟢 SafeRead OnlyNo
data_studio__dynamo__get_table_metricsdockit · DynamoDB🟢 SafeRead OnlyNo
data_studio__dynamo__execute_writedockit · DynamoDB🟡 ElevatedData Read-WriteNo
data_studio__dynamo__create_itemdockit · DynamoDB🟡 ElevatedData Read-WriteNo
data_studio__dynamo__batch_write_itemsdockit · DynamoDB🟡 ElevatedData Read-WriteNo
data_studio__dynamo__update_itemdockit · DynamoDB🟡 ElevatedData Read-WriteNo
data_studio__dynamo__create_gsidockit · DynamoDB🟡 ElevatedData Read-WriteNo
data_studio__dynamo__update_gsidockit · DynamoDB🟡 ElevatedData Read-WriteNo
data_studio__dynamo__create_tabledockit · DynamoDB🟡 ElevatedData Read-WriteNo
data_studio__dynamo__update_table_configdockit · DynamoDB🟡 ElevatedData Read-WriteNo
data_studio__dynamo__update_ttldockit · DynamoDB🟡 ElevatedData Read-WriteNo
data_studio__dynamo__update_pitrdockit · DynamoDB🟡 ElevatedData Read-WriteNo
data_studio__dynamo__update_streamsdockit · DynamoDB🟡 ElevatedData Read-WriteNo
data_studio__dynamo__execute_deletedockit · DynamoDB🔴 DestructiveFull AccessYes
data_studio__dynamo__delete_itemdockit · DynamoDB🔴 DestructiveFull AccessYes
data_studio__dynamo__delete_gsidockit · DynamoDB🔴 DestructiveFull AccessYes
data_studio__dynamo__delete_tabledockit · DynamoDB🔴 DestructiveFull AccessYes
data_studio__dynamo__truncate_tabledockit · DynamoDB🔴 DestructiveFull AccessYes

79 tools total. Read-only operations run automatically under Read Only mode. Elevated operations (writes, index/schema changes) require Data Read-Write. Destructive operations (DELETE, DROP, TRUNCATE) require Full Access and always surface an explicit user confirmation prompt.

Development

npm install
npm run build      # compile TypeScript
npm test           # run unit tests (vitest)
npm run lint:check # ESLint

Releasing

Bump the version in package.json and merge to master. The release workflow publishes the package to npm (OIDC trusted publishing) and creates a tag + GitHub release.

License

Apache-2.0

Keywords

mcp

FAQs

Package last updated on 11 Aug 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts