A lightweight implementation of the Model Context Protocol (MCP) for database operations. This server enables AI models to interact with SQL databases through a structured, tool-based interface, providing safe and efficient database access.
- π Key Capabilities
- π§ Getting Started
- π§ MCP Interface
- π€ MCP Client Integration
- π§© LLM Integration
- β Error Handling
- π οΈ IDE and Tool Integration
- βοΈ Development
- π€ Contributing
- π License
- βοΈ MCP Server Configuration Reference
- π Acknowledgments
- Exposes database operations as MCP tools for AI model interaction
- Supports natural language prompts for database exploration
- Provides schema-aware query building assistance
- Works with any SQLAlchemy-compatible database (SQLite, PostgreSQL, MySQL, etc.)
- Automatic schema inspection and reflection
- Transaction support for multi-statement operations
- Native MCP tools, resources, and prompts
- Support for multiple transport protocols (http, WebSocket, stdio)
- Structured error handling and validation
- Python 3.8+
- SQLite or any other SQLAlchemy-supported database
git clone https://github.com/devsenweb/mcp-server-for-db.git
cd mcp-server-for-db
python -m venv .venv
source .venv/bin/activate # macOS/Linux
# OR
.venv\Scripts\activate # Windows
pip install -r requirements.txt
Edit config.yaml
:
db:
uri: sqlite:///./example.db # Supports any SQLAlchemy URI
(Optional) Create a sample DB:
python create_database.py
python -m mcp_server.server --transport http --port 8080
# or
python -m mcp_server.server --transport ws --port 8080
# or
python -m mcp_server.server --transport stdio
{
"jsonrpc": "2.0",
"method": "tools/execute_query",
"params": {
"sql": "SELECT * FROM users WHERE age > 25"
},
"id": 1
}
{
"jsonrpc": "2.0",
"method": "tools/validate_sql",
"params": {
"sql": "SELECT * FROM users"
},
"id": 2
}
{
"jsonrpc": "2.0",
"method": "resources/get",
"params": {
"uri": "db://schema"
},
"id": 3
}
{
"jsonrpc": "2.0",
"method": "resources/get",
"params": {
"uri": "db://tables"
},
"id": 4
}
{
"mcpServers": {
"database-query": {
"url": "http://localhost:8000/mcp",
"transport": "http"
}
}
}
npm install -g @modelcontextprotocol/inspector
mcp-inspector --transport http --url http://localhost:8000/mcp
# Visit http://localhost:3000
pip install -r requirements-dev.txt
pytest tests/
mcp-server-for-db/
βββ mcp_server/
β βββ __init__.py
β βββ server.py
β βββ db_adapter.py
βββ config.yaml
βββ create_database.py
βββ requirements.txt
Contributions are welcome! Feel free to submit a Pull Request.
Licensed under the MIT License. See LICENSE for details.
python -m mcp_server.server --host 0.0.0.0 --port 8000 --transport http --config ./config.yaml
- Powered by SQLAlchemy
- Based on the Model Context Protocol (MCP) standard
This project is a demo implementation of an MCP-compatible server for database interaction. It does not include SQL safety mechanisms, input sanitization, authentication, or permission controls.
β οΈ Use at your own risk. This server executes raw SQL and is intended for experimentation, prototyping, and local development only.It is the responsibility of the user to implement proper guardrails, validation, and security measures before using this in any production or sensitive environment.