
Database MCP Server (by Legion AI)
A server that helps people access and query data in databases using the Legion Query Runner with Model Context Protocol (MCP) in Python.
What is Legion MCP?
Legion MCP (Model Context Protocol) Server is a server designed to facilitate access and querying of data in databases using the Legion Query Runner, integrated with the Model Context Protocol (MCP) Python SDK.
How to use Legion MCP?
To use Legion MCP, set up the server by installing dependencies, configuring your database connection, and running the server in either development or production mode. You can execute queries and manage database operations through the MCP interface.
Key features of Legion MCP?
- Database access via Legion Query Runner
- Support for Model Context Protocol (MCP) for AI assistants
- Exposes database operations as MCP resources, tools, and prompts
- Multiple deployment options including standalone and FastAPI integration
- Flexible configuration through environment variables and command-line arguments
Use cases of Legion MCP?
- Enabling AI assistants to interact with databases seamlessly.
- Executing complex SQL queries and retrieving results in various formats.
- Managing database schemas and metadata for AI applications.
FAQ from Legion MCP?
- What is the Model Context Protocol (MCP)?
MCP is a specification for maintaining context in AI applications, allowing for stateful interactions with databases.
- How do I install Legion MCP?
Follow the installation instructions provided in the documentation, which includes setting up a virtual environment and installing dependencies.
- Can I run Legion MCP in production?
Yes, Legion MCP can be run in production mode with appropriate configurations.
Database MCP Server (by Legion AI)
A server that helps people access and query data in databases using the Legion Query Runner with integration of the Model Context Protocol (MCP) Python SDK.
Start Generation Here
This tool is provided by Legion AI. To use the full-fledged and fully powered AI data analytics tool, please visit the site.
End Generation Here
Features
- Database access via Legion Query Runner
- Model Context Protocol (MCP) support for AI assistants
- Expose database operations as MCP resources, tools, and prompts
- Multiple deployment options (standalone MCP server, FastAPI integration)
- Query execution and result handling
- Flexible configuration via environment variables, command-line arguments, or MCP settings JSON
Supported Databases
Database | DB_TYPE code |
---|---|
PostgreSQL | pg |
Redshift | redshift |
CockroachDB | cockroach |
MySQL | mysql |
RDS MySQL | rds_mysql |
Microsoft SQL Server | mssql |
Big Query | bigquery |
Oracle DB | oracle |
SQLite | sqlite |
We use Legion Query Runner library as connectors. You can find more info on their api doc.
What is MCP?
The Model Context Protocol (MCP) is a specification for maintaining context in AI applications. This server uses the MCP Python SDK to:
- Expose database operations as tools for AI assistants
- Provide database schemas and metadata as resources
- Generate useful prompts for database operations
- Enable stateful interactions with databases
Installation & Configuration
Required Parameters
Two parameters are required for all installation methods:
- DB_TYPE: The database type code (see table above)
- DB_CONFIG: A JSON configuration string for database connection
The DB_CONFIG format varies by database type. See the API documentation for database-specific configuration details.
Installation Methods
Option 1: Using UV (Recommended)
When using uv
, no specific installation is needed. We will use uvx
to directly run database-mcp.
UV Configuration Example:
REPLACE DB_TYPE and DB_CONFIG with your connection info.
{
"mcpServers": {
"database-mcp": {
"command": "uvx",
"args": [
"database-mcp"
],
"env": {
"DB_TYPE": "pg",
"DB_CONFIG": "{\"host\":\"localhost\",\"port\":5432,\"user\":\"user\",\"password\":\"pw\",\"dbname\":\"dbname\"}"
},
"disabled": true,
"autoApprove": []
}
}
}
Option 2: Using PIP
Install via pip:
pip install database-mcp
PIP Configuration Example:
{
"mcpServers": {
"database": {
"command": "python",
"args": [
"-m", "database_mcp",
"--repository", "path/to/git/repo"
],
"env": {
"DB_TYPE": "pg",
"DB_CONFIG": "{\"host\":\"localhost\",\"port\":5432,\"user\":\"user\",\"password\":\"pw\",\"dbname\":\"dbname\"}"
}
}
}
}
Running the Server
Development Mode
mcp dev mcp_server.py
Production Mode
python mcp_server.py
Configuration Methods
Environment Variables
export DB_TYPE="pg" # or mysql, postgresql, etc.
export DB_CONFIG='{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"}'
mcp dev mcp_server.py
Command Line Arguments
python mcp_server.py --db-type pg --db-config '{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"}'
Or with UV:
uv mcp_server.py --db-type pg --db-config '{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"}'
Exposed MCP Capabilities
Resources
Resource | Description |
---|---|
schema://all | Get the complete database schema |
Tools
Tool | Description |
---|---|
execute_query | Execute a SQL query and return results as a markdown table |
execute_query_json | Execute a SQL query and return results as JSON |
get_table_columns | Get column names for a specific table |
get_table_types | Get column types for a specific table |
get_query_history | Get the recent query history |
Prompts
Prompt | Description |
---|---|
sql_query | Create an SQL query against the database |
explain_query | Explain what a SQL query does |
optimize_query | Optimize a SQL query for better performance |
Development
Testing
uv pip install -e ".[dev]"
pytest
Publishing
rm -rf dist/ build/ *.egg-info/ && python -m build
python -m build
python -m twine upload dist/*
License
This repository is licensed under GPL