Skip to content

ideaxy/mysql-mcp

Repository files navigation

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:

    [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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages