Content
# MySQL MCP Server
A powerful database management tool built with FastMCP that provides an interactive interface for managing SQLite databases. This project includes both a server component and a client interface for easy database operations.
## Features
- List all tables in the database
- Get detailed schema information for any table
- Execute SQL queries with formatted results
- Interactive client interface for database operations
## Prerequisites
- Python 3.8 or higher
- pip (Python package installer)
## Setup
1. Clone the repository:
```bash
git clone git@github.com:sajithamma/mysql-mcp-server.git
cd mysql-mcp-server
```
2. Create and activate a virtual environment:
```bash
# Create virtual environment
python3.12 -m venv venv
# Activate virtual environment
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate
```
3. Install dependencies:
```bash
pip install -r requirements.txt
```
4. Run the fixture to create the database:
```bash
python sqlite_fixture.py
```
## Project Structure
The project consists of two main components:
1. `mcpserver.py` - The MCP server implementation
2. `mcpclient.py` - The client interface
### Server Component
The server provides the following tools:
```python
@mcp.tool()
def list_tables() -> List[str]:
"""List all tables in the SQLite database."""
# Implementation details...
@mcp.tool()
def describe_table(table_name: str) -> Dict[str, Any]:
"""Get the schema information for a specific table."""
# Implementation details...
@mcp.tool()
def run_query(query: str) -> Dict[str, Any]:
"""Execute a SQL query and return the results."""
# Implementation details...
```
### Client Component
The client provides an interactive interface for database operations:
```python
async def main():
server = MCPServerSse(
name="SQLite Database Manager",
params={
"url": "http://localhost:8000/sse",
},
)
# Client implementation...
```
## Running the Application
1. Start the MCP server:
```bash
fastmcp run mcpserver.py:mcp --transport sse --host 127.0.0.1 --port 8000
```
2. In a separate terminal, run the client:
```bash
python mcpclient.py
```
## Usage
Once both the server and client are running, you can interact with the database using natural language commands. The client supports the following operations:
1. List all tables in the database
2. Get detailed schema information for any table
3. Execute SQL queries to retrieve or modify data
Example commands:
- "Show me all tables in the database"
- "Describe the structure of the users table"
- "Run a query to select all records from the users table"
## Environment Variables
Create a `.env` file in the project root with the following variables:
```
# Add any required environment variables here
```
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## License
This project is licensed under the MIT License - see the LICENSE file for details.
You Might Also Like
MarkItDown MCP
markitdown-mcp is a lightweight MCP server for converting various URIs to Markdown.
Github
GitHub MCP Server connects AI tools to GitHub for code management and automation.

apisix
Apache APISIX is an API Gateway for managing APIs and microservices.
opik
Opik is a powerful tool for managing and optimizing machine learning experiments.

MCP Toolbox for Databases
MCP Toolbox for Databases is an open-source server simplifying database tool...

sqlglot
SQLGlot is a no-dependency SQL parser and transpiler supporting 30 dialects.