
Research
/Security News
737 Chrome VPN Extensions Linked to Brand Impersonation and Browser Traffic Redirection
The campaign amassed more than 75,000 installs by targeting Russian-speaking users seeking access to blocked services.
@geek-fun/data-studio-mcp
Advanced tools
Unified MCP server for SQL (PostgreSQL, MySQL, SQL Server, SQLite) and NoSQL (Elasticsearch, MongoDB, DynamoDB) — powered by dockit and sqlkit desktop apps
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.
📖 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:
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.
Install both apps to get the full tool set, SQL and NoSQL. One app is enough to get started.
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 to your MCP config:
{
"mcpServers": {
"data-studio": {
"command": "npx",
"args": ["-y", "@geek-fun/data-studio-mcp"]
}
}
}
Add a new MCP server:
| Setting | Value |
|---|---|
| Type | stdio |
| Command | npx |
| Args | -y @geek-fun/data-studio-mcp |
Once connected, just ask in plain language. The agent calls the database tools for you:
orders*"The agent can read schemas, run queries, and explore your data, then shows you every query it runs.
The LLM gets broad access to your data, but it never sees your credentials. The policy model gates every capability by risk level.
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.Ask in the policy. The client prompts the user for explicit confirmation before anything destructive runs.127.0.0.1 exclusively. It is unreachable from other machines, with no server to host and no API keys to manage.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.
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.
| Tool | Backend | Risk | Requires permission | User confirmation |
|---|---|---|---|---|
data_studio__list_connections | Server | 🟢 Safe | Read Only | No |
data_studio__get_status | Server | 🟢 Safe | Read Only | No |
data_studio__sqlkit__list_connections | sqlkit | 🟢 Safe | Read Only | No |
data_studio__sqlkit__execute_query | sqlkit | 🟢 Safe | Read Only | No |
data_studio__sqlkit__list_databases | sqlkit | 🟢 Safe | Read Only | No |
data_studio__sqlkit__list_schemas | sqlkit | 🟢 Safe | Read Only | No |
data_studio__sqlkit__list_tables | sqlkit | 🟢 Safe | Read Only | No |
data_studio__sqlkit__get_schema | sqlkit | 🟢 Safe | Read Only | No |
data_studio__sqlkit__describe_table | sqlkit | 🟢 Safe | Read Only | No |
data_studio__sqlkit__explain_query | sqlkit | 🟢 Safe | Read Only | No |
data_studio__sqlkit__execute_write | sqlkit | 🟡 Elevated | Data Read-Write | No |
data_studio__sqlkit__execute_delete | sqlkit | 🔴 Destructive | Full Access | Yes |
data_studio__sqlkit__execute_ddl | sqlkit | 🔴 Destructive | Full Access | Yes |
data_studio__es__search | dockit · Elasticsearch | 🟢 Safe | Read Only | No |
data_studio__es__get_document | dockit · Elasticsearch | 🟢 Safe | Read Only | No |
data_studio__es__cat_indices | dockit · Elasticsearch | 🟢 Safe | Read Only | No |
data_studio__es__get_mapping | dockit · Elasticsearch | 🟢 Safe | Read Only | No |
data_studio__es__cat_aliases | dockit · Elasticsearch | 🟢 Safe | Read Only | No |
data_studio__es__get_alias | dockit · Elasticsearch | 🟢 Safe | Read Only | No |
data_studio__es__index_document | dockit · Elasticsearch | 🟡 Elevated | Data Read-Write | No |
data_studio__es__update_document | dockit · Elasticsearch | 🟡 Elevated | Data Read-Write | No |
data_studio__es__create_index | dockit · Elasticsearch | 🟡 Elevated | Data Read-Write | No |
data_studio__es__put_mapping | dockit · Elasticsearch | 🟡 Elevated | Data Read-Write | No |
data_studio__es__put_alias | dockit · Elasticsearch | 🟡 Elevated | Data Read-Write | No |
data_studio__es__update_aliases | dockit · Elasticsearch | 🟡 Elevated | Data Read-Write | No |
data_studio__es__delete_document | dockit · Elasticsearch | 🔴 Destructive | Full Access | Yes |
data_studio__es__delete_by_query | dockit · Elasticsearch | 🔴 Destructive | Full Access | Yes |
data_studio__es__delete_index | dockit · Elasticsearch | 🔴 Destructive | Full Access | Yes |
data_studio__es__delete_alias | dockit · Elasticsearch | 🔴 Destructive | Full Access | Yes |
data_studio__mongo__list_databases | dockit · MongoDB | 🟢 Safe | Read Only | No |
data_studio__mongo__list_collections | dockit · MongoDB | 🟢 Safe | Read Only | No |
data_studio__mongo__find | dockit · MongoDB | 🟢 Safe | Read Only | No |
data_studio__mongo__collection_stats | dockit · MongoDB | 🟢 Safe | Read Only | No |
data_studio__mongo__database_stats | dockit · MongoDB | 🟢 Safe | Read Only | No |
data_studio__mongo__server_status | dockit · MongoDB | 🟢 Safe | Read Only | No |
data_studio__mongo__repl_set_status | dockit · MongoDB | 🟢 Safe | Read Only | No |
data_studio__mongo__shard_status | dockit · MongoDB | 🟢 Safe | Read Only | No |
data_studio__mongo__count_documents | dockit · MongoDB | 🟢 Safe | Read Only | No |
data_studio__mongo__list_indexes | dockit · MongoDB | 🟢 Safe | Read Only | No |
data_studio__mongo__sample_documents | dockit · MongoDB | 🟢 Safe | Read Only | No |
data_studio__mongo__aggregate | dockit · MongoDB | 🟡 Elevated | Data Read-Write | No |
data_studio__mongo__insert_one | dockit · MongoDB | 🟡 Elevated | Data Read-Write | No |
data_studio__mongo__update_many | dockit · MongoDB | 🟡 Elevated | Data Read-Write | No |
data_studio__mongo__update_document | dockit · MongoDB | 🟡 Elevated | Data Read-Write | No |
data_studio__mongo__create_database | dockit · MongoDB | 🟡 Elevated | Data Read-Write | No |
data_studio__mongo__create_collection | dockit · MongoDB | 🟡 Elevated | Data Read-Write | No |
data_studio__mongo__rename_collection | dockit · MongoDB | 🟡 Elevated | Data Read-Write | No |
data_studio__mongo__clone_collection | dockit · MongoDB | 🟡 Elevated | Data Read-Write | No |
data_studio__mongo__create_index | dockit · MongoDB | 🟡 Elevated | Data Read-Write | No |
data_studio__mongo__drop_index | dockit · MongoDB | 🟡 Elevated | Data Read-Write | No |
data_studio__mongo__delete_many | dockit · MongoDB | 🔴 Destructive | Full Access | Yes |
data_studio__mongo__delete_document | dockit · MongoDB | 🔴 Destructive | Full Access | Yes |
data_studio__mongo__drop_collection | dockit · MongoDB | 🔴 Destructive | Full Access | Yes |
data_studio__mongo__drop_database | dockit · MongoDB | 🔴 Destructive | Full Access | Yes |
data_studio__mongo__truncate_collection | dockit · MongoDB | 🔴 Destructive | Full Access | Yes |
data_studio__dynamo__execute_query | dockit · DynamoDB | 🟢 Safe | Read Only | No |
data_studio__dynamo__describe_table | dockit · DynamoDB | 🟢 Safe | Read Only | No |
data_studio__dynamo__list_tables | dockit · DynamoDB | 🟢 Safe | Read Only | No |
data_studio__dynamo__query_table | dockit · DynamoDB | 🟢 Safe | Read Only | No |
data_studio__dynamo__scan_table | dockit · DynamoDB | 🟢 Safe | Read Only | No |
data_studio__dynamo__describe_continuous_backups | dockit · DynamoDB | 🟢 Safe | Read Only | No |
data_studio__dynamo__describe_ttl | dockit · DynamoDB | 🟢 Safe | Read Only | No |
data_studio__dynamo__get_table_metrics | dockit · DynamoDB | 🟢 Safe | Read Only | No |
data_studio__dynamo__execute_write | dockit · DynamoDB | 🟡 Elevated | Data Read-Write | No |
data_studio__dynamo__create_item | dockit · DynamoDB | 🟡 Elevated | Data Read-Write | No |
data_studio__dynamo__batch_write_items | dockit · DynamoDB | 🟡 Elevated | Data Read-Write | No |
data_studio__dynamo__update_item | dockit · DynamoDB | 🟡 Elevated | Data Read-Write | No |
data_studio__dynamo__create_gsi | dockit · DynamoDB | 🟡 Elevated | Data Read-Write | No |
data_studio__dynamo__update_gsi | dockit · DynamoDB | 🟡 Elevated | Data Read-Write | No |
data_studio__dynamo__create_table | dockit · DynamoDB | 🟡 Elevated | Data Read-Write | No |
data_studio__dynamo__update_table_config | dockit · DynamoDB | 🟡 Elevated | Data Read-Write | No |
data_studio__dynamo__update_ttl | dockit · DynamoDB | 🟡 Elevated | Data Read-Write | No |
data_studio__dynamo__update_pitr | dockit · DynamoDB | 🟡 Elevated | Data Read-Write | No |
data_studio__dynamo__update_streams | dockit · DynamoDB | 🟡 Elevated | Data Read-Write | No |
data_studio__dynamo__execute_delete | dockit · DynamoDB | 🔴 Destructive | Full Access | Yes |
data_studio__dynamo__delete_item | dockit · DynamoDB | 🔴 Destructive | Full Access | Yes |
data_studio__dynamo__delete_gsi | dockit · DynamoDB | 🔴 Destructive | Full Access | Yes |
data_studio__dynamo__delete_table | dockit · DynamoDB | 🔴 Destructive | Full Access | Yes |
data_studio__dynamo__truncate_table | dockit · DynamoDB | 🔴 Destructive | Full Access | Yes |
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.
npm install
npm run build # compile TypeScript
npm test # run unit tests (vitest)
npm run lint:check # ESLint
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.
FAQs
Unified MCP server for SQL (PostgreSQL, MySQL, SQL Server, SQLite) and NoSQL (Elasticsearch, MongoDB, DynamoDB) — powered by dockit and sqlkit desktop apps
The npm package @geek-fun/data-studio-mcp receives a total of 832 weekly downloads. As such, @geek-fun/data-studio-mcp popularity was classified as not popular.
We found that @geek-fun/data-studio-mcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

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.

Research
/Security News
The campaign amassed more than 75,000 installs by targeting Russian-speaking users seeking access to blocked services.

Company News
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.