About Database Mcp
Database MCP is a Go service that connects MCP clients to databases through GORM. It supports MySQL, PostgreSQL, SQLite, SQL Server, and ClickHouse, with configuration from YAML, command-line arguments, or environment variables.
Key features
- 01Connect to five database types
- 02Configure through YAML, CLI, or environment variables
- 03List database tables
- 04Inspect table and column details
- 05Run SQL queries
Use cases
- 01Explore tables and columns through an MCP client
- 02Run SQL queries and retrieve results or affected-row counts
MCP support
The MCP server provides `get_tables`, `get_table_detail`, and `execute_sql` tools to MCP clients. It can be reached at the configured MCP endpoint, such as the documented local SSE URL.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEDatabase MCP Service
A MCP (Metoro Control Protocol) service with database capabilities, supporting multiple database types through GORM.
Features
- Support for multiple database types:
- MySQL
- PostgreSQL
- SQLite
- SQL Server
- ClickHouse
- Configuration through:
- Configuration file (YAML)
- Command line arguments
- Environment variables
- MCP protocol integration
- GORM ORM support
Installation
- Clone the repository
- Install dependencies:
go mod tidy
Configuration
Configuration File (config.yaml)
Create a config.yaml file with the following structure:
database:
type: "mysql" # mysql, postgres, sqlite, sqlserver, clickhouse
host: "localhost"
port: 3306
username: "root"
password: "password"
database: "mydb"
ssl_mode: "disable" # for postgres
file: "database.db" # for sqlite
Command Line Arguments
You can override configuration file settings using command line arguments:
./database-mcp --config=config.yaml \
--db-type=mysql \
--db-host=localhost \
--db-port=3306 \
--db-user=root \
--db-pass=password \
--db-name=mydb \
--db-ssl-mode=disable \
--db-file=database.db
Available command line arguments:
--config: Path to config file (default: "config.yaml")--db-type: Database type (mysql, postgres, sqlite, sqlserver, clickhouse)--db-host: Database host--db-port: Database port--db-user: Database username--db-pass: Database password--db-name: Database name--db-ssl-mode: SSL mode (for PostgreSQL)--db-file: Database file (for SQLite)
Usage
-
Start the service:
./database-mcp --db-type=mysql --db-host=127.0.0.1 --db-port=3306 --db-user=dbuser --db-pass=passwd --db-name=dbname --db-ssl-mode=disable --mode=http -
The service will:
- Load configuration from file and/or command line
- Initialize database connection
- Start MCP server
- Register available tools and resources
MCP Configuration
To use the MCP service, configure the MCP endpoint in your MCP client:
http://127.0.0.1:8080/sse
This will connect your MCP client to the local service running on port 8080.
MCP Tools
The service provides the following MCP tools:
get_tables: Get all tables in the database- Returns a list of tables with their names and comments
get_table_detail: Get detailed information about a specific table- Arguments:
table_name: The name of the table to get details for
- Returns table information including:
- Table name and comment
- Column information (name, type, comment, nullable, default value)
- Arguments:
execute_sql: Execute a SQL query- Arguments:
query: The SQL query to execute
- Returns:
- For SELECT queries: An array of results
- For other queries: The number of rows affected
- Arguments:
License
MIT License
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.