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.
Connection Info
You Might Also Like
markitdown
Python tool for converting files and office documents to Markdown.
markitdown
MarkItDown-MCP is a lightweight server for converting URIs to Markdown.
Filesystem
Node.js MCP Server for filesystem operations with dynamic access control.
PerformanceStudio
SQL Server execution plan analyzer: cross-platform GUI and CLI. Built-in MCP...
agent-trade-kit
OKX trading MCP server — connect AI agents to spot, swap, futures, options &...
mighty-security
Don't Simply Trust MCP Server Code, Validate and Scan