MCP Universal DB Client
Execute SQL queries across multiple database types through a secure MCP server interface.
Connect to multiple database types: PostgreSQL, MySQL, and SQLite using connection strings with unique connection IDs
Manage database connections: Create, list, disconnect individual connections, or disconnect all connections with built-in connection pooling
Execute read-only queries: Run
SELECT,SHOW,DESCRIBE, andEXPLAINSQL queries with validation to prevent destructive operationsExecute data-modifying queries: Perform
INSERT,UPDATE,DELETE,CREATE,ALTER,DROP,TRUNCATE,REPLACE, andMERGEoperationsSecure operations: Designed to work within the Model Context Protocol framework for controlled database access
Enables connection to and querying of MySQL databases through SQL execution, with support for connection management and pooling.
Provides tools for connecting to and executing SQL queries on PostgreSQL databases, including connection pooling and concurrent connection management.
Allows interaction with SQLite databases through SQL query execution and connection management capabilities.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Universal DB Clientconnect to my production database and show me the users table schema"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Universal DB Client
๐ Execute SQL queries on any database through MCP
Model Context Protocol (MCP) server for connecting to and querying multiple databases (PostgreSQL, MySQL, SQLite).
Features
๐ Support for multiple database types (PostgreSQL, MySQL, SQLite)
๐ Manage multiple concurrent database connections
๐ Separate read and write operations for better security
๐ก๏ธ SQL query validation to prevent unintended destructive operations
๐พ Connection pooling and managementsal DB Client
Related MCP server: mcp-tools-sql
Supported Databases
PostgreSQL (
psql)MySQL (
mysql)SQLite (
sqlite)
Configuration
Add the server to your MCP settings configuration file:
{
"mcpServers": {
"universal-db-client": {
"command": "npx",
"args": ["-y", "@izumisy/mcp-universal-db-client"]
}
}
}Available Tools
Database Connection Management
connect_database
Connect to a database using a connection string.
Parameters:
name: Unique name for this connection (used as connection ID)dialect: Database type (psql,mysql, orsqlite)connectionString: Connection string for the database
Example:
{
"name": "my-postgres-db",
"dialect": "psql",
"connectionString": "postgresql://user:password@localhost:5432/mydb"
}list_connections
List all active database connections.
Returns: Array of active connections with their IDs, dialects, and connection times
disconnect_database
Disconnect a specific database connection.
Parameters:
connectionID: The connection ID to disconnect
disconnect_all
Disconnect all active database connections.
Query Execution
query_read - Read-Only Queries
Run SELECT and other read-only SQL queries safely.
Supported Operations:
SELECT- Query dataSHOW- Show database informationDESCRIBE/DESC- Describe table structureEXPLAIN- Explain query execution plan
Parameters:
connectionID: The connection ID (connection name)query: Array of SQL query strings (read-only operations only)
Example:
{
"connectionID": "my-postgres-db",
"query": [
"SELECT * FROM users WHERE id = 1",
"SELECT COUNT(*) FROM orders WHERE status = 'pending'"
]
}Security: This tool validates queries and rejects destructive operations, making it safe for read-only access. If a destructive query is detected, it returns an error message suggesting to use query_write instead.
query_write - Destructive Queries โ ๏ธ
Run INSERT, UPDATE, DELETE and other data-modifying queries.
Supported Operations:
INSERT- Insert new dataUPDATE- Update existing dataDELETE- Delete dataCREATE/ALTER/DROP- DDL operationsTRUNCATE- Truncate tableREPLACE/MERGE- Replace/merge data
Parameters:
connectionID: The connection ID (connection name)query: Array of SQL query strings (any operation)
Example:
{
"connectionID": "my-postgres-db",
"query": [
"INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')",
"UPDATE orders SET status = 'completed' WHERE id = 123"
]
}Security: Use with caution as this tool can modify data. Should be restricted to authorized users only.
License
MIT
Available Tools
5 toolsconnect_databaseConnect DatabaseC
Connect to a database using connection string
| Name | Required | Description | Default |
|---|---|---|---|
| connectionString | Yes | The database connection string. e.g., postgresql://user:password@localhost:5432/dbname | |
| dialect | Yes | The available database dialect (available: psql, mysql, sqlite) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool connects to a database but doesn't disclose behavioral traits like whether this establishes a persistent session, requires authentication, has rate limits, or what happens on failure (e.g., error handling). For a connection tool with zero annotation coverage, this is a significant gap in safety and operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and appropriately sized, with every part contributing to clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a database connection tool (which involves authentication, session management, and potential errors), the description is incomplete. No annotations exist to cover safety or behavioral aspects, and there's no output schema to explain return values (e.g., success status, connection ID). The description alone fails to provide enough context for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (connectionString and dialect) with descriptions and enum values. The description adds no additional meaning beyond implying the connectionString is used for connection, which is redundant with the schema. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Connect to a database') and resource ('database'), specifying it uses a connection string. It distinguishes from siblings like disconnect_database or list_connections by focusing on establishing a connection. However, it doesn't explicitly differentiate from run_query, which might also involve connection handling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like list_connections (which might show existing connections) or run_query (which might handle queries without explicit connection). It lacks context on prerequisites, such as whether this is needed before other operations, or exclusions for when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disconnect_allDisconnect AllB
Disconnect all active database connections
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the action but doesn't mention important behavioral aspects like whether this requires admin permissions, if it's reversible, what happens to in-progress transactions, or potential system impacts. For a potentially destructive operation with zero annotation coverage, this is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that communicates the core purpose without any wasted words. It's appropriately sized for a zero-parameter tool and gets straight to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a potentially destructive database operation with no annotations and no output schema, the description is insufficient. It doesn't explain what 'disconnect' means operationally, what gets returned (if anything), error conditions, or system impacts. Given the complexity and lack of structured data, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description appropriately doesn't discuss parameters since none exist, earning a baseline 4 for not adding unnecessary information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Disconnect all') and target ('active database connections'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from the sibling 'disconnect_database' tool, which might handle individual connections.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives like 'disconnect_database' or 'list_connections'. The description only states what it does, not when it's appropriate or what prerequisites might exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disconnect_databaseDisconnect DatabaseC
Disconnect from a database using connection ID
| Name | Required | Description | Default |
|---|---|---|---|
| connectionID | Yes | The connection ID to disconnect |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but provides minimal behavioral context. It states the action but doesn't disclose effects (e.g., whether disconnection is reversible, if it affects active queries, permissions required, or error handling). For a mutation tool with zero annotation coverage, this leaves critical gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It front-loads the core purpose ('Disconnect from a database') and adds necessary specificity ('using connection ID'), making it appropriately sized for this simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It lacks information on what happens after disconnection (e.g., success/failure response, side effects), error conditions, or how it integrates with sibling tools. This leaves the agent with insufficient context for reliable use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the parameter 'connectionID' fully documented in the schema. The description adds no additional meaning beyond restating that it uses a connection ID, so it meets the baseline of 3 where the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Disconnect from') and resource ('a database'), specifying it uses a connection ID. It distinguishes from 'disconnect_all' by focusing on a single connection, but doesn't explicitly differentiate from other siblings like 'list_connections' or 'run_query' beyond the obvious action difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., must be connected first), when to prefer 'disconnect_all', or how it relates to 'connect_database' or other siblings. The agent must infer usage from tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_connectionsList ConnectionsB
List all active database connections
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states it lists 'active' connections, which implies a read-only operation, but doesn't clarify what 'active' means, whether it shows metadata (e.g., IDs, status), or if there are limitations like pagination or rate limits. This leaves significant gaps for a tool that might involve system state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with zero wasteโit directly states the tool's action without fluff. It's front-loaded and appropriately sized for a simple tool, earning full marks for efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema), the description is minimally adequate. However, with no annotations and no output schema, it fails to explain what the list includes (e.g., connection details, format) or behavioral aspects, leaving room for improvement in context for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't mention parameters, avoiding redundancy. A baseline of 4 is applied since it doesn't add unnecessary information beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('all active database connections'), making the purpose immediately understandable. However, it doesn't differentiate from potential sibling tools like 'connect_database' or 'disconnect_all' beyond the basic action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'run_query' or 'disconnect_database'. It lacks context about prerequisites (e.g., whether connections must be established first) or typical use cases, leaving the agent with minimal usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_queryRun SQL QueryC
Run SQL query on the connected database
| Name | Required | Description | Default |
|---|---|---|---|
| connectionID | Yes | The connection ID | |
| query | Yes | The SQL queries to execute |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'Run SQL query' implies execution capability, it doesn't disclose critical behavioral traits like whether this executes read-only queries, supports transactions, has side effects, requires specific permissions, or handles errors. The description is minimal and lacks necessary context for safe use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single sentence with no wasted words. It's front-loaded with the core functionality and appropriately sized for what it communicates, though it could benefit from additional context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that executes SQL queries with no annotations and no output schema, the description is insufficient. It doesn't explain what happens when queries run (transactions, side effects), what the return format might be, error handling, or security implications. Given the complexity and potential impact of SQL execution, more completeness is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with both parameters clearly documented in the input schema. The description adds no additional parameter semantics beyond what's already in the schema (connectionID and query array). This meets the baseline expectation when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Run SQL query') and target resource ('on the connected database'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from potential sibling tools that might also execute queries, though none are listed among the provided siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites like needing an established connection first (though 'connect_database' is a sibling), nor does it specify what types of queries are appropriate or any limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose with no overlap: connect_database establishes connections, disconnect_all and disconnect_database manage disconnection (with clear scope differences), list_connections provides status, and run_query executes queries. The descriptions make it impossible to confuse these tools.
All tools follow a consistent verb_noun pattern (e.g., connect_database, disconnect_all, run_query) with clear, descriptive names. There are no deviations in style or convention, making the set highly predictable and readable.
With 5 tools, this server is well-scoped for database connectivity and query execution. Each tool earns its place by covering essential operations (connect, disconnect, list, query) without unnecessary bloat or missing core functionality.
The toolset covers the core lifecycle of database connections (connect, disconnect, list) and query execution, with no dead ends. A minor gap exists in lacking tools for schema inspection or transaction management, but agents can work around this using run_query for such operations.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Read-only PostgreSQL, MySQL, SQL Server access via MCP โ 24 dialect-aware hosted tools.
Query, join, profile, clean and convert CSV/JSON/Parquet with server-side DuckDB over MCP.
MCP server for querying and analyzing data from ad platforms, analytics tools, and spreadsheets
Let AI agents query data and act across all your business apps via MCP.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables LLMs and agents to interact with relational databases (SQL Server, MySQL, PostgreSQL) through MCP tools. Supports executing queries, inserting records, listing tables, and exposing database schemas with secure credential management.
- AlicenseNot gradedqualityAmaintenanceProvides safe, configurable SQL database access via MCP tools, enabling schema introspection, predefined queries, and structured updates with multi-backend support.2MIT
- AlicenseNot gradedqualityDmaintenanceEnables database interaction (MySQL, PostgreSQL, SQL Server) via MCP, supporting SQL queries and command execution.31MIT
- AlicenseAqualityDmaintenanceProvides SQL database access via MCP, supporting PostgreSQL, MySQL, and SQLite with tools for listing tables, getting schemas, and executing queries.41AGPL 3.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/IzumiSy/mcp-universal-db-client'
If you have feedback or need assistance with the MCP directory API, please join our Discord server