
Database Connections
Connects to SQLite, PostgreSQL, SQL Server, and MongoDB databases through a unified TypeScript interface. Supports both server-sent events and stdio communication modes for flexible integration.
Provides a unified TypeScript-based database server for seamlessly connecting to SQLite, PostgreSQL, SQL Server, and MongoDB, enabling flexible database interactions through server-sent events and standard I/O communication modes.
What it does
- Connect to SQLite databases
- Query PostgreSQL databases
- Execute SQL Server commands
- Interact with MongoDB collections
- Run in SSE or stdio communication modes
- Configure custom ports for server mode
Best for
About Database Connections
Database Connections is a community-built MCP server published by cuongtl1992 that provides AI assistants with tools and capabilities via the Model Context Protocol. Database Connections offers a TypeScript-based server for seamless connections to SQLite, PostgreSQL, SQL Server, and Mo It is categorized under databases.
How to install
You can install Database Connections in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
License
Database Connections is released under the MIT license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
MCP Database Server
A Model Context Protocol (MCP) implementation for connecting to and working with various database systems.
Supported Databases
- SQLite
- PostgreSQL
- Microsoft SQL Server
- MongoDB
Installation
npm install -g mcp-dbs
Usage
The MCP Database Server can be used in two modes:
SSE Mode (Default)
By default, the server runs in SSE (Server-Sent Events) mode on port 3001:
npx mcp-dbs
This will start an HTTP server with an SSE endpoint at http://localhost:3001/mcp.
Custom Port
You can specify a custom port using the --port option:
npx mcp-dbs --port 8080
STDIO Mode
For tools that communicate over standard input/output, you can use the --stdio option:
npx mcp-dbs --stdio
Claude Desktop Integration
You can integrate mcp-dbs with Claude Desktop by adding it to your Claude configuration file.
Configuration Steps
- Open or create your Claude Desktop configuration file
- Add the mcp-dbs configuration to the
mcpServerssection:
{
"mcpServers": {
"mcp-dbs": {
"command": "node",
"args": [
"/path/to/your/mcp-dbs/dist/cli.js",
"--stdio"
],
"env": {
"MCP_MONGODB_URI": "mongodb://localhost:27017",
"MCP_MONGODB_DATABASE": "your-database-name"
}
}
}
}
Replace the environment variables with your own database connection details.
Notes
- The
commandshould benode - In
args, provide the absolute path to the cli.js file in your mcp-dbs installation - Configure the appropriate environment variables for your database type (see the environment variables section below)
- You can use environment variables for any of the supported databases (SQLite, PostgreSQL, SQL Server, or MongoDB)
Using with Claude
Once configured, Claude will be able to access your database using the MCP tools described below. You can ask Claude to:
- Connect to your database
- Execute queries and get results
- Explore your database schema
- Work with tables and data
Tools
- connect-database: Connect to a database
- disconnect-database: Disconnect from a database
- execute-query: Execute a query and return results
- execute-update: Execute a query without returning results
Resources
- database-schema: Get the full database schema
- table-schema: Get the schema for a specific table
- tables-list: Get a list of all tables
Using environment variables for configuration
You can configure your database connections using environment variables:
SQLite
# Set these environment variables before connecting
export MCP_SQLITE_FILENAME="path/to/database.db"
export MCP_SQLITE_CREATE_IF_NOT_EXISTS="true"
PostgreSQL
# Set these environment variables before connecting
export MCP_POSTGRES_HOST="your-postgres-host"
export MCP_POSTGRES_PORT="5432"
export MCP_POSTGRES_DATABASE="your-database-name"
export MCP_POSTGRES_USER="your-username"
export MCP_POSTGRES_PASSWORD="your-password"
export MCP_POSTGRES_SSL="false"
SQL Server
# Set these environment variables before connecting
export MCP_MSSQL_SERVER="your-server-address"
export MCP_MSSQL_PORT="1433"
export MCP_MSSQL_DATABASE="your-database-name"
export MCP_MSSQL_USER="your-username"
export MCP_MSSQL_PASSWORD="your-password"
export MCP_MSSQL_ENCRYPT="true"
export MCP_MSSQL_TRUST_SERVER_CERTIFICATE="true"
MongoDB
# Set these environment variables before connecting
export MCP_MONGODB_URI="mongodb://localhost:27017"
export MCP_MONGODB_DATABASE="your-database-name"
export MCP_MONGODB_MAX_POOL_SIZE="10"
export MCP_MONGODB_USE_UNIFIED_TOPOLOGY="true"
These environment variables will take precedence over any configuration passed to the connect-database tool.
MCP Tools
The server exposes the following MCP tools:
connect-database
Connect to a database.
Parameters:
connectionId: A unique identifier for the connectiontype: Database type (sqlite,postgres,mssql, ormongodb)
Example for SQLite:
{
"connectionId": "my-sqlite-db",
"type": "sqlite"
}
Example for PostgreSQL:
{
"connectionId": "my-postgres-db",
"type": "postgres"
}
Example for SQL Server:
{
"connectionId": "my-mssql-db",
"type": "mssql"
}
Example for MongoDB:
{
"connectionId": "my-mongodb-db",
"type": "mongodb"
}
disconnect-database
Disconnect from a database.
Parameters:
connectionId: The connection ID to disconnect
execute-query
Execute a query that returns results.
Parameters:
connectionId: The connection IDquery: SQL query or MongoDB aggregation pipeline (as JSON string)params: (Optional) Array of parameters for the query. For MongoDB, the first parameter is the collection name.
Example for SQL:
{
"connectionId": "my-postgres-db",
"query": "SELECT * FROM users WHERE age > $1",
"params": [21]
}
Example for MongoDB:
{
"connectionId": "my-mongodb-db",
"query": "[{\"$match\": {\"age\": {\"$gt\": 21}}}, {\"$sort\": {\"name\": 1}}]",
"params": ["users"]
}
Example for MongoDB (new format with embedded collection):
{
"connectionId": "my-mongodb-db",
"query": "{\"collection\": \"users\", \"pipeline\": [{\"$match\": {\"age\": {\"$gt\": 21}}}, {\"$sort\": {\"name\": 1}}]}"
}
Example for MongoDB (shell syntax):
{
"connectionId": "my-mongodb-db",
"query": "db.getCollection('users').find({\"age\": {\"$gt\": 21}})"
}
Example for MongoDB (direct collection reference shell syntax):
{
"connectionId": "my-mongodb-db",
"query": "db.users.find({\"age\": {\"$gt\": 21}})"
}
Example for MongoDB (raw command):
{
"connectionId": "my-mongodb-db",
"query": "{\"find\": \"users\", \"filter\": {\"age\": {\"$gt\": 21}}}"
}
execute-update
Execute a query that doesn't return results (INSERT, UPDATE, DELETE).
Parameters:
connectionId: The connection IDquery: SQL query or MongoDB command (as JSON string)params: (Optional) Array of parameters for the query. For MongoDB, the first parameter is the collection name.
Example for SQL:
{
"connectionId": "my-postgres-db",
"query": "INSERT INTO users (name, age) VALUES ($1, $2)",
"params": ["John Doe", 30]
}
Example for MongoDB:
{
"connectionId": "my-mongodb-db",
"query": "{\"insertOne\": {\"name\": \"John Doe\", \"age\": 30}}",
"params": ["users"]
}
Example for MongoDB (new format with embedded collection):
{
"connectionId": "my-mongodb-db",
"query": "{\"collection\": \"users\", \"operation\": {\"insertOne\": {\"name\": \"John Doe\", \"age\": 30}}}"
}
Example for MongoDB (shell syntax):
{
"connectionId": "my-mongodb-db",
"query": "db.getCollection('users').insertOne({\"name\": \"John Doe\", \"age\": 30})"
}
Example for MongoDB (direct collection reference shell syntax):
{
"connectionId": "my-mongodb-db",
"query": "db.users.insertOne({\"name\": \"John Doe\", \"age\": 30})"
}
Example for MongoDB (raw command):
{
"connectionId": "my-mongodb-db",
"query": "{\"insert\": \"users\", \"documents\": [{\"name\": \"John Doe\", \"age\": 30}]}"
}
MCP Resources
The server exposes the following MCP resources:
Database Schema
URI: database://{connectionId}/schema
Returns schema information about the database, including all tables and their columns.
Table Schema
URI: database://{connectionId}/tables/{tableName}
Returns schema information about a specific table, including its columns.
Tables List
URI: database://{connectionId}/tables
Returns a list of all tables in the database.
Development
Testing
Run the tests:
npm test
Support the Project
If you find this project helpful, consider buying me a coffee!
Scan the QR code above or click here to support the development of this project.
License
MIT
Alternatives
Related Skills
Browse all skillsConduct comprehensive, systematic literature reviews using multiple academic databases (PubMed, arXiv, bioRxiv, Semantic Scholar, etc.). This skill should be used when conducting systematic literature reviews, meta-analyses, research synthesis, or comprehensive literature searches across biomedical, scientific, and technical domains. Creates professionally formatted markdown documents and PDFs with verified citations in multiple citation styles (APA, Nature, Vancouver, etc.).
Comprehensive guide for PostgreSQL psql - the interactive terminal client for PostgreSQL. Use when connecting to PostgreSQL databases, executing queries, managing databases/tables, configuring connection options, formatting output, writing scripts, managing transactions, and using advanced psql features for database administration and development.
Notion workspace integration. Use when user wants to read/write Notion pages, search databases, create tasks, or sync content with Notion.
Transforms conversations and discussions into structured documentation pages in Notion. Captures insights, decisions, and knowledge from chat context, formats appropriately, and saves to wikis or databases with proper organization and linking for easy discovery.
Autonomous biomedical AI agent framework for executing complex research tasks across genomics, drug discovery, molecular biology, and clinical analysis. Use this skill when conducting multi-step biomedical research including CRISPR screening design, single-cell RNA-seq analysis, ADMET prediction, GWAS interpretation, rare disease diagnosis, or lab protocol optimization. Leverages LLM reasoning with code execution and integrated biomedical databases.
This skill should be used when the user requests to generate, create, or add Row-Level Security (RLS) policies for Supabase databases in multi-tenant or role-based applications. It generates comprehensive RLS policies using auth.uid(), auth.jwt() claims, and role-based access patterns. Trigger terms include RLS, row level security, supabase security, generate policies, auth policies, multi-tenant security, role-based access, database security policies, supabase permissions, tenant isolation.
