
Database Mcp
# 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 1. Clone the repository 2. Install dependencies: ```bash go mod tidy ``` ## Configuration ### Configuration File (config.yaml) Create a `config.yaml` file with the following structure: ```yaml 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: ```bash ./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 1. Start the service: ```bash ./database-mcp ``` 2. 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: 1. `get_tables`: Get all tables in the database - Returns a list of tables with their names and comments 2. `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) 3. `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 ## License MIT License
What is Database MCP?
Database MCP is a Metoro Control Protocol (MCP) service that provides database capabilities, supporting multiple database types through GORM.
How to use Database MCP?
To use Database MCP, clone the repository, install dependencies, create a configuration file, and start the service. You can also configure it using command line arguments.
Key features of Database MCP?
- Supports multiple database types: MySQL, PostgreSQL, SQLite, SQL Server, ClickHouse.
- Configuration through YAML files, command line arguments, or environment variables.
- Integration with MCP protocol.
- GORM ORM support for database operations.
Use cases of Database MCP?
- Managing multiple database types in a single service.
- Executing SQL queries and retrieving results.
- Integrating with applications that require database access via MCP protocol.
FAQ from Database MCP?
- What databases does Database MCP support?
Database MCP supports MySQL, PostgreSQL, SQLite, SQL Server, and ClickHouse.
- How do I configure Database MCP?
You can configure it using a YAML file or command line arguments.
- Is Database MCP open source?
Yes, Database MCP is available on GitHub under the MIT License.
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
-
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