Skip to main content
Glama
ideaxy

MySQL MCP

by ideaxy
README.md
# 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