- Home
- MCP servers
- MCP Alchemy Server
MCP Alchemy Server
- python
395
GitHub Stars
python
Language
6 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
Configuration
View docs{
"mcpServers": {
"runekaagaard-mcp-alchemy": {
"command": "uvx",
"args": [
"--from",
"mcp-alchemy==2025.8.15.91819",
"--refresh-package",
"mcp-alchemy",
"mcp-alchemy"
],
"env": {
"DB_URL": "sqlite:////absolute/path/to/database.db",
"CLAUDE_LOCAL_FILES_PATH": "/path/to/local-files",
"EXECUTE_QUERY_MAX_CHARS": "4000"
}
}
}
}MCP Alchemy lets Claude Desktop connect directly to your databases to explore structure, validate SQL, and generate artifacts from large datasets. It supports multiple database engines and uses a lightweight, persistent MCP server that runs alongside your database client for seamless querying and analysis.
How to use
You run an MCP server for each database you want Claude to interact with. Each server is started locally and communicates with Claude Desktop through MCP. You provide the database connection URL via the DB_URL environment variable, and you can tailor engine options or additional drivers with DB_ENGINE_OPTIONS or with specific driver packages. Use the appropriate configuration snippet below for your database, then start Claude Desktop and connect to the corresponding MCP server.
How to install
Prerequisites you need before starting:
- Python and uv installed (uv manages MCP servers). If uv isn’t installed, install it using the installer script.
# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh
Connecting to your databases with MCP Alchemy
Choose the database you want to connect and copy the corresponding configuration snippet. Each snippet uses uvx to run the MCP server with the appropriate driver and a ready-to-use SQL URL in DB_URL. You can adjust the driver and options as needed. The following configurations assume Claude Desktop is set up to load MCP servers from your local environment.
{
"mcpServers": {
"my_sqlite_db": {
"command": "uvx",
"args": ["--from", "mcp-alchemy==2025.8.15.91819",
"--refresh-package", "mcp-alchemy", "mcp-alchemy"],
"env": {
"DB_URL": "sqlite:////absolute/path/to/database.db"
}
}
}
}
PostgreSQL
{
"mcpServers": {
"my_postgres_db": {
"command": "uvx",
"args": ["--from", "mcp-alchemy==2025.8.15.91819", "--with", "psycopg2-binary",
"--refresh-package", "mcp-alchemy", "mcp-alchemy"],
"env": {
"DB_URL": "postgresql://user:password@localhost/dbname"
}
}
}
}
MySQL / MariaDB
{
"mcpServers": {
"my_mysql_db": {
"command": "uvx",
"args": ["--from", "mcp-alchemy==2025.8.15.91819", "--with", "pymysql",
"--refresh-package", "mcp-alchemy", "mcp-alchemy"],
"env": {
"DB_URL": "mysql+pymysql://user:password@localhost/dbname"
}
}
}
}
Microsoft SQL Server
{
"mcpServers": {
"my_mssql_db": {
"command": "uvx",
"args": ["--from", "mcp-alchemy==2025.8.15.91819", "--with", "pymssql",
"--refresh-package", "mcp-alchemy", "mcp-alchemy"],
"env": {
"DB_URL": "mssql+pymssql://user:password@localhost/dbname"
}
}
}
}
Oracle
{
"mcpServers": {
"my_oracle_db": {
"command": "uvx",
"args": ["--from", "mcp-alchemy==2025.8.15.91819", "--with", "oracledb",
"--refresh-package", "mcp-alchemy", "mcp-alchemy"],
"env": {
"DB_URL": "oracle+oracledb://user:password@localhost/dbname"
}
}
}
}
CrateDB
{
"mcpServers": {
"my_cratedb": {
"command": "uvx",
"args": ["--from", "mcp-alchemy==2025.8.15.91819", "--with", "sqlalchemy-cratedb>=0.42.0.dev1",
"--refresh-package", "mcp-alchemy", "mcp-alchemy"],
"env": {
"DB_URL": "crate://user:password@localhost:4200/?schema=testdrive"
}
}
}
}
Vertica
{
"mcpServers": {
"my_vertica_db": {
"command": "uvx",
"args": ["--from", "mcp-alchemy==2025.8.15.91819", "--with", "vertica-python",
""--refresh-package", "mcp-alchemy", "mcp-alchemy"],
"env": {
"DB_URL": "vertica+vertica_python://user:password@localhost:5433/dbname",
"DB_ENGINE_OPTIONS": "{\"connect_args\": {\"ssl\": false}}"
}
}
}
}
Available tools
all_table_names
Return all table names in the database. No input required. Returns a comma-separated list of tables.
filter_table_names
Find tables matching a substring. Input: q (string). Returns matching table names.
schema_definitions
Get detailed schema for specified tables. Input: table_names (string[]). Returns definitions including columns, keys, relationships, and nullable flags.
execute_query
Execute SQL query with vertical output format. Inputs: query (string), params (object, optional). Returns results in a secure vertical format with smart truncation and optional local-file access.