README.md•2.6 kB
# MySQL MCP (Management Control Plane)
A system for managing multiple MySQL databases with natural language query support, built with FastMCP framework.
## Features
- Manage multiple MySQL database connections
- Store metadata about all managed databases in a central metadata database
- Query data using natural language
- Built with FastMCP framework for easy integration with AI assistants
## Installation
1. Install Python 3.7+
2. Install required packages:
```
pip install -r requirements.txt
```
## Setup
1. Create a MySQL database for storing metadata:
```
mysql -u root -p < init_metadata_db.sql
```
2. Update `config.ini` with your metadata database connection details:
```ini
[metadata_db]
host = localhost
port = 3306
user = your_username
password = your_password
database = metadata_db
```
3. Add your database connections to the metadata database using the provided SQL schema.
## Usage
Run the FastMCP server:
```
python mysql_mcp_server.py
```
Once the server is running, you can access the SSE endpoint at:
```
http://localhost:8000/sse
```
The server exposes the following tools:
1. `list_databases()` - List all registered databases
2. `execute_query(database_id, query)` - Execute a SQL query on a specific database
3. `natural_language_query(database_id, natural_query)` - Execute a natural language query on a specific database
4. `get_database_tables(database_id)` - Get list of tables in a specific database
## Configuration
All configuration is stored in `config.ini`:
- `metadata_db`: Connection details for the metadata database
- `app`: Application settings
## Architecture
- `mysql_mcp_server.py`: FastMCP server implementation
- `db_manager.py`: Database connection and management logic
- `nlp_processor.py`: Natural language processing to convert queries to SQL
- `database_models.py`: Data classes representing database entities
- `config.ini`: Configuration file
- `init_metadata_db.sql`: Schema for the metadata database
- `requirements.txt`: Python dependencies
## Extending the System
To improve natural language processing capabilities:
1. Enhance the `natural_language_query` function in `mysql_mcp_server.py`
2. Add more patterns to recognize different query types
3. Consider integrating with advanced NLP libraries like spaCy or NLTK
## Integration with AI Assistants
This FastMCP server can be integrated with AI assistants that support the Model Context Protocol (MCP), allowing them to:
- List available databases
- Execute SQL queries
- Process natural language queries
- Explore database schemas