← MCP servers · tabularisdb

Tabularis

BLOCKgrade F · trust 48/100

Open-source desktop SQL workspace with 3 built-in database drivers and 16 shipped plugins, including SQL Server, DuckDB, ClickHouse and Redis. Built-in MCP server for Claude, Cursor and Devin, SQL notebooks and visual EXPLAIN.

ai agentai assistantcross platformdatabase clientdatabase guidatabase tooler diagrammariadb

Overview

From the repository's own README, as read at the audited commit.

<div align="center">  <img src="public/logo-sm.png" width="120" height="120" /></div># tabularis<p align="center">  <strong>Tabularis is an open-source desktop SQL workspace with 3 built-in database drivers and 16 shipped plugins, including DuckDB, ClickHouse, Redis and Firestore.<br />  Its built-in MCP server lets Claude, Cursor and Devin (formerly Windsurf) read your schema and run queries in the same app you already use.</strong></p><p align="center">  <strong>README:</strong>  <a href="./README.md">English</a> |  <a href="./README.it.md">Italiano</a> |  <a href="./README.es.md">Español</a> |  <a href="./README.zh-CN.md">中文</a> |  <a href="./README.fr.md">Français</a> |  <a href="./README.de.md">Deutsch</a> |  <a href="./README.ja.md">日本語</a> |  <a href="./README.ru.md">Русский</a> |  <a href="./README.tl.md">Tagalog</a> |  <a href="./README.ko.md">한국어</a> |  <a href="./README.pt-BR.md">Português (Brasil)</a></p><p align="center">  ![](https://img.shields.io/github/release/TabularisDB/tabularis.svg?style=flat)![](https://img.shields.io/github/stars/TabularisDB/tabularis?style=flat)![](https://img.shields.io/github/downloads/TabularisDB/tabularis/total.svg?style=flat)![Build & Release](https://github.com/TabularisDB/tabularis/workflows/Release/badge.svg)[![Discord](https://img.shields.io/discord/1502944695808950282?color=5865F2&logo=discord&logoColor=white)](https://discord.com/invite/K2hmhfHRSt)[![Gitster](https://gitster.dev/api/repositories/badge/cmlko1jr60005ne4yh7i7oy3e)](https://gitster.dev/repo/TabularisDB/tabularis)<br /><br /><a href="https://vercel.com/open-source-program">  <img alt="Vercel OSS Program" src="https://vercel.com/oss/program-badge-2026.svg" /></a></p><p align="center">  <a href="https://snapcraft.io/tabularis"><img src="https://img.shields.io/badge/snap-tabularis-blue?logo=snapcraft" alt="Snap Store" /></a>  <a href="https://flatpark.org/apps/dev.tabularis.Tabularis/"><img src="https://img.shields.io/badge/flatpak-tabularis-4A90D9?logo=fl

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code
claude mcp add plugin-api -- npx -y @tabularis/[email protected]
claude-desktop
{
  "mcpServers": {
    "plugin-api": {
      "command": "npx",
      "args": [
        "-y",
        "@tabularis/[email protected]"
      ]
    }
  }
}

Exposed tools (2) 2 read · 0 write · 0 destructive

ToolRiskDescription
Firestoreread
dreadx

Details

Source
tabularisdb/tabularis
npm
@tabularis/plugin-api@0.1.2
License
Apache-2.0
Stars
4,981 · pushed 0d ago

Trust audit

Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryWARN
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (5 observation(s))
Network
declared (6 observation(s))
Shell
declared (3 observation(s))
Dependencies
not all pinned
Secrets in source
found

Findings (25)

HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/contexts/PluginSlotProvider.tsx:100
const fn = new Function(
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/utils/pluginExplainLoader.ts:57
const evaluate = new Function(
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src-tauri/src/commands.rs:3257
ssh_key_file: Some("/home/user/.ssh/id_rsa".to_string()),
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src-tauri/src/connection_import/convert.rs:318
private_key_path: Some("~/.ssh/id_rsa".into()),
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src-tauri/src/connection_import/importer_tests.rs:203
<key>sshKeyLocation</key><string>/home/u/.ssh/id_ed25519</string>
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src-tauri/src/connection_import/importer_tests.rs:244
.ends_with("id_ed25519"));
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src-tauri/src/connection_import/mod.rs:142
format!("~/.ssh/{}", trimmed)
Why it matters. touches a credential store
HIGHHard-coded secrets · secret.db_uri · CWE-798, CWE-321
src-tauri/src/connection_import/datagrip/jdbc.rs:217
let e = parse("jdbc:mysql://user:pw@host:3306/db?useSSL=true", "mysql").unwrap();
MEDIUMInventory / provenance · inv.binary · CWE-1104
src/utils/notebookUndo.ts
notebookUndo.ts
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInventory / provenance · inv.symlink · CWE-1104
.agents/skills
.agents/skills
Why it matters. link not followed
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
src-tauri/src/plugins/compat.rs:441
"http://127.0.0.1:0",
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
src-tauri/src/plugins/compat.rs:453
readd_unlisted_installed(&mut reg, "http://127.0.0.1:0", &["my-local-plugin".to_string()])
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
src-tauri/src/plugins/compat.rs:501
let err = resolve_registry("http://127.0.0.1:0/registry.json", LEGACY_REGISTRY_URL, &[])
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
src-tauri/src/proxy/resolve/tests.rs:84
"http://127.0.0.1:7890"
MEDIUMHard-coded secrets · secret.db_uri · CWE-798, CWE-321
tests/utils/connectionStringParser.test.ts:241
"mysql://user%40domain:password%23123@host/db",
LOWInventory / provenance · inv.hidden_file · CWE-1104
.node-version
.node-version
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
packages/create-plugin/templates/rust-driver/.tabularium.tmpl
.tabularium.tmpl
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.symlink · CWE-1104
CLAUDE.md
CLAUDE.md
Why it matters. link not followed
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/explain/tests/parsers/mysql.test.ts:2
import type { ExplainNode } from "../../src/types";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/explain/tests/parsers/mysql.test.ts:8
} from "../../src/parsers/mysql";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/explain/tests/parsers/mysql.test.ts:9
import { NodeIdAllocator } from "../../src/parsers/node";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/explain/tests/parsers/postgres.test.ts:5
} from "../../src/parsers/postgres";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/explain/tests/parsers/postgres.test.ts:6
import { detectFormat, parseExplain } from "../../src/parsers/source";
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
src/utils/aiActivity.ts:307
const binary = atob(padded);
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
src/utils/blob.ts:325
const binaryString = atob(payload);

Gates applied: no_behavioural_pass.

Audited 2026-09-18 · audit v0.4.0 · source sha 398f7acb5774 · full audit: observations/trust-audit/mcp-server/tabularisdb__tabularis.json · Report an issue or request a re-scan

Audit history

DateSourceVerdictGradeScoreChange
2026-09-18398f7acb5774BLOCKF48first audit

Alternatives

Other servers in the same categories, safer ones first.

Questions

What is the Tabularis MCP server?

Open-source desktop SQL workspace with 3 built-in database drivers and 16 shipped plugins, including SQL Server, DuckDB, ClickHouse and Redis. Built-in MCP server for Claude, Cursor and Devin, SQL notebooks and visual EXPLAIN.

What tools does Tabularis expose?

2 in total: 2 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is Tabularis safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (48/100) and found 8 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What credentials does Tabularis need?

No credential environment variables were found in its source, so it appears to need none.

How current is this page?

The grade is for one exact copy of the source (398f7acb5774), read on 2026-09-18. The repository is watched and re-audited when it changes.

Provenance: OBSERVED · read 2026-09-18 · job trust-audit-2026-09-18