Show HN: Open-source database CLI that doubles as an MCP server for agents

hackernews | | 📰 뉴스
#ai agents #ai 모델 #claude #claude code #command r #copilot #cursor #security
원문 출처: hackernews · Genesis Park에서 요약 및 분석

요약

AI 개발 도구들이 셸 명령어 실행이나 API 호출을 자율적으로 수행하며 자격증명 탈취 같은 보안 사고를 일으키는 문제를 해결하기 위해 Burrow가 출시되었습니다. 이 도구는 AI 에이전트와 머신 사이에서 작동하여 일반 언어로 정의된 정책을 통해 위험한 도구 호출을 실행 차단하거나 경고를 발생시킵니다. Claude Code나 Cursor 등 다양한 도구와 호환되며, CLI와 SDK로 1분 내에 설치 가능하고 개인용 무료 티어를 제공합니다.

본문

An interactive, production-ready command-line interface for WhoDB with a Claude Code-like experience. - Interactive TUI - Terminal UI built with Bubble Tea - Multi-Database Support - PostgreSQL, MySQL/MariaDB, SQLite, MongoDB, Redis, ClickHouse, ElasticSearch - Table Browser - Navigate schemas and tables with visual grid layout - WHERE Builder - Build AND-based filters for table browsing - SQL Editor - Multi-line editor with schema-aware autocomplete - AI Chat - Optional AI-assisted querying with consent gate (requires configured provider) - Responsive Data Viewer - Paginated results with horizontal column scrolling - Column Selection - Choose which columns are visible in results - Export Capabilities - Export to CSV and Excel formats - Schema Diff - Compare schema metadata across environments in the CLI and TUI - Cloud Discovery - Inspect configured cloud providers and discovered cloud-managed resources from the CLI - Discovered Connect - Prefill connect/save flows directly from discovered cloud resources - ERD Graph Output - Inspect backend graph metadata from the CLI or TUI - Explain Plans - Run database-native EXPLAIN from the CLI or TUI - Backend Query Suggestions - Shared onboarding suggestions in the CLI and TUI editor - Bookmarks and Profiles - Shared saved queries and connection profiles across CLI and TUI - Workspace Restore - Resume your last reconnectable TUI session on startup - Query History - Persistent history with re-execution - Shell Completion - Bash/Zsh/Fish install plus PowerShell script generation - Programmatic Mode - JSON/NDJSON/CSV/plain output plus streamed query/export paths for scripting and automation - MCP Server - Model Context Protocol server for AI assistants (Claude, Cursor, etc.) macOS / Linux: curl -fsSL https://raw.githubusercontent.com/clidey/whodb/main/cli/install/install.sh | bash Windows (PowerShell): irm https://raw.githubusercontent.com/clidey/whodb/main/cli/install/install.ps1 | iex The native installer: - Detects your OS and architecture - Downloads the correct binary from GitHub releases - Installs to ~/.local/bin (macOS/Linux) or%LOCALAPPDATA%\WhoDB\bin (Windows) - Adds to PATH if needed To install a specific version: # macOS/Linux curl -fsSL https://raw.githubusercontent.com/clidey/whodb/main/cli/install/install.sh | bash -s v0.62.0 # Windows $env:WHODB_VERSION = "v0.62.0"; irm https://raw.githubusercontent.com/clidey/whodb/main/cli/install/install.ps1 | iex brew install whodb-cli npm install -g @clidey/whodb-cli Or with npx (no install): npx @clidey/whodb-cli Requires Go 1.21+: git clone https://github.com/clidey/whodb.git cd whodb/cli go build -o whodb-cli . Or using the Makefile: cd cli make build make install # installs to /usr/local/bin # Build the Docker image (from repo root) docker build -t whodb-cli:latest -f cli/Dockerfile . # Or pull pre-built docker pull clidey/whodb-cli:latest whodb-cli --version whodb-cli --help If you omit required flags, the interactive connection form opens: whodb-cli connect whodb-cli connect \ --type postgres \ --host localhost \ --port 5432 \ --user postgres \ --database mydb \ --name my-postgres printf "%s\n" "$PGPASSWORD" | whodb-cli connect \ --type postgres \ --host localhost \ --port 5432 \ --user postgres \ --database mydb \ --name my-postgres \ --password whodb-cli connect \ --type postgres \ --host localhost \ --port 5432 \ --user postgres \ --database mydb \ --ssl-mode verify-ca \ --ssl-ca ./ca.pem # Open the TUI form prefilled from discovery whodb-cli connect --discovered aws-prod-us-west-2/prod-db # One-shot connect when you already know the missing credentials whodb-cli connect \ --discovered aws-prod-us-west-2/prod-db \ --user postgres \ --database app whodb-cli connect \ --type mysql \ --host localhost \ --port 3306 \ --user root \ --database mydb \ --name my-mysql whodb-cli connect \ --type sqlite \ --user sqlite \ --database /path/to/database.db \ --name my-sqlite whodb-cli connect \ --type mongodb \ --host localhost \ --port 27017 \ --user admin \ --database mydb \ --name my-mongo Commands that accept --connection can also use environment profiles, for example WHODB_POSTGRES='[{"alias":"prod","host":"localhost","user":"user","password":"pass","database":"mydb","port":"5432"}]' or WHODB_MYSQL_1='{"alias":"dev","host":"localhost","user":"user","password":"pass","database":"devdb","port":"3306"}' . Each object supports alias (connection name), host , user , password , database , port , and optional config for advanced settings. port stays at the root level; the CLI also forwards it as the Port advanced key when building plugin credentials, so you do not need to include Port in config . Advanced config keys are plugin-specific; see core/src/plugins/*/db.go for the keys that are read. # Array format (multiple profiles for a database type) export WHODB_POSTGRES='[{"alias":"prod","host":"localhost","user":"user","password":"pass","database":"mydb","port":"5432"}]' # Numbered format (one profile per variable) export WHODB_MYSQL_1='{"alias":"dev","host":"localhost","user":"user","password":"pass","database":"devdb","port":"3306"}' # Start the TUI (default behavior) whodb-cli whodb-cli query "SELECT * FROM users LIMIT 10" --connection my-postgres Running whodb-cli without arguments starts the interactive TUI. whodb-cli [flags] Flags: --debug : Enable debug mode--no-color : Disable colored output Connect to a database and optionally save the connection. If required flags are missing, the interactive connection form opens. whodb-cli connect [flags] Flags: --type : Database type (postgres, mysql, sqlite, mongodb, redis, clickhouse, elasticsearch, mariadb)--host : Database host (default: localhost)--port : Database port (default varies by type)--user : Username--database : Database name--schema : Preferred schema (optional)--name : Connection name (saves for later use)--password : Read password from stdin when not using a TTY (pipe a single line)--ssl-mode : SSL mode for the selected database type--ssl-ca : Path to a CA certificate PEM file--ssl-cert : Path to a client certificate PEM file--ssl-key : Path to a client private key PEM file--ssl-server-name : Override server name used for SSL hostname verification On a TTY, you will be prompted for the password with input hidden. Execute a SQL query directly. Use - to read SQL from stdin. whodb-cli query "SQL" [flags] Flags: --connection, -c : Connection name to use (optional; if omitted, the first available connection is used)--format, -f : Output format:auto ,table ,plain ,json ,ndjson ,csv --stream : Stream result rows incrementally (supported forplain ,json ,ndjson , andcsv )--quiet, -q : Suppress informational messages auto uses table output for terminals and plain output for pipes. ndjson writes one JSON object per result row. Show backend-generated query suggestions for a connection. whodb-cli suggestions --connection my-postgres whodb-cli suggestions --connection my-postgres --format json Flags: --connection, -c : Connection name to use--schema, -s : Schema to use for suggestion generation--format, -f : Output format:table ,plain ,json ,ndjson ,csv --quiet, -q : Suppress informational messages Generate or install shell completion scripts. # Show help whodb-cli completion # Print completion script to stdout whodb-cli completion bash whodb-cli completion zsh whodb-cli completion fish whodb-cli completion powershell # Install completion (auto-detects shell) whodb-cli completion install # Install for specific shell whodb-cli completion install bash # Uninstall completion whodb-cli completion uninstall Install paths (bash/zsh rc files updated automatically): - Bash: ~/.local/share/bash-completion/completions/whodb-cli - Zsh: ~/.zsh/completions/_whodb-cli - Fish: ~/.config/fish/completions/whodb-cli.fish - PowerShell: Manual install (see whodb-cli completion powershell ) These commands output structured data for scripting, automation, and AI integration. - Query and list commands such as query ,schemas ,tables ,columns ,connections list , andhistory list/search keep their existing raw JSON array output. - Action and analysis commands such as connections add/remove/test ,history clear ,audit ,mock-data ,diff ,erd ,bookmarks save/delete , andprofiles save/delete return a JSON envelope withcommand ,success , anddata when you pass--format json . query --stream supportsplain ,json ,ndjson , andcsv .export --stream supports CSV only. Run EXPLAIN using the current database plugin's native explain prefix. whodb-cli explain --connection my-postgres "SELECT * FROM users" whodb-cli explain --connection my-postgres --format json "SELECT * FROM users" Flags: --connection, -c : Connection name to use--format, -f : Output format:auto ,table ,plain ,json ,ndjson ,csv --quiet, -q : Suppress informational messages List database schemas. whodb-cli schemas --connection my-postgres --format json Flags: --connection, -c : Connection name (optional; if omitted, the first available connection is used)--format, -f : Output format:auto ,table ,plain ,json ,csv --quiet, -q : Suppress informational messages List tables in a schema. whodb-cli tables --connection my-postgres --schema public --format json Flags: --connection, -c : Connection name (optional; if omitted, the first available connection is used)--schema, -s : Schema name (default varies by database)--format, -f : Output format:auto ,table ,plain ,json ,csv --quiet, -q : Suppress informational messages Describe table columns. whodb-cli columns --connection my-postgres --table users --format json Flags: --connection, -c : Connection name (optional; if omitted, the first available connection is used)--table, -t : Table name (required)--schema, -s : Schema name--format, -f : Output format:auto ,table ,plain ,json ,csv --quiet, -q : Suppress informational messages Manage saved connections. # List connections whodb-cli connections list --format json # Test a connection whodb-cli connections test my-postgres --format json # Add a connection whodb-cli connections add --name prod --type postgres --host db.example.com --port 5432 --user app --database mydb --format json # Remove a connection whodb-cli connections remove prod --format json Flags (applies to all subcommands): --format, -f : Output format:auto ,table ,plain ,json ,csv --quiet, -q : Suppress informational messages Inspect configured cloud providers and discovered resources. Cloud provider support follows the shared provider flags: WHODB_ENABLE_AWS_PROVIDER=true WHODB_ENABLE_AZURE_PROVIDER=true WHODB_ENABLE_GCP_PROVIDER=true # List configured providers whodb-cli cloud providers list # Test or refresh providers whodb-cli cloud providers test aws-prod-us-west-2 whodb-cli cloud providers refresh --all # List discovered resources whodb-cli cloud connections list whodb-cli cloud connections list --provider aws-prod-us-west-2 # Use a discovered resource in the normal connect/save flows whodb-cli connect --discovered aws-prod-us-west-2/prod-db whodb-cli connections add --from-discovered aws-prod-us-west-2/prod-db --user alice --database app Compare schema metadata between two connections. By default, diff uses each connection's configured schema when one exists. For database-scoped connections such as MySQL and MariaDB, it uses the connection's configured database when no schema flag is provided. # Compare two connections using their default schemas whodb-cli diff --from staging --to prod # Compare the same schema on both sides whodb-cli diff --from staging --to prod --schema public # Compare Postgres to MySQL using each connection's configured namespace whodb-cli diff --from dev-e2e_postgres-1 --to dev-e2e_mysql-1 # Emit machine-readable JSON whodb-cli diff --from staging --to prod --format json Flags: --from : Source connection name (required)--to : Target connection name (required)--schema : Schema name to compare on both sides--from-schema : Source schema name--to-schema : Target schema name--format, -f : Output format:table orjson --quiet, -q : Suppress informational messages Render the same backend graph metadata used by the TUI ER diagram view. whodb-cli erd --connection my-postgres whodb-cli erd --connection my-postgres --schema public --format json Flags: --connection, -c : Connection name to use--schema, -s : Schema name--format, -f : Output format:text orjson --quiet, -q : Suppress informational messages Export table data or query results to file. # Export to CSV whodb-cli export --connection my-postgres --table users --format csv --output users.csv # Export to Excel whodb-cli export --connection my-postgres --table orders --format excel --output orders.xlsx # Export query results whodb-cli export --connection my-postgres --query "SELECT * FROM users" --output users.csv Flags: --connection, -c : Connection name (optional; if omitted, the first available connection is used)--table, -t : Table name (required unless using--query )--query, -Q : SQL query to export results from (use instead of--table )--schema, -s : Schema name--format, -f : Export format:csv orexcel (auto-detected from filename if omitted)--output, -o : Output file path (required)--delimiter, -d : CSV delimiter (default: comma)--stream : Stream CSV exports incrementally to the output file--quiet, -q : Suppress informational messages Access query history. # List recent queries whodb-cli history list --limit 20 --format json # Search history whodb-cli history search "SELECT.*users" # Clear history whodb-cli history clear --format json Flags: --limit, -l : Limit number of results (0 = no limit)--format, -f : Output format:auto ,table ,plain ,json ,csv --quiet, -q : Suppress informational messages Manage the same saved query bookmarks used by the TUI editor. whodb-cli bookmarks list whodb-cli bookmarks save recent-users "SELECT * FROM users ORDER BY id DESC" whodb-cli bookmarks load recent-users whodb-cli bookmarks delete recent-users --format json Manage the same saved connection profiles used by the TUI. whodb-cli profiles list whodb-cli profiles save production --connection prod --theme Dracula --page-size 100 --timeout 30 whodb-cli profiles show production --format json whodb-cli profiles delete production --format json whodb-cli --profile production WhoDB can run as an MCP (Model Context Protocol) server, enabling AI assistants like Claude, Cursor, and others to query your databases. # Default: stdio transport (for Claude Desktop, Claude Code, etc.) whodb-cli mcp serve # HTTP transport (for cloud deployments, Docker, Kubernetes) whodb-cli mcp serve --transport=http --port=3000 This starts an MCP server that exposes these tools: | Tool | Description | |---|---| whodb_connections | List available database connections | whodb_schemas | List schemas in a database (set include_tables for tables too) | whodb_tables | List tables in a schema (set include_columns for column details too) | whodb_columns | Describe table columns | whodb_query | Execute SQL queries (results include column_types ) | whodb_confirm | Confirm pending writ

Genesis Park 편집팀이 AI를 활용하여 작성한 분석입니다. 원문은 출처 링크를 통해 확인할 수 있습니다.

공유

관련 저널 읽기

전체 보기 →