A system for managing multiple MySQL databases with natural language query support, built with FastMCP framework.
- 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
- Install Python 3.7+
- Install required packages:
pip install -r requirements.txt
-
Create a MySQL database for storing metadata:
mysql -u root -p < init_metadata_db.sql -
Update
config.iniwith your metadata database connection details:[metadata_db] host = localhost port = 3306 user = your_username password = your_password database = metadata_db
-
Add your database connections to the metadata database using the provided SQL schema.
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:
list_databases()- List all registered databasesexecute_query(database_id, query)- Execute a SQL query on a specific databasenatural_language_query(database_id, natural_query)- Execute a natural language query on a specific databaseget_database_tables(database_id)- Get list of tables in a specific database
All configuration is stored in config.ini:
metadata_db: Connection details for the metadata databaseapp: Application settings
mysql_mcp_server.py: FastMCP server implementationdb_manager.py: Database connection and management logicnlp_processor.py: Natural language processing to convert queries to SQLdatabase_models.py: Data classes representing database entitiesconfig.ini: Configuration fileinit_metadata_db.sql: Schema for the metadata databaserequirements.txt: Python dependencies
To improve natural language processing capabilities:
- Enhance the
natural_language_queryfunction inmysql_mcp_server.py - Add more patterns to recognize different query types
- Consider integrating with advanced NLP libraries like spaCy or NLTK
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