database-mcp
The Database MCP Service is a Metoro Control Protocol service that integrates with various database types such as MySQL and PostgreSQL using GORM. It features flexible configuration options and provides tools for database interactions via the MCP protocol.
Database 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