db-mcp-tool
# Database Explorer MCP Tool
[](https://smithery.ai/server/@wirdes/db-mcp-tool)
A powerful Model Context Protocol (MCP) tool for exploring and managing different types of databases including PostgreSQL, MySQL, and Firestore.
## Features
- **Multiple Database Support**
- PostgreSQL
- MySQL
- Firestore
- **Database Operations**
- Connect to databases
- List tables
- View triggers
- List functions
- Execute SQL queries (PostgreSQL and MySQL)
- Export table schemas
- Export table data
## Integration with Cursor
Before adding the tool to Cursor, you need to build the project:
1. Clone the repository
2. Install dependencies:
```bash
npm install
```
3. Build the project:
```bash
npm run build
```
To add the tool to Cursor:
1. Open Cursor settings
2. Navigate to "Model Context Protocol (MCP)" section
3. Click "Add New Tool"
4. Fill in the following details:
```json
{
"name": "database-explorer",
"command": "node /path/to/project/dist/index.js",
"description": "Database Explorer MCP Tool"
}
```
Note: Replace `/path/to/project` with the actual path to your project directory.
5. Save the settings
6. Restart Cursor
Using the Tool:
1. After setup, you can connect to your database using one of these commands:
- For PostgreSQL: Use `!pg` with connection details
- For MySQL: Use `!mysql` with connection details
- For Firestore: Use `!firestore` with connection details
2. Once connected, you can use various database operations:
- `!tables` to list all tables
- `!triggers` to view triggers
- `!functions` to list functions
- `!query` to execute SQL queries
- `!export-db` to export table schemas
- `!export-data` to export table data
See the Commands section below for detailed usage examples.
## Commands
### Connection Commands
- `!pg` - Connect to PostgreSQL database
```json
{
"connection": {
"host": "hostname",
"port": 5432,
"database": "dbname",
"user": "username",
"password": "password"
}
}
```
- `!mysql` - Connect to MySQL database
```json
{
"connection": {
"host": "hostname",
"port": 3306,
"database": "dbname",
"user": "username",
"password": "password"
}
}
```
- `!firestore` - Connect to Firestore database
```json
{
"connection": {
"projectId": "your-project-id",
"keyFilename": "path/to/keyfile.json"
}
}
```
### Database Operation Commands
- `!tables` - List all tables in the connected database
- `!triggers` - List all triggers in the connected database
- `!functions` - List all functions in the connected database
- `!query` - Execute SQL query (PostgreSQL and MySQL only)
```json
{
"query": "SELECT * FROM table_name"
}
```
- `!export-db` - Export table schema
```json
{
"table": "table_name"
}
```
- `!export-data` - Export table data as INSERT statements
```json
{
"table": "table_name"
}
```
## Requirements
- Node.js
- Required database drivers:
- `pg` for PostgreSQL
- `mysql2` for MySQL
- `@google-cloud/firestore` for Firestore
## Usage
1. Make sure you have the necessary database credentials
2. Connect to your database using the appropriate connection command
3. Use the available commands to explore and manage your database
## Error Handling
- The tool includes comprehensive error handling for:
- Connection failures
- Query execution errors
- Schema and data export issues
- Invalid database operations
## Notes
- Firestore support is limited to basic operations due to its NoSQL nature
- SQL operations are only available for PostgreSQL and MySQL
TDQS
Scored across 9 tools
The tools are completely indistinguishable due to the lack of descriptions and ambiguous naming. For example, '!export-data' and '!export-db' likely overlap significantly, while '!mysql' and '!pg' might both handle database operations without clear differentiation. Without descriptions, an agent cannot determine the purpose or boundaries of any tool.
The naming is inconsistent with a mix of conventions: some tools use hyphens (e.g., '!export-data'), others are single words (e.g., '!mysql'), and some are abbreviations (e.g., '!pg'). While all start with '!', there is no predictable verb_noun pattern or consistent style, making it hard to infer relationships.
With 9 tools, the count is reasonable for a database-related server, but the lack of descriptions makes it impossible to assess if this number is well-scoped. It could be appropriate if each tool covers a distinct aspect, but currently, it feels borderline due to the ambiguity.
The server appears to target database operations, but without descriptions, it is impossible to assess coverage. Tools like '!query' and '!tables' suggest basic operations, but there are likely significant gaps (e.g., no clear create, update, or delete tools) and no way to determine if the surface supports a complete workflow.