1. Conduid
  2. Data
  3. DatabaseMcp
MCP server · Data

DatabaseMcp

Read-only database query tool for AI agents and CLI users. Works as both a CLI tool and MCP server.

Unclaimed data
34Low

Scored 4 months ago · breakdown

About DatabaseMcp

DatabaseMcp is an MCP server in the Data category: read-only database query tool for AI agents and CLI users. Works as both a CLI tool and MCP server. It has been installed 0 times through Conduid.

Install

Clone
git clone https://github.com/AdamTovatt/database-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

Ask AI about DatabaseMcp

Powered by Claude · Grounded in docs

I know everything about DatabaseMcp. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ·README presentNot checked yet.
  • ·License declaredNot checked yet.
  • ·Tests presentNot checked yet.
  • ·Dependencies pinnedNot checked yet.
  • ·No dynamic code executionNot checked yet.
  • ·Scoped permissionsNot checked yet.

README

DatabaseMcp

Tests NuGet Version

A read-only database query tool for AI agents and CLI users. Works as both a CLI tool and an MCP (Model Context Protocol) server. Designed to be safe for production databases — all connections are enforced read-only at the database session level.

Installation

Install script (macOS / Linux)

curl -fsSL https://raw.githubusercontent.com/AdamTovatt/database-mcp/master/install-db.sh | bash

This detects your platform, downloads the latest release, and installs the db binary to /usr/local/bin. Requires the GitHub CLI (gh) to be installed and authenticated. Run the same command again to update.

Updaemon (Linux)

If you use updaemon (v0.8.0+) for managing tools:

updaemon new db --from github --remote AdamTovatt/database-mcp/db-linux-arm64.zip --type cli
updaemon set-exec-name db DatabaseMcp.Cli
updaemon init db

Replace db-linux-arm64.zip with db-linux-x64.zip on x86_64 systems. Future updates are handled by updaemon update.

.NET tool

dotnet tool install --global DatabaseMcp

After installation, the db command will be available globally.

To update:

dotnet tool update --global DatabaseMcp

To uninstall:

dotnet tool uninstall --global DatabaseMcp

To register it as an MCP tool in Claude Code:

claude mcp add database -- db --mcp

For Cursor or other MCP clients, add this to your MCP configuration:

{
  "mcpServers": {
    "database": {
      "command": "db",
      "args": ["--mcp"]
    }
  }
}

Usage

db add <name> <connection-string>   # Save a named database connection
db remove <name>                    # Remove a saved connection
db list                             # List all saved connections
db test [name]                      # Test a database connection
db schema [name]                    # Show database schema
db query [name] <sql>               # Execute a read-only SQL query
db help                             # Show help information

Connection String Formats

All common PostgreSQL formats are supported:

# URI format
db add production "postgres://user:pass@host:5432/database"
db add staging "postgresql://user:pass@host/database?sslmode=require"

# Standard ADO.NET format
db add local "Host=localhost;Port=5432;Database=mydb;Username=user;Password=pass"

The provider type is auto-detected from the connection string format.

Examples

# Add connections
db add production "postgres://admin:secret@db.prod.com:5432/myapp"
db add local "Host=localhost;Database=myapp_dev;Username=postgres;Password=postgres"

# List saved connections (never shows passwords)
db list

# Test that a connection works
db test production

# View the database schema
db schema production

# Run queries (read-only enforced)
db query production "SELECT count(*) FROM users"
db query local "SELECT * FROM orders WHERE created_at > '2025-01-01' LIMIT 10"

# If you omit the connection name, you'll be prompted to pick one
db schema
db test

Behavior

Read-only enforcement

All database connections execute SET default_transaction_read_only = on at the session level immediately after connecting. This means PostgreSQL itself rejects any INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, or other write operations. This cannot be bypassed by the SQL query — it is enforced by the database engine.

Statement timeout

A 30-second statement timeout is applied to all queries to prevent runaway queries from blocking the connection.

Row limit

Query results are capped at 1000 rows. If a query returns more, the output indicates the results were truncated.

Encrypted connection storage

Connection strings are stored encrypted (AES-256) in ~/.config/database-mcp/connections.json. Display metadata (host, database, username) is stored in plaintext alongside the encrypted connection string so that db list and MCP tools can show connection info without decrypting.

Note on encryption: The encryption key is derived from a value compiled into the binary. This is not a cryptographic security measure — it is accident prevention. It protects against LLMs reading plaintext credentials from the config file, automated credential scanners, and casual file exposure. For production secrets management, use a proper secrets vault. Anyone with access to the source code could derive the key.

Config file permissions

On Unix systems, the config file is created with permissions 600 (owner read/write only).

Provider abstraction

The tool is designed to support multiple database providers. Currently supported:

  • PostgreSQL via Npgsql

The provider type is stored per connection, so adding support for additional databases (SQLite, SQL Server, etc.) requires only a new provider implementation.

As MCP Server

db --mcp

When running as an MCP server, the following tools are available:

  • db_list_connections() — List saved connections with safe metadata (never exposes passwords or connection strings)
  • db_schema(connectionName) — Get the full database schema (tables, columns, types, primary keys, foreign keys)
  • db_query(connectionName, sql) — Execute a read-only SQL query (max 1000 rows)

Development

git clone <repository-url>
cd database-mcp
dotnet build DatabaseMcp.slnx
dotnet test DatabaseMcp.slnx

To run as MCP server during development:

dotnet run --project DatabaseMcp.Cli/DatabaseMcp.Cli.csproj -- --mcp

To package:

dotnet pack DatabaseMcp.Cli/DatabaseMcp.Cli.csproj --configuration Release

License

MIT License

README mirrored from the source repository 4 months ago. The original is authoritative.

Questions

About DatabaseMcp

How do I install DatabaseMcp?

Run git clone https://github.com/AdamTovatt/database-mcp, then add the server to your MCP client's configuration. Conduid has recorded 0 installs, so the command is known to work with current clients.

Is DatabaseMcp safe to use with an AI agent?

Its trust score is 34 out of 100 (low). Conduid hasn't run static security checks on this repository yet, so review the source yourself before granting it credentials. It has no ConduID identity yet, so agent calls to it are not receipted.

Is DatabaseMcp still maintained?

Conduid hasn't recorded a commit date for this repository yet. Check the repository directly for recent activity.